import { AssignmentContext } from './assignment-contexts/index';
import { Message } from './streams';
interface ProcessorSetup {
    (assignment: any): ProcessorFunction | ProcessorFunction[];
}
export interface ProcessingContext {
    abandon: any;
    toString: () => string;
    commit: (metadata: any) => Promise<void>;
    group: () => string;
    offset: () => string;
    partition: () => number;
    topic: () => string;
    timestamp: () => string;
}
interface ProcessorFunction {
    (val: any, context: ProcessingContext): Promise<any>;
    (val: any, context: ProcessingContext): any;
}
export declare function createPipeline(assignmentContext: AssignmentContext, processors: ProcessorSetup[]): Promise<[(controlledStream: Highland.Stream<Message>) => Highland.Stream<any>, Highland.Stream<string>]>;
export {};
