import { AccountStatus, EstateSignupStatus, PaymentProvider, VisitorPassStatus, VisitorPassType } from '@prisma/client';
import { OtpDeliveryProvider } from '../../auth/otp.types';
import { FeatureKey } from '../../features/feature-catalog';
export declare class UpdateEstateDto {
    name?: string;
    location?: string;
    unitCount?: number;
    estateType?: string;
    settings?: Record<string, unknown>;
    branding?: Record<string, unknown>;
}
export declare class ReviewEstateSignupDto {
    status: EstateSignupStatus;
    reviewNotes?: string;
}
export declare class ConfirmEstatePaymentDto {
    paymentReference?: string;
}
export declare class UpdatePaymentProviderSettingDto {
    enabled: boolean;
}
export declare class UpdateSubscriptionPlanDto {
    name?: string;
    minResidents?: number;
    maxResidents?: number;
    monthlyPriceKobo?: number;
    oldMonthlyPriceKobo?: number;
    currency?: string;
    customPricing?: boolean;
    description?: string;
    isActive?: boolean;
    ctaLabel?: string;
    sortOrder?: number;
    trialDays?: number;
    gracePeriodDays?: number;
    publicVisible?: boolean;
    residentMarketingEnabled?: boolean;
    limits?: Record<string, unknown>;
    metadata?: Record<string, unknown>;
    features?: FeatureKey[];
}
export declare class CreateSubscriptionPlanDto {
    code: string;
    name: string;
    minResidents: number;
    maxResidents?: number;
    monthlyPriceKobo?: number;
    oldMonthlyPriceKobo?: number;
    currency?: string;
    customPricing?: boolean;
    description?: string;
    isActive?: boolean;
    ctaLabel?: string;
    sortOrder?: number;
    trialDays?: number;
    gracePeriodDays?: number;
    publicVisible?: boolean;
    residentMarketingEnabled?: boolean;
    limits?: Record<string, unknown>;
    metadata?: Record<string, unknown>;
    features?: FeatureKey[];
}
export declare class UpdateSalesPartnerProfileDto {
    enabled?: boolean;
    commissionPercent?: number;
    notes?: string;
}
export declare class AssignEstatePartnerDto {
    salesAdminId?: string | null;
}
export declare class ContactEstateAdminDto {
    channel: 'SMS' | 'WHATSAPP' | 'EMAIL' | 'CALL';
    message: string;
    metadata?: Record<string, unknown>;
}
export declare class UpdateOtpConfigDto {
    provider?: OtpDeliveryProvider;
    enabledProviders?: OtpDeliveryProvider[];
    providerPriority?: OtpDeliveryProvider[];
    ttlSeconds?: number;
    codeLength?: number;
    maxAttempts?: number;
    exposeDevCode?: boolean;
    termiiBaseUrl?: string;
    termiiApiKey?: string;
    termiiSenderId?: string;
    termiiChannel?: string;
    africasTalkingBaseUrl?: string;
    africasTalkingUsername?: string;
    africasTalkingApiKey?: string;
    africasTalkingSenderId?: string;
    customHttpUrl?: string;
    customHttpMethod?: string;
    customHttpHeadersJson?: string;
    customHttpBodyTemplate?: string;
}
export declare class UpdateIntegrationConfigDto {
    category?: string;
    displayName?: string;
    enabled?: boolean;
    publicConfig?: Record<string, unknown>;
    secretConfig?: Record<string, unknown>;
    clearPublicKeys?: string[];
    clearSecretKeys?: string[];
}
export declare class ProviderParamDto {
    provider: PaymentProvider;
}
export declare class UpdateUserDto {
    name?: string;
    phone?: string;
    firstName?: string;
    lastName?: string;
    email?: string;
    address?: string;
    status?: AccountStatus;
    estateId?: string;
}
export declare class UpdateResidentDto {
    name?: string;
    phone?: string;
    unit?: string;
    firstName?: string;
    lastName?: string;
    blockNumber?: string;
    flatNumber?: string;
    address?: string;
    email?: string;
    profilePictureUrl?: string;
    profileConfirmed?: boolean;
    status?: AccountStatus;
}
export declare class UpdateGuardDto {
    name?: string;
    phone?: string;
    deviceId?: string;
    firstName?: string;
    lastName?: string;
    assignedGateId?: string;
    address?: string;
    profilePictureUrl?: string;
    emergencyContact?: Record<string, unknown>;
    assignedShifts?: unknown[];
    profileConfirmed?: boolean;
    status?: AccountStatus;
}
export declare class UpdateVisitorDto {
    estateId?: string;
    name?: string;
    phone?: string;
    photoUrl?: string;
    vehiclePlate?: string;
    riskScore?: number;
    flagged?: boolean;
    blacklisted?: boolean;
    riskNotes?: string;
}
export declare class UpdateVisitorPassDto {
    status?: VisitorPassStatus;
    passType?: VisitorPassType;
    validFrom?: Date;
    validUntil?: Date;
    maxEntries?: number;
    entryCount?: number;
}
export declare class UpdateIncidentDto {
    guardId?: string;
    type?: string;
    description?: string;
    metadata?: Record<string, unknown>;
}
