import { DataSource } from 'typeorm';
import { Lead } from '../entities/lead.entity';
export interface DuplicateReason {
    label: string;
    code: string;
}
export interface DuplicateMatch {
    lead: Lead;
    reasons: DuplicateReason[];
    severity: 'high' | 'low';
    hardSignals: number;
    softSignals: number;
}
export interface DuplicateClientMatch {
    client: any;
    reasons: DuplicateReason[];
    severity: 'high' | 'low';
    hardSignals: number;
    softSignals: number;
}
interface DuplicateQuery {
    company?: string | null;
    contact?: string | null;
    phone?: string | null;
    email?: string | null;
}
export declare class DuplicateLeadDetectorService {
    private readonly dataSource;
    constructor(dataSource: DataSource);
    find(query: DuplicateQuery, ignoreId?: number | null): Promise<DuplicateMatch[]>;
    findInClients(_query: DuplicateQuery): Promise<DuplicateClientMatch[]>;
    private score;
    private normalizePhone;
}
export {};
