import { Maybe } from "@tsplus/stdlib/data/Maybe/definition"; import type { Tag } from "@tsplus/stdlib/service/Tag"; /** * @tsplus type Env.Ops */ export interface EnvOps { readonly sym: unique symbol; readonly empty: Env; (tag: Tag, service: H): Env; new (unsafeMap: Env["unsafeMap"]): Env; } export declare const Env: EnvOps; export type Tags = R extends infer S ? Tag : never; /** * @tsplus type Env */ export interface Env { readonly [Env.sym]: (_: never) => R; readonly unsafeMap: Map, unknown>; add(this: Env, tag: Tag, service: H): Env; get>(this: Env, tag: T): T extends Tag ? S : never; unsafeGet(this: Env, tag: Tag): S; getMaybe(this: Env, tag: Tag): Maybe; merge(this: Env, that: Env): Env; prune[]>(this: Env, ...tags: S): Env<{ [k in keyof S]: Tag.TagType; }[number]>; } //# sourceMappingURL=Env.d.ts.map