import { BeltMetadata, BeltPluginType, ConveyorBeltType, GenericPlugin } from './types';
export declare class ConveyorBelt<Input, Output, BeltType> implements ConveyorBeltType<Input, Output, BeltType> {
    readonly type: BeltType;
    readonly id: string;
    protected plugins: BeltPluginType<Input, Output, BeltType | GenericPlugin>[];
    constructor(args: {
        type: BeltType;
        plugins: BeltPluginType<Input, Output, BeltType | GenericPlugin>[];
    });
    execute(item: Input, existingItemId?: string): Promise<Output>;
    private preProcess;
    private postProcess;
    private processError;
    protected process(_item: Input, _itemId: string): Promise<Output>;
    protected getMeta(itemId: string): BeltMetadata;
}
