import { OnModuleInit } from "@nestjs/common";
import { DistributedMutex, DistributedSemaphore, Mutex, Semaphore, types } from "@apiratorjs/locking";
import { ILockingFactoryImpl } from "./locking-factory-interface";
export declare class LockingFactory implements OnModuleInit {
    private readonly _lockingFactoryImpl?;
    constructor(_lockingFactoryImpl?: ILockingFactoryImpl | undefined);
    onModuleInit(): Promise<void>;
    createMutex(): Mutex;
    createSemaphore(maxCount: number): Semaphore;
    createDistributedMutex(props: types.DistributedMutexConstructorProps): DistributedMutex;
    createDistributedSemaphore(props: types.DistributedSemaphoreConstructorProps): DistributedSemaphore;
}
