/// <reference types="node" />
import { Field, RawData, Table } from '../interfaces';
import { ReindexMap } from '../utils';
import { OutputFormat } from './interfaces';
export declare class StreamBuilder {
    private inputFolder;
    private table;
    private fields;
    private stream;
    constructor(inputFolder: string, table: Table, fields: Field[]);
    private init;
    actionValidate(fields: Field[]): StreamBuilder;
    actionFilter(filterFn: (data: RawData) => boolean): StreamBuilder;
    actionAppendDefault(fields: Field[]): StreamBuilder;
    actionExtendContract(fields: Field[], refDate?: Date): StreamBuilder;
    actionReindex(startingPos?: number): StreamBuilder;
    actionApplyPlayernames(reindexMap: ReindexMap[], foreingKeyPrimaryColumn?: string, foreignKeyColumns?: string[]): StreamBuilder;
    actionReindexMap2RawData(primaryColumn: string): StreamBuilder;
    actionOnData(onDataFn: (data: any) => void): StreamBuilder;
    actionWrite(outputFolder: string, fields: Field[], format?: OutputFormat): StreamBuilder;
    onData(fn: (buffer: Buffer) => void): StreamBuilder;
    onFinish(fn: () => void): StreamBuilder;
    onError(fn: () => void): StreamBuilder;
}
