/// <reference types="node" />
import { WriteStream } from 'fs';
import { Field, RawData, Table } from '../interfaces';
export declare type StreamBuilderType = NodeJS.ReadWriteStream | WriteStream;
export declare enum OutputFormat {
    Csv = "csv",
    Json = "json"
}
export declare enum ActionType {
    ActionAppendDefault = "append-default",
    ActionExtendContract = "extend-contract",
    ActionValidate = "validate",
    ActionFilter = "filter",
    ActionOnData = "on-data"
}
export interface ActionFactoryAction {
    type: ActionType;
    filterFn?: (data: RawData) => boolean;
    onDataFn?: (data: RawData) => any;
}
export interface ActionFactorySource {
    folder: string;
    fields: Field[];
    format?: OutputFormat;
}
export interface ActionFactoryOptions {
    table: Table;
    input: ActionFactorySource;
    actions: ActionFactoryAction[];
    output?: ActionFactorySource;
}
