/// <reference types="node" />
import EventEmitter from 'events';
import Source from './source';
import { AssignmentTestInterface } from './assignment-contexts/local';
import { LogicalOffset, LogicalLiteralOffset } from './offsets';
export { AssignmentTestInterface };
declare class Task {
    id: number;
    events: EventEmitter;
    sources: Array<Source>;
    group: string;
    options: {
        admin?: any;
        connection?: any;
        consumer?: any;
    };
    admin?: any;
    consumer?: any;
    kafka?: any;
    private streams?;
    reassigning: Promise<void>;
    assignedContexts: any[];
    processingSession?: Promise<any>;
    private sessionSeq;
    constructor({ group, connection, consumer, admin }: {
        group: string;
        connection?: any;
        consumer?: any;
        admin?: any;
    });
    source(topicName: any, options?: {
        offsetReset?: LogicalLiteralOffset | LogicalOffset;
    }): Source;
    processor(source: Source, setupProcessing: any): Source;
    inject(assignments: {
        topic: string;
        partition: number;
    }): Promise<AssignmentTestInterface>;
    inject(assignments: Array<{
        topic: string;
        partition: number;
    }>): Promise<Array<AssignmentTestInterface>>;
    start(): Promise<void>;
    stop(): Promise<void>;
    private receiveAssignments;
    private reassign;
    private stopAssignedContexts;
}
export default function createTask(config: any): Task;
