import type { Effect } from "../Effect/effect.js"; import type { Has, Tag } from "../Has/index.js"; import type { UnionToIntersection } from "../Utils/index.js"; /** * Access a record of services with the required Service Entries */ export declare function accessServicesM>>(s: SS): (f: (a: { [k in keyof SS]: [SS[k]] extends [Tag] ? T : unknown; }) => Effect, __trace?: string | undefined) => Effect] ? Has : unknown; }[keyof SS]>, E, B>; /** * Access a tuple of services with the required Service Entries monadically */ export declare function accessServicesTM[]>(...s: SS): (f: (...a: { [k in keyof SS]: [SS[k]] extends [Tag] ? T : unknown; }) => Effect, __trace?: string | undefined) => Effect] ? Has : never; }[keyof SS & number]>, E, B>; /** * Access a tuple of services with the required Service Entries */ export declare function accessServicesT[]>(...s: SS): (f: (...a: { [k in keyof SS]: [SS[k]] extends [Tag] ? T : unknown; }) => B, __trace?: string | undefined) => import("../Effect/effect.js").RIO] ? Has : never; }[keyof SS & number]>, B>; /** * Access a record of services with the required Service Entries */ export declare function accessServices>>(s: SS): (f: (a: { [k in keyof SS]: [SS[k]] extends [Tag] ? T : unknown; }) => B, __trace?: string | undefined) => import("../Effect/effect.js").RIO] ? Has : unknown; }[keyof SS]>, B>; /** * Access a service with the required Service Entry */ export declare function accessServiceM(s: Tag): (f: (a: T) => Effect, __trace?: string | undefined) => Effect, E, B>; /** * Access a service with the required Service Entry */ export declare function accessService(s: Tag): (f: (a: T) => B, __trace?: string | undefined) => Effect, never, B>; /** * Accesses the specified service in the environment of the effect. */ export declare function service(s: Tag, __trace?: string): Effect, never, T>; /** * Accesses the specified services in the environment of the effect. * * @ets_trace call */ export declare function services[]>(...s: Ts): import("../Effect/effect.js").RIO] ? Has : never; }[number]>, Readonly<{ [k_1 in keyof Ts]: [Ts[k_1]] extends [Tag] ? T_1 : never; }>>; /** * Provides the service with the required Service Entry */ export declare function provideServiceM(_: Tag): (service: Effect, __trace?: string | undefined) => (ma: Effect, E1, A1>) => Effect; /** * Provides the service with the required Service Entry */ export declare function provideServiceM_(ma: Effect, E1, A1>, _: Tag, service: Effect, __trace?: string): Effect; /** * Provides the service with the required Service Entry */ export declare function provideService(_: Tag): (service: T, __trace?: string | undefined) => (ma: Effect, E1, A1>) => Effect; /** * Provides the service with the required Service Entry */ export declare function provideService_(ma: Effect, E1, A1>, _: Tag, service: T, __trace?: string): Effect; /** * Replaces the service with the required Service Entry */ export declare function replaceServiceM(_: Tag, f: (_: T) => Effect, __trace?: string): (ma: Effect, E1, A1>) => Effect, E | E1, A1>; /** * Replaces the service with the required Service Entry */ export declare function replaceServiceM_(ma: Effect, E1, A1>, _: Tag, f: (_: T) => Effect, __trace?: string): Effect, E | E1, A1>; /** * Replaces the service with the required Service Entry * * @ets_data_first replaceService_ */ export declare function replaceService(_: Tag, f: (_: T) => T, __trace?: string): (ma: Effect, E1, A1>) => Effect, E1, A1>; /** * Replaces the service with the required Service Entry */ export declare function replaceService_(ma: Effect, E1, A1>, _: Tag, f: (_: T) => T, __trace?: string): Effect, E1, A1>; //# sourceMappingURL=has.d.ts.map