import { UploadedFileDto } from 'src/common/dto/uploaded-file.dto';
import { InsuredRelation, PolicyDisplayStatus, PolicyVerificationStatus, PremiumFrequency } from '../schema/policy.schema';
export declare enum IssuedPeriod {
    LAST_30_DAYS = "LAST_30_DAYS",
    LAST_90_DAYS = "LAST_90_DAYS",
    THIS_QUARTER = "THIS_QUARTER"
}
export declare class InsuredMemberDto {
    name: string;
    relation: InsuredRelation;
}
export declare class CreatePolicyDto {
    policy_number: string;
    customer_id: string;
    assigned_to: string;
    product_id: string;
    gross_premium: number;
    premium_frequency?: PremiumFrequency;
    issue_date: number;
    expiry_date: number;
    sum_insured?: number;
    sum_insured_note?: string;
    insured_members?: InsuredMemberDto[];
    vehicle_registration?: string;
    schedule_file?: string;
}
declare const AgentSubmitPolicyDto_base: import("@nestjs/common").Type<Omit<CreatePolicyDto, "assigned_to" | "customer_id">>;
export declare class AgentSubmitPolicyDto extends AgentSubmitPolicyDto_base {
    customer_id?: string;
    customer_name?: string;
    phone_no?: string;
    country_code?: string;
    email?: string;
}
export declare enum PolicyStatusAction {
    CANCELLED = "CANCELLED",
    APPROVED = "APPROVED",
    REJECTED = "REJECTED"
}
export declare class UpdatePolicyStatusDto {
    status: PolicyStatusAction;
    reason?: string;
}
export declare class UpdatePolicyDto {
    gross_premium?: number;
    premium_frequency?: PremiumFrequency;
    issue_date?: number;
    expiry_date?: number;
    sum_insured?: number;
    sum_insured_note?: string;
    insured_members?: InsuredMemberDto[];
    vehicle_registration?: string;
    schedule_file?: UploadedFileDto;
}
export declare class PolicyListDto {
    page: number;
    limit: number;
    search?: string;
    category_id?: string;
    product_id?: string;
    insurer_id?: string;
    assigned_to?: string;
    customer_id?: string;
    status?: PolicyDisplayStatus;
    verification_status?: PolicyVerificationStatus;
    issued?: IssuedPeriod;
    expiring_in_days?: number;
}
export {};
