import * as CTX from "effect/Context"; import type * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import type * as Scope from "effect/Scope"; import type * as Types from "effect/Types"; export * from "effect/Context"; export interface Opaque extends CTX.Key { of(this: void, self: Shape): Self; context(self: Shape): CTX.Context; toLayer: (eff: Effect.Effect) => Layer.Layer>; use(f: (service: Shape) => Effect.Effect): Effect.Effect; useSync(f: (service: Shape) => A): Effect.Effect; } export declare function assignTag(key: string, creationError?: Error): (cls: S) => S & Opaque; /** Accessor for a service method that returns a plain value. Wraps via `useSync`. */ export declare const accessFn: , K extends keyof Shape>(Tag: Opaque, key: K) => Shape[K] extends (...args: [...infer Args]) => infer A ? (...args: Readonly) => Effect.Effect : never; /** Accessor for a service method that returns an Effect. Delegates via `use`. */ export declare const accessEffectFn: , K extends keyof Shape>(Tag: Opaque, key: K) => Shape[K] extends (...args: [...infer Args]) => Effect.Effect ? (...args: Readonly) => Effect.Effect : never; /** Accessor for a service property (constant). Wraps via `useSync`. */ export declare const accessCn: , K extends keyof Shape>(Tag: Opaque, key: K) => Effect.Effect; /** Accessor for a service property that is an Effect. Delegates via `use`. */ export declare const accessEffectCn: , K extends keyof Shape>(Tag: Opaque, key: K) => Shape[K] extends Effect.Effect ? Effect.Effect : never; export declare const TypeId = "~Context.Opaque"; export interface OpaqueClass extends Opaque { new (_: never): Shape & { readonly [TypeId]: Identifier; }; readonly key: Identifier; } export declare const Opaque: { (): = never>(id: Identifier, options?: { readonly make: ((...args: Args) => Effect.Effect) | Effect.Effect | undefined; }) => OpaqueClass & ([Types.unassigned] extends [R] ? unknown : { readonly make: [Args] extends [never] ? Effect.Effect : (...args: Args) => Effect.Effect; }); (): | ((...args: any) => Effect.Effect)>(id: Identifier, options: { readonly make: Make; }) => OpaqueClass | ((...args: infer _Args) => Effect.Effect) ? _A : never> & { readonly make: Make; }; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxLQUFLLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUUxQyxjQUFjLGdCQUFnQixDQUFBO0FBRTlCLE1BQU0sV0FBVyxNQUFNLENBQUMsSUFBSSxTQUFTLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxNQUFNLENBQUUsU0FBUSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7SUFDbkcsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUE7SUFDakMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUV2QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNaLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQzVCLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ2xELEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFF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