import { PrismaService } from "../../../core/database/prisma/prisma.service";
type ImportRow = {
    email?: string;
    workCity?: string;
};
type CategorizedCity = {
    category: 'exact';
    city: string;
    rowCount: number;
} | {
    category: 'similar';
    city: string;
    similarTo: string;
    distance: number;
    rowCount: number;
} | {
    category: 'new';
    city: string;
    rowCount: number;
};
export declare class WorkCityImportService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    static editDistance(a: string, b: string): number;
    static isSimilarCity(a: string, b: string): {
        similar: boolean;
        distance: number;
    };
    listKnownCities(): Promise<string[]>;
    preview(rows: ImportRow[]): Promise<{
        total: number;
        uniqueCitiesInFile: number;
        categorized: {
            exact: CategorizedCity[];
            similar: CategorizedCity[];
            new: CategorizedCity[];
        };
        unmatchedEmails: string[];
    }>;
    commit(rows: ImportRow[], approvals: Record<string, {
        action: 'use' | 'replace' | 'skip';
        targetCity?: string;
    }>, actorUserId?: string): Promise<{
        created: number;
        updated: number;
        skipped: number;
        unmatchedEmails: string[];
    }>;
}
export {};
