import { TestDriveRequestFilter, TestDriveRequestSelectFields } from "../utilities";
import { BaseUpdateDTO } from "../../../vehicle/data/dto/BaseDTO";
import { DynamicVehicleDTO } from "../../../vehicle/data/dto/VehicleDTO";
import { LeadThrough, TestDriveRequestStatus } from "../enums";
import { VehicleSelectFields } from "../../../vehicle/data/utilities";
import { MarketingData } from "../../../../core";
export declare class TestDriveRequestGetDTOOptions {
    select?: (TestDriveRequestSelectFields | `vehicle.${VehicleSelectFields}`)[];
    withVehicle?: boolean;
    page?: number;
    limit?: number;
    sort?: any;
}
export declare class TestDriveRequestGetDTO {
    filters?: TestDriveRequestFilter;
    options?: TestDriveRequestGetDTOOptions;
    validate(): string[];
    static fromPlain(plain: Record<string, unknown>): TestDriveRequestGetDTO;
    static toPlain(entity: any): Record<string, unknown>;
}
export declare class TestDriveRequestCreateDTO {
    vehicle: DynamicVehicleDTO;
    testerName: string;
    testerMobile: string;
    testerEmail?: string;
    requestedDate: string;
    testDriveDate?: string;
    status?: TestDriveRequestStatus;
    leadThrough?: LeadThrough;
    comments?: string;
    createdById?: string;
    marketing?: MarketingData;
    validate(): string[];
    constructor(data?: Partial<TestDriveRequestCreateDTO>);
    static fromPlain(plain: Record<string, unknown>): TestDriveRequestCreateDTO;
    toPlain(): Record<string, unknown>;
}
export declare class TestDriveRequestUpdateDTO extends BaseUpdateDTO {
    vehicle?: DynamicVehicleDTO;
    testerName?: string;
    testerMobile?: string;
    testerEmail?: string;
    requestedDate?: Date;
    testDriveDate?: Date;
    status?: TestDriveRequestStatus;
    leadThrough?: LeadThrough;
    comments?: string;
    validate(): string[];
    static fromPlain(plain: Record<string, unknown>): TestDriveRequestUpdateDTO;
    toPlain(): Record<string, unknown>;
}
