import { type NonEmptyReadonlyArray } from "effect/Array"; import type * as Effect from "effect/Effect"; import type * as S from "effect/Schema"; import type * as Scope from "effect/Scope"; import type * as Stream from "effect/Stream"; import { type Rpc, RpcMiddleware } from "effect/unstable/rpc"; import { type TypeId } from "effect/unstable/rpc/RpcMiddleware"; import type * as Context from "../Context.js"; import { type GetEffectContext, type RpcContextMap } from "./RpcContextMap.js"; export type RpcMiddlewareV4 = RpcMiddleware.RpcMiddleware; export type RpcOptionsOriginal = { readonly optional?: boolean; readonly error?: S.Top; readonly requiredForClient?: boolean; }; export type RpcDynamic = { key: Key; settings: A; }; export type AnyDynamic = { dynamic: RpcDynamic; }; export type DependsOn = { readonly dependsOn: NonEmptyReadonlyArray | undefined; }; export interface RpcOptionsDynamic extends RpcOptionsOriginal { readonly dynamic: RpcDynamic; readonly dependsOn?: NonEmptyReadonlyArray | undefined; } export type Dynamic = Options extends RpcOptionsDynamic ? true : false; export interface RpcMiddlewareDynamic extends RpcMiddleware.RpcMiddleware { } export interface TagClassAny extends RpcMiddleware.AnyService { readonly optional: boolean; readonly provides: any; readonly requires: any; readonly error: S.Top; readonly dynamic?: RpcDynamic | undefined; readonly dependsOn?: NonEmptyReadonlyArray | undefined; } export declare namespace TagClass { /** * @since 1.0.0 * @category models */ type FailureSchema = Options extends { readonly error: S.Top; readonly optional?: false; } ? Options["error"] : typeof S.Never; /** * @since 1.0.0 * @category models */ type Failure = Options extends { readonly error: S.Codec; readonly optional?: false; } ? _A : Options extends { readonly dynamic: RpcDynamic; } ? A["error"]["Type"] : never; /** * @since 1.0.0 * @category models */ type FailureContext = FailureSchema["DecodingServices"]; /** * @since 1.0.0 * @category models */ type FailureService = Optional extends true ? unknown : Failure; /** * @since 1.0.0 * @category models */ type Optional = Options extends { readonly optional: true; } ? true : false; /** * @since 1.0.0 * @category models */ type RequiredForClient = Options extends { readonly requiredForClient: true; } ? true : false; /** * @since 1.0.0 * @category models */ interface Base extends Context.Service { new (_: never): Context.ServiceClass.Shape; readonly [TypeId]: TypeId; readonly optional: Optional; readonly error: FailureSchema; readonly "~ClientError": Options extends { readonly clientError: infer CE; } ? CE : never; readonly provides: "provides" extends keyof Config ? Config["provides"] : never; readonly requires: "requires" extends keyof Config ? Config["requires"] : never; readonly dynamic: Options extends RpcOptionsDynamic ? Options["dynamic"] : undefined; readonly dependsOn: Options extends DependsOn ? Options["dependsOn"] : undefined; readonly requiredForClient: RequiredForClient; } } export interface TagClass extends TagClass.Base ? RpcMiddlewareDynamic, "requires" extends keyof Config ? Config["requires"] : never, { [K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"]; }> : RpcMiddlewareV4<"provides" extends keyof Config ? Config["provides"] : never, TagClass.Failure, "requires" extends keyof Config ? Config["requires"] : never>, Config> { } export declare const Tag: () => = {}>(id: Name, options?: Options) => TagClass; export type AddMiddleware = R extends Rpc.Rpc ? Rpc.Rpc<_Tag, _Payload, _Success, _Error, _Middleware | Middleware> & { readonly config: R extends { readonly config: infer _C; } ? _C : never; } : never; export type HandlersContext = keyof Handlers extends infer K ? K extends keyof Handlers & string ? HandlerContext : never : never; export type HandlerContext = [Rpc.IsStream] extends [ true ] ? Handler extends (...args: any) => Stream.Stream | Rpc.Wrapper> | Effect.Effect | Rpc.Wrapper> ? Exclude, Scope.Scope> : never : Handler extends (...args: any) => Effect.Effect | Rpc.Wrapper> ? ExcludeProvides<_R, Rpcs, K> : never; export type ExtractDynamicallyProvides = R extends Rpc.Rpc ? _Middleware extends { readonly requestContextMap: infer _RC; } ? _RC extends Record ? R extends { readonly config: infer _C; } ? GetEffectContext<_RC, _C> : GetEffectContext<_RC, {}> : never : never : never; export type ExtractProvides = R extends Rpc.Rpc ? _Middleware extends { readonly provides: infer _P; } ? [_P] extends [never] ? never : _P : never : never; export type ExcludeProvides = Exclude | ExtractDynamicallyProvides>; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnBjTWlkZGxld2FyZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JwYy9ScGNNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxLQUFLLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pELE9BQU8sS0FBSyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDNUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDNUMsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzdELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUE7QUFDN0MsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsS0FBSyxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUU5RSxNQUFNLE1BQU0sZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsUUFBUSxJQUFJLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUV2RyxNQUFNLE1BQU0sa0JBQWtCLEdBQUc7SUFDL0IsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtJQUMzQixRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUN0QixRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxPQUFPLENBQUE7Q0FDckMsQ0FBQTtBQUVELE1BQU0sTUFBTSxVQUFVLENBQUMsR0FBRyxTQUFTLE1BQU0sRUFBRSxDQUFDLFNBQVMsYUFBYSxDQUFDLEdB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