export declare class DisposalManager {
    private activeAsyncResolutions;
    private readonly DISPOSAL_WAITERS;
    private readonly DISPOSE_INTERNAL;
    private readonly GET_ASYNC_RESOLUTION_DRAIN_TIMEOUT_MS;
    private readonly GET_DISPOSE_PROMISE;
    private readonly IS_DISPOSED;
    private readonly IS_DISPOSING;
    private readonly SET_DISPOSE_PROMISE;
    private readonly SET_IS_DISPOSING;
    constructor(options: {
        disposeInternal: () => Promise<void>;
        getAsyncResolutionDrainTimeoutMs: () => number | undefined;
        getDisposePromise: () => Promise<void> | undefined;
        isDisposed: () => boolean;
        isDisposing: () => boolean;
        setDisposePromise: (disposePromise?: Promise<void>) => void;
        setIsDisposing: (isDisposing: boolean) => void;
    });
    dispose(): Promise<void>;
    onAsyncResolutionEnd(): void;
    onAsyncResolutionStart(): void;
    waitForInFlightAsyncResolutions(): Promise<void>;
    private createAsyncResolutionDrainTimeoutError;
    private releaseDisposalWaitersIfIdle;
    private waitForIdleSignal;
}
//# sourceMappingURL=manager.class.d.ts.map