import { User } from '../../user/entities/user.entity';
export declare enum LeadStatus {
    NEW = "New",
    INTERESTED = "Interested",
    CONVERTED = "Converted",
    LOST = "Lost"
}
export declare enum LeadPriority {
    LOW = "Low",
    MEDIUM = "Medium",
    HIGH = "High"
}
export declare enum ClientGroup {
    QRS = "QRS",
    TQS = "TQS",
    QRS_B = "QRS_B",
    QRS_NEW = "QRS_NEW"
}
export declare const SELECTABLE_CLIENT_GROUPS: readonly [ClientGroup.QRS, ClientGroup.TQS, ClientGroup.QRS_NEW];
export declare const CLIENT_GROUP_ROLLUP: Record<ClientGroup, ClientGroup>;
export declare const CLIENT_GROUP_LABELS: Record<ClientGroup, string>;
export declare function normalizeClientGroup(value: string | null | undefined): ClientGroup | null;
export declare function expandClientGroup(value: string): ClientGroup[];
export declare const LEAD_SOURCES: readonly ["Website", "Referral", "Cold Call", "Email Campaign", "Trade Show", "Social Media", "Other"];
export type LeadSource = (typeof LEAD_SOURCES)[number];
export declare const LEAD_LOST_REASONS: readonly ["Price", "Went with competitor", "No budget", "No response", "Not a fit", "Other"];
export type LeadLostReason = (typeof LEAD_LOST_REASONS)[number];
export declare class Lead {
    id: number;
    lead_code: string;
    company: string;
    client_group: ClientGroup | null;
    contact: string | null;
    phone: string | null;
    email: string | null;
    website: string | null;
    standards: string[] | null;
    status: LeadStatus;
    lost_reason: string | null;
    lost_notes: string | null;
    lost_at: Date | null;
    source: string | null;
    priority: LeadPriority;
    notes: string | null;
    tags: string[] | null;
    assigned_to: number | null;
    assignedUser: User | null;
    assigned_by: number | null;
    assignedByUser: User | null;
    assigned_at: Date | null;
    created_by: number | null;
    creator: User | null;
    converted_at: Date | null;
    created_at: Date | null;
    updated_at: Date | null;
    deleted_at: Date | null;
    get client_group_normalized(): ClientGroup | null;
}
