import { DateFilter, PaginationOptions } from "../../../../global";
import { Lead, User } from "../../../models";
import { MarketingData } from "../../../../core";
export declare enum SalaryType {
    WPS = "wps",
    BANK_TRANSFER = "bank_transfer",
    CASH = "cash",
    OTHER = "other"
}
export declare enum EmployeeCount {
    LESS_THAN_10 = "less_than_10",
    BETWEEN_10_50 = "between_10_50",
    MORE_THAN_50 = "more_than_50"
}
export declare enum YesNo {
    YES = "yes",
    NO = "no"
}
export declare enum EligibilityStatus {
    ELIGIBLE = 1,
    NOT_ELIGIBLE = 0
}
export declare enum Status {
    PENDING = "pending",
    APPROVED = "approved",
    REJECTED = "rejected"
}
export declare class FinanceEligibilityRequestCreateDTO {
    vehicleId?: string;
    makeId?: string;
    modelId?: string;
    fullName: string;
    email?: string;
    contactNumber: string;
    currentSalary: number;
    existingLoans: YesNo;
    totalMonthlyInstallments: number;
    hasCreditScore: YesNo;
    totalCreditLimit: number;
    salaryType: SalaryType;
    previousDisputes: YesNo;
    employeeCount?: EmployeeCount;
    isCompanyOlderThanOneYear: boolean;
    hasLandline?: YesNo;
    documents?: string[];
    marketing?: MarketingData;
    static fromPlain(plain: Record<string, unknown>): FinanceEligibilityRequestCreateDTO;
    toPlain(): Record<string, unknown>;
}
export declare class FinanceEligibilityRequestUpdateDTO {
    vehicleId?: string;
    makeId?: string;
    modelId?: string;
    fullName?: string;
    email?: string;
    contactNumber?: string;
    currentSalary?: number;
    existingLoans?: YesNo;
    totalMonthlyInstallments?: number;
    hasCreditScore?: YesNo;
    totalCreditLimit?: number;
    salaryType?: SalaryType;
    previousDisputes?: YesNo;
    employeeCount?: EmployeeCount;
    isCompanyOlderThanOneYear?: boolean;
    hasLandline?: YesNo;
    eligibility?: EligibilityStatus;
    documents?: string[];
    status?: "pending" | "approved" | "rejected";
    rejectionReason?: string;
    static fromPlain(plain: Record<string, unknown>): FinanceEligibilityRequestUpdateDTO;
    toPlain(): Record<string, unknown>;
}
export declare class FinanceEligibilityRequestResponseDTO {
    id: string;
    vehicleId?: string;
    vehicle?: {
        id: string;
        make: string;
        model: string;
        year: number;
    };
    makeId?: string;
    modelId?: string;
    make?: {
        id: string;
        name: string;
    };
    model?: {
        id: string;
        name: string;
    };
    fullName: string;
    email?: string;
    contactNumber: string;
    currentSalary: number;
    existingLoans: YesNo;
    totalMonthlyInstallments: number;
    hasCreditScore: YesNo;
    totalCreditLimit: number;
    salaryType: SalaryType;
    previousDisputes: YesNo;
    employeeCount: EmployeeCount;
    isCompanyOlderThanOneYear: boolean;
    hasLandline: YesNo;
    documents: string[];
    eligibility: EligibilityStatus;
    user?: User;
    lead?: Lead;
    status: Status;
    rejectionReason?: string;
    marketing?: MarketingData;
    createdAt: Date;
    updatedAt: Date;
    static fromPlain(plain: Record<string, unknown>): FinanceEligibilityRequestResponseDTO;
    toPlain(): Record<string, unknown>;
}
export declare class FinanceEligibilityFilterDTO {
    search?: string;
    vehicleId?: string;
    leadId?: string;
    eligibility?: EligibilityStatus;
    salaryType?: SalaryType;
    isActive?: boolean;
    createdAt?: DateFilter;
    marketing?: MarketingData;
    static fromPlain(plain: Record<string, unknown>): FinanceEligibilityFilterDTO;
    toPlain(): Record<string, unknown>;
}
export declare class FinanceEligibilityOptionsDTO extends PaginationOptions {
    sort?: {
        field: string;
        direction: "asc" | "desc";
    };
    static fromPlain(plain: Record<string, unknown>): FinanceEligibilityFilterDTO;
    toPlain(): Record<string, unknown>;
}
export declare class FinanceEligibilityFetchDTO {
    filter: FinanceEligibilityFilterDTO;
    options: FinanceEligibilityOptionsDTO;
    validate(): string[];
    static fromPlain(plain: Record<string, unknown>): FinanceEligibilityFetchDTO;
    toPlain(): Record<string, unknown>;
}
