/// <reference types="node" />
import { FabrixApp } from '@fabrix/fabrix';
import EventEmitter from 'events';
import { BroadcastEntity } from './BroadcastEntity';
export declare function Pipeline({ expects_input, expects_response, docs }: {
    expects_input?: any;
    expects_response?: any;
    docs?: any;
}): (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => PropertyDescriptor;
export declare class PipelineEmitter extends EventEmitter {
    app: FabrixApp;
    command: string;
    pipeline: any;
    runner: any;
    constructor(app: FabrixApp, { command, broadcaster: Broadcaster, pipeline, runner, req, body, options }: {
        command: any;
        broadcaster: any;
        pipeline: any;
        runner: {
            [key: string]: any;
        };
        req: {
            [key: string]: any;
        };
        body: any;
        options: {
            [key: string]: any;
        };
    });
    run(pipeline: any, runner: any, req: any, body: any, options: any): void;
    progress(name: string, index: number, total: number, message?: any): void;
    subprogress(name: string, index: number, total: number, message?: any): void;
    error(...args: any[]): void;
    failure(...args: any[]): void;
    success(...args: any[]): void;
    complete(...args: any[]): void;
}
export declare class BroadcastPipe {
    app: FabrixApp;
    req: any;
    command: string;
    body: any;
    options: any;
    isAcknowledged: any;
    constructor(app: FabrixApp, command: any, req: any, body: any, options: any);
    readonly name: string;
}
export declare class BroadcastPipeline extends BroadcastEntity {
    constructor(app: FabrixApp);
}
