import type { Context } from '../tools/serialisation/context';
import type { Encoder } from '../tools/encoder';
import type { HttpRequest } from './httpRequest';
import type { FlushController } from './flushController';
export interface Batch {
    flushController: FlushController;
    add: (message: Context) => void;
    upsert: (message: Context, key: string) => void;
    stop: () => void;
}
export declare function createBatch({ encoder, request, flushController, messageBytesLimit, }: {
    encoder: Encoder;
    request: HttpRequest;
    flushController: FlushController;
    messageBytesLimit: number;
}): Batch;
