import { Options, CompatibleRedisClient } from 'redlock';
import { IEvent } from './interface';
export declare function MiddlewareLock(prefix: string, param: string, connection: CompatibleRedisClient, ttl?: number, options?: Options): {
    before: (request: IEvent) => Promise<void>;
    after: (request: IEvent) => Promise<{
        batchItemFailures: {
            itemIdentifier: string;
        }[];
    } | undefined>;
    onError: (request: IEvent) => Promise<never>;
};
