import { UserCreateDTO, UserGetDTO, UserUpdateDTO } from "../../../auth";
export declare enum Designation {
    SALES_MANAGER = "sales-manager",
    SALES_EXECUTIVE = "sales-executive",
    CO_FOUNDER = "co-founder",
    CHIEF_SALES_OFFICER = "chief sales officer",
    CHIEF_PURCHASING_OFFICER = "Chief Purchasing Officer",
    PURCHASE_MANAGER = "Purchase Manager",
    PURCHASER = "Purchaser",
    FINANCE_MANAGER = "Finance Manager",
    HEAD_OF_ACCOUNTS = "Head of Accounts",
    CHIEF_MARKETING_OFFICER = "Chief Marketing Officer",
    MARKETING_MANAGER = "Marketing Manager",
    AFTERCARE_DIRECTOR = "Aftercare Director",
    SALES_COORDINATOR = "sales-coordinator",
    AFTERCARE = "aftercare",
    DIRECTOR_OF_TECHNOLOGY = "Director of Technology",
    PURCHASE_EXECUTIVE = "Purchase Executive",
    RELATIONSHIP_MANAGER = "Relationship Manager",
    SALES_CONTROLLER = "Sales Controller"
}
export declare enum TeamCategory {
    SALES = "sales",
    MANAGEMENT = "management",
    PURCHASES = "purchases",
    SALES_COORDINATOR = "sales-coordinator",
    AFTERCARE = "aftercare"
}
export declare enum Languages {
    ARABIC = "Arabic",
    AFRIKAANS = "Afrikaans",
    PERSIAN = "Persian",
    TURKISH = "Turkish",
    HEBREW = "Hebrew",
    HINDI = "Hindi",
    URDU = "Urdu",
    BENGALI = "Bengali",
    PUNJABI = "Punjabi",
    MALAYALAM = "Malayalam",
    TAMIL = "Tamil",
    TELUGU = "Telugu",
    SINHALESE = "Sinhalese",
    MANDARIN = "Mandarin",
    CANTONESE = "Cantonese",
    KOREAN = "Korean",
    JAPANESE = "Japanese",
    VIETNAMESE = "Vietnamese",
    THAI = "Thai",
    TAGALOG = "Tagalog",
    FILIPINO = "Filipino",
    INDONESIAN = "Indonesian",
    MALAY = "Malay",
    ENGLISH = "English",
    FRENCH = "French",
    GERMAN = "German",
    SPANISH = "Spanish",
    ITALIAN = "Italian",
    RUSSIAN = "Russian",
    PORTUGUESE = "Portuguese",
    SWAHILI = "Swahili",
    AMHARIC = "Amharic",
    SOMALI = "Somali",
    ROMANIAN = "Romanian",
    SWEDISH = "Swedish"
}
export declare class SalesAgentFilterDTO {
    search?: string;
    name?: string;
    email?: string;
    phone?: string;
    status?: number;
    teamCategory?: TeamCategory;
    designation?: Designation;
    sortOrder?: number;
    languages?: Languages[];
    isActive?: boolean;
    createdAtStart?: Date;
    createdAtEnd?: Date;
    lastLoginStart?: Date;
    lastLoginEnd?: Date;
    nationality?: string;
    previousWorkplace?: string;
    validate(): string[];
    static fromPlain(plain: Record<string, unknown>): SalesAgentFilterDTO;
    toPlain(): Record<string, unknown>;
}
export declare class SalesAgentOptionsDTO {
    page?: number;
    limit?: number;
    sortBy?: string;
    sortOrder?: "ASC" | "DESC";
    includeInactive?: boolean;
    searchQuery?: string;
    validate(): string[];
    static fromPlain(plain: Record<string, unknown>): SalesAgentOptionsDTO;
    toPlain(): Record<string, unknown>;
}
export declare class SalesAgentGetDTO {
    id: string;
    refId: number;
    user: UserGetDTO;
    name: string;
    phone: string;
    email: string;
    photo?: string;
    agentShortIntro?: string;
    agentIntro?: string;
    sortOrder?: number;
    bioVideoUrl?: string;
    status: number;
    teamCategory: TeamCategory;
    designation: Designation;
    languages: Languages[];
    filter?: SalesAgentFilterDTO;
    options?: SalesAgentOptionsDTO;
    nationality?: string;
    previousWorkplace?: string;
    static fromPlain(plain: Record<string, unknown>): SalesAgentGetDTO;
    static toPlain(instance: SalesAgentGetDTO): Record<string, unknown>;
    toPlain(): Record<string, unknown>;
}
export declare class SalesAgentResponseDTO {
    id: string;
    refId: number;
    user: UserGetDTO;
    name: string;
    phone: string;
    email: string;
    photo?: string;
    agentShortIntro?: string;
    agentIntro?: string;
    bioVideoUrl?: string;
    status: number;
    sortOrder?: number;
    teamCategory: TeamCategory;
    designation: Designation;
    languages: Languages[];
    isActive: boolean;
    createdAt: Date;
    updatedAt: Date;
    lastLogin?: Date;
    nationality?: string;
    previousWorkplace?: string;
    validate(): string[];
    static fromPlain(plain: Record<string, unknown>): SalesAgentResponseDTO;
    toPlain(): Record<string, unknown>;
}
export declare class SalesAgentCreateDTO {
    name: string;
    phone: string;
    email: string;
    sortOrder?: number;
    photo?: string;
    agentShortIntro?: string;
    agentIntro?: string;
    bioVideoUrl?: string;
    status?: number;
    teamCategory: TeamCategory;
    designation: Designation;
    languages: Languages[];
    nationality?: string;
    previousWorkplace?: string;
    validate(): string[];
    toUserDTO(): UserCreateDTO;
    toSalesAgentData(): Partial<any>;
    static fromPlain(plain: Record<string, unknown>): SalesAgentCreateDTO;
    toPlain(): Record<string, unknown>;
}
export declare class SalesAgentUpdateDTO {
    name?: string;
    phone?: string;
    email?: string;
    photo?: string;
    agentShortIntro?: string;
    sortOrder?: number;
    agentIntro?: string;
    bioVideoUrl?: string;
    status?: number;
    teamCategory?: TeamCategory;
    designation?: Designation;
    languages?: Languages[];
    isActive?: boolean;
    nationality?: string;
    previousWorkplace?: string;
    validate(): string[];
    toUserDTO(): UserUpdateDTO;
    toSalesAgentData(): Partial<any>;
    static fromPlain(plain: Record<string, unknown>): SalesAgentUpdateDTO;
    toPlain(): Record<string, unknown>;
}
