declare type CsvPreviewValidator<T> = (value: Required<T>[keyof T], row: T) => boolean;
interface CsvPreviewOptions<T> {
    requiredFields?: (keyof T)[];
    rowsLimit?: number;
    validators?: {
        [F in keyof T]?: CsvPreviewValidator<T>;
    };
}
export default class CsvPreviewService<T> {
    private readonly options;
    constructor(options?: CsvPreviewOptions<T>);
    execute(file: File, options?: CsvPreviewOptions<T>): Promise<CsvPreviewResult<T>>;
}
declare class CsvPreviewResult<T> {
    rows: T[];
    delimiter: string;
    errors: number[];
    constructor(rows: T[], delimiter: string, errors: number[]);
    takeValidRows(count: number): T[];
    takeInvalidRows(count: number): T[];
}
export {};
