import express from 'express';
import winston from 'winston';
import { BatchUpdateContext, BatchUpdatePluginResponse, BatchUpdateRequest } from './BatchUpdateInterface';
export type CallOnBatchUpdate<C extends BatchUpdateContext, T> = (request: BatchUpdateRequest<C, T>) => Promise<BatchUpdatePluginResponse>;
export type DeserializerT<T> = (obj: string) => T;
export declare class BatchUpdateHandler<C extends BatchUpdateContext, T> {
    logger: winston.Logger;
    app: express.Application;
    emptyBodyFilter: (req: express.Request, res: express.Response, next: express.NextFunction) => void;
    constructor(app: express.Application, emptyBodyFilter: (req: express.Request, res: express.Response, next: express.NextFunction) => void, logger: winston.Logger);
    registerRoute(onbatchUpdateFn: CallOnBatchUpdate<C, T>): void;
}
