/** * Ported from https://github.com/zio/zio/blob/master/core/shared/src/main/scala/zio/Clock.scala * * Copyright 2020 Michael Arnaldi and the Matechs Garage Contributors. */ import type { HasTag } from "../../Has"; import * as T from "../Task/_core"; /** * Clock Model */ export declare const URI: unique symbol; export interface Clock { readonly _tag: typeof URI; readonly currentTime: T.IO; readonly sleep: (ms: number) => T.IO; } /** * Has Clock */ export declare const HasClock: import("../../Has").Tag; export declare type HasClock = HasTag; /** * Live clock implementation */ export declare const LiveClock: () => Clock; /** * Proxy Clock Implementation */ export declare const ProxyClock: (currentTime: T.IO, sleep: (ms: number) => T.IO) => Clock; /** * Get the current time in ms since epoch */ export declare const currentTime: T.Task, never, number>; /** * Sleeps for the provided amount of ms */ export declare const sleep: (ms: number) => T.Task, never, void>; /** * Access clock from environment */ export declare const withClockM: ( f: (a: Clock) => T.Task ) => T.Task, E, B>; /** * Access clock from environment */ export declare const withClock: (f: (a: Clock) => B) => T.Task, never, B>; //# sourceMappingURL=model.d.ts.map