import { CommandRunner } from 'nest-commander';
import { CsvPopulateService } from 'modules/feature/can/populate-db-csv/csv-populate.service';
import { DataSource } from 'typeorm';
import { ImportCSVService } from 'modules/feature/can/csv-import/csv-import.service';
export declare enum CsvFileType {
    IPV4 = "ipv4",
    IPV6 = "ipv6",
    ASN = "asn",
    GEONAME = "geoname",
    GENERIC = "generic"
}
interface CsvImportCommandOptions {
    files: string[];
    directory?: string;
    pattern?: string;
    batchSize?: number;
    source?: string;
    verbose?: boolean;
    type?: CsvFileType;
}
export declare class CsvImportCommand extends CommandRunner {
    private readonly csvPopulateService;
    private readonly importCSVService;
    private readonly dataSource;
    private readonly logger;
    constructor(csvPopulateService: CsvPopulateService, importCSVService: ImportCSVService, dataSource: DataSource);
    run(passedParams: string[], options?: CsvImportCommandOptions): Promise<void>;
    private processFile;
    parseFiles(val: string): string[];
    parseDirectory(val: string): string;
    parsePattern(val: string): string;
    parseBatchSize(val: string): number;
    parseSource(val: string): string;
    parseType(val: string): string;
    parseVerbose(val: boolean): boolean;
    private resolveFiles;
}
export {};
/**
 * # Import a single file
npm run import-csv -- --files csv/file01.csv

* # Import by file type
npm run import-csv -- --files csv/GeoLite2-City-Blocks-IPv6.csv --type ipv6

# Import all CSV files from a directory
npm run import-csv -- --directory path/to/breach-data
`
# Import with custom source and batch size
npm run import-csv -- --files path/to/file.csv --source "XYZ Breach" --batch-size 500
 */
