import { TQueue } from "@effect/core/stm/TQueue/definition";
import { TRef } from "@effect/core/stm/TRef/definition";
import { ImmutableQueue } from "@tsplus/stdlib/collections/ImmutableQueue/definition";
import type { Strategy } from "@effect/core/stm/TQueue/definition";
import { _A, TQueueSym } from "@effect/core/stm/TQueue/definition";
export declare class InternalTQueue<A> implements TQueue<A> {
    readonly ref: TRef<ImmutableQueue<A>>;
    readonly capacity: number;
    readonly strategy: Strategy;
    readonly [TQueueSym]: TQueueSym;
    readonly [_A]: () => A;
    constructor(ref: TRef<ImmutableQueue<A>>, capacity: number, strategy: Strategy);
}
/**
 * @tsplus macro remove
 */
export declare function concreteTQueue<A>(_: TQueue<A>): asserts _ is InternalTQueue<A>;
//# sourceMappingURL=InternalTQueue.d.ts.map