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