import { BaseGetDTO, TypedFilter, TypedOptions } from "../../../../global";
import { LeadDTO } from "./lead_dto";
import { Range } from "../../../../core";
export declare enum CarCondition {
    NEW = "NEW",
    USED = "USED",
    BOTH = "BOTH"
}
export declare enum TransmissionType {
    AUTOMATIC = "AUTOMATIC",
    MANUAL = "MANUAL",
    BOTH = "BOTH"
}
export declare enum FuelType {
    PETROL = "PETROL",
    DIESEL = "DIESEL",
    ELECTRIC = "ELECTRIC",
    HYBRID = "HYBRID",
    ANY = "ANY"
}
export declare class LeadPreferenceHistoryDTO {
    id: string;
    lead: LeadDTO;
    budgetMin?: number;
    budgetMax?: number;
    preferredMake?: string;
    preferredModel?: string;
    preferredYearMin?: number;
    preferredYearMax?: number;
    preferredColors?: string[];
    preferredFeatures?: string[];
    carCondition: CarCondition;
    transmissionType: TransmissionType;
    fuelType: FuelType;
    additionalPreferences?: string;
    changeReason?: string;
    changedByUserId: string;
    createdAt: Date;
    updatedAt: Date;
    validate(): string[];
    static fromPlain(plain: Record<string, unknown>): LeadPreferenceHistoryDTO;
    toPlain(): Record<string, unknown>;
}
export declare class LeadPreferenceHistoryCreateDTO {
    leadId: string;
    budgetMin?: number;
    budgetMax?: number;
    preferredMake?: string;
    preferredModel?: string;
    preferredYearMin?: number;
    preferredYearMax?: number;
    preferredColors?: string[];
    preferredFeatures?: string[];
    carCondition: CarCondition;
    transmissionType: TransmissionType;
    fuelType: FuelType;
    additionalPreferences?: string;
    changeReason: string;
    changedByUserId: string;
    validate(): string[];
    static fromPlain(plain: Record<string, unknown>): LeadPreferenceHistoryCreateDTO;
    toPlain(): Record<string, unknown>;
}
export declare class LeadPreferenceHistoryFilter extends TypedFilter {
    id?: string | string[];
    leadId?: string | string[];
    budgetRange?: Range;
    make?: string;
    model?: string;
    yearRange?: Range;
    colors?: string[];
    features?: string[];
    carCondition?: CarCondition | CarCondition[];
    transmissionType?: TransmissionType | TransmissionType[];
    fuelType?: FuelType | FuelType[];
    changedByUserId?: string | string[];
    search?: string;
    fromDate?: Date;
    toDate?: Date;
}
export declare class LeadPreferenceHistoryGetDTO extends BaseGetDTO<LeadPreferenceHistoryDTO, LeadPreferenceHistoryFilter> {
    filters?: LeadPreferenceHistoryFilter;
    options?: TypedOptions<LeadPreferenceHistoryDTO>;
}
