import type { Has, Tag } from "../Has/index.js"; import type { UnionToIntersection } from "../Utils/index.js"; import * as As from "./core.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; }) => As.Async) => As.Async] ? Has : unknown; }[keyof SS]>, E, B>; export declare const accessServicesTM: []>(...s: SS) => (f: (...a: { [k in keyof SS]: [SS[k]] extends [Tag] ? T : unknown; }) => As.Async) => As.Async] ? Has : never; }[keyof SS & number]>, E, B>; export declare function accessServicesT[]>(...s: SS): (f: (...a: { [k in keyof SS]: [SS[k]] extends [Tag] ? T : unknown; }) => B) => As.Async] ? Has : never; }[keyof SS & number]>, never, 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) => As.Async] ? Has : unknown; }[keyof SS]>, never, B>; /** * Access a service with the required Service Entry */ export declare function accessServiceM(s: Tag): (f: (a: T) => As.Async) => As.Async, E, B>; /** * Access a service with the required Service Entry */ export declare function accessService(s: Tag): (f: (a: T) => B) => As.Async, never, B>; /** * Access a service with the required Service Entry */ export declare function service(s: Tag): As.Async, never, T>; /** * Provides the service with the required Service Entry */ export declare function provideServiceM(_: Tag): (f: As.Async) => (ma: As.Async, E1, A1>) => As.Async; /** * Provides the service with the required Service Entry */ export declare function provideService(_: Tag): (f: T) => (ma: As.Async, E1, A1>) => As.Async; /** * Replaces the service with the required Service Entry */ export declare function replaceServiceM(_: Tag, f: (_: T) => As.Async): (ma: As.Async, E1, A1>) => As.Async, E | E1, A1>; /** * Replaces the service with the required Service Entry */ export declare function replaceServiceM_(ma: As.Async, E1, A1>, _: Tag, f: (_: T) => As.Async): As.Async, E | E1, A1>; /** * Replaces the service with the required Service Entry */ export declare function replaceService(_: Tag, f: (_: T) => T): (ma: As.Async, E1, A1>) => As.Async, E1, A1>; /** * Replaces the service with the required Service Entry */ export declare function replaceService_(ma: As.Async, E1, A1>, _: Tag, f: (_: T) => T): As.Async, E1, A1>; //# sourceMappingURL=has.d.ts.map