import { Effect } from "@effect/core/io/Effect/definition";
import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Collection } from "@tsplus/stdlib/collections/Collection/definition";
import { Tag } from "@tsplus/stdlib/service/Tag";
export declare const RandomSym: unique symbol;
export declare type RandomSym = typeof RandomSym;
/**
 * @tsplus type ets/Random
 */
export interface Random {
    readonly [RandomSym]: RandomSym;
    readonly next: Effect<never, never, number>;
    readonly nextBoolean: Effect<never, never, boolean>;
    readonly nextInt: Effect<never, never, number>;
    readonly nextRange: (low: number, high: number, __tsplusTrace?: string) => Effect<never, never, number>;
    readonly nextIntBetween: (low: number, high: number, __tsplusTrace?: string) => Effect<never, never, number>;
    readonly shuffle: <A>(collection: LazyArg<Collection<A>>, __tsplusTrace?: string) => Effect<never, never, Collection<A>>;
}
/**
 * @tsplus type ets/Random/Ops
 */
export interface RandomOps {
    $: RandomAspects;
    Tag: Tag<Random>;
}
export declare const Random: RandomOps;
/**
 * @tsplus type ets/Random/Aspects
 */
export interface RandomAspects {
}
//# sourceMappingURL=definition.d.ts.map