export interface Semaphore {
    readonly promise: Promise<void>;
    release(): void;
}
export declare function createSemaphore(): Semaphore;
export declare function deferred<T = void>(): {
    promise: Promise<T>;
    resolve: (value: T | PromiseLike<T>) => void;
    reject: (reason?: unknown) => void;
};
//# sourceMappingURL=promise.d.ts.map