export declare class SingleChannel<T> {
    private hasValue;
    private value;
    constructor(hasValue: boolean, value: T | null);
    acquire(abortSignal?: AbortSignal | null): Promise<T>;
    private assertClosed;
    close(reason?: unknown): void;
    getValue(): [false] | [true, T];
    private removeValue;
    setValue(value: T): void;
    get isClosed(): boolean;
    private _isClosed;
    private acquireCount;
    private lock;
}
export declare class SingleChannelError extends Error {
}
export declare class ExistValueError extends SingleChannelError {
}
export declare class ClosedError extends SingleChannelError {
}
