interface NarFileInfo { filename: string; fullPath: string; sizeBytes: number; sizeFormatted: string; provinceCode: string; provinceName: string; provinceAbbr: string; type: 'address' | 'location'; partNumber?: number; } interface NarDataset { provinceCode: string; provinceName: string; provinceAbbr: string; addressFiles: NarFileInfo[]; locationFiles: NarFileInfo[]; totalAddressSize: number; totalLocationSize: number; } interface LocationLookup { lat: number; lng: number; fedDistrict?: string; fedCode?: string; } export interface ServerImportOptions { provinceCode: string; filterType: 'none' | 'city' | 'postalPrefix' | 'cut'; filterCity?: string; filterPostalPrefix?: string; cutId?: string; residentialOnly: boolean; deduplicateRadius: number; batchSize: number; } export interface ServerImportResult { provinceCode: string; provinceName: string; totalRows: number; locationsCreated: number; addressesCreated: number; skippedDuplicate: number; skippedOutOfBounds: number; skippedNonResidential: number; skippedInvalid: number; errors: string[]; durationMs: number; } export interface ImportProgress { status: 'loading-locations' | 'importing' | 'creating-records' | 'complete' | 'failed'; totalRows: number; locationsCreated: number; addressesCreated: number; skippedDuplicate: number; skippedOutOfBounds: number; skippedNonResidential: number; skippedInvalid: number; currentFile: string; provinceName: string; error?: string; result?: ServerImportResult; } export declare function writeProgress(importId: string, progress: ImportProgress): Promise; export declare const narImportService: { /** List available NAR datasets grouped by province */ listDatasets(): Promise<{ narDir: string | null; datasets: NarDataset[]; }>; /** * Load Location file(s) into a lookup Map for a given province. * Returns Map. */ loadLocationLookup(locationFiles: NarFileInfo[]): Promise>; /** Import a province's NAR data using Location+Address file join */ importProvince(userId: string, options: ServerImportOptions, importId?: string): Promise; }; export {}; //# sourceMappingURL=nar-import.service.d.ts.map