import { TRandom } from "@effect/core/stm/TRandom/definition";
import { TRef } from "@effect/core/stm/TRef/definition";
import { STM } from "@effect/core/stm/STM/definition/base";
import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Collection } from "@tsplus/stdlib/collections/Collection/definition";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
import type { USTM } from "@effect/core/stm/STM/definition";
import { TRandomSym } from "@effect/core/stm/TRandom/definition";
import { Tuple } from "@tsplus/stdlib/data/Tuple";
import type { PCGRandomState } from "@tsplus/stdlib/utilities/RandomPCG";
/**
 * @tsplus static ets/TRandom/Ops default
 * @tsplus location "@effect/core/stm/TRandom/operations/live"
 */
export declare const defaultTRandom: import("@tsplus/stdlib/data/LazyValue").LazyValue<import("../../../io/Effect").Effect<never, never, LiveTRandom>>;
/**
 * @tsplus static ets/TRandom/Ops live
 * @tsplus location "@effect/core/stm/TRandom/operations/live"
 */
export declare const live: import("../../../io/Layer").Layer<never, never, import("@effect/core/stm/TRandom/definition").TRandom>;
export declare class LiveTRandom implements TRandom {
    readonly state: TRef<PCGRandomState>;
    readonly [TRandomSym]: TRandomSym;
    constructor(state: TRef<PCGRandomState>);
    withState<A>(f: (state: PCGRandomState) => Tuple<[A, PCGRandomState]>): USTM<A>;
    get next(): USTM<number>;
    get nextBoolean(): USTM<boolean>;
    get nextInt(): USTM<number>;
    nextRange(low: number, high: number): USTM<number>;
    nextIntBetween(low: number, high: number): USTM<number>;
    shuffle<A>(collection: LazyArg<Collection<A>>, __tsplusTrace?: string): USTM<Collection<A>>;
}
//# sourceMappingURL=live.d.ts.map