import type { FunctionBinding } from '@astrale-os/kernel-api/routed'; import type { FunctionSchema } from '@astrale-os/kernel-core/domain'; import { z } from 'zod'; import type { RemoteIdentityConfig } from '../auth/identity.js'; export declare const SERVICE_FUNCTIONS_PATH = "/_astrale/functions"; export declare const SERVICE_FUNCTIONS_PURPOSE = "astrale.service-functions.v1"; export declare const ServiceFunctionManifestEntrySchema: z.ZodObject<{ slug: z.ZodString; ref: z.ZodString; inputSchema: z.ZodRecord; outputSchema: z.ZodRecord; output: z.ZodDefault>; binding: z.ZodObject<{ remoteUrl: z.ZodOptional; route: z.ZodOptional; path: z.ZodString; self: z.ZodOptional; query: z.ZodOptional>; headers: z.ZodOptional>; body: z.ZodOptional; credential: z.ZodOptional; }, z.core.$strip>>; auth: z.ZodOptional>; }, z.core.$strip>; }, z.core.$strip>; export declare const ServiceFunctionManifestSchema: z.ZodObject<{ version: z.ZodLiteral<1>; service: z.ZodObject<{ issuer: z.ZodString; subject: z.ZodString; }, z.core.$strip>; functions: z.ZodArray; outputSchema: z.ZodRecord; output: z.ZodDefault>; binding: z.ZodObject<{ remoteUrl: z.ZodOptional; route: z.ZodOptional; path: z.ZodString; self: z.ZodOptional; query: z.ZodOptional>; headers: z.ZodOptional>; body: z.ZodOptional; credential: z.ZodOptional; }, z.core.$strip>>; auth: z.ZodOptional>; }, z.core.$strip>; }, z.core.$strip>>; }, z.core.$strip>; export declare const ServiceFunctionDiscoveryRequestSchema: z.ZodObject<{ kernelIssuer: z.ZodString; nonce: z.ZodString; }, z.core.$strip>; export declare const ServiceFunctionDiscoveryResponseSchema: z.ZodObject<{ version: z.ZodLiteral<1>; service: z.ZodObject<{ issuer: z.ZodString; subject: z.ZodString; }, z.core.$strip>; functions: z.ZodArray; outputSchema: z.ZodRecord; output: z.ZodDefault>; binding: z.ZodObject<{ remoteUrl: z.ZodOptional; route: z.ZodOptional; path: z.ZodString; self: z.ZodOptional; query: z.ZodOptional>; headers: z.ZodOptional>; body: z.ZodOptional; credential: z.ZodOptional; }, z.core.$strip>>; auth: z.ZodOptional>; }, z.core.$strip>; }, z.core.$strip>>; identity: z.ZodObject<{ credential: z.ZodString; }, z.core.$strip>; }, z.core.$strip>; export type ServiceFunctionManifestEntry = z.infer; export type ServiceFunctionManifest = z.infer; export type ServiceFunctionDiscoveryRequest = z.infer; export type ServiceFunctionDiscoveryResponse = z.infer; export declare function toServiceFunctionManifestEntries(schemas: readonly FunctionSchema[]): ServiceFunctionManifestEntry[]; export declare function signServiceFunctionManifest(manifest: ServiceFunctionManifest, request: ServiceFunctionDiscoveryRequest, identity: RemoteIdentityConfig): Promise; export declare function verifyServiceFunctionManifest(input: unknown, expected: { kernelIssuer: string; nonce: string; serviceIssuer: string; serviceSubject: string; publicKey: JsonWebKey; }): Promise; export declare function hashServiceFunctionManifest(manifest: ServiceFunctionManifest): Promise; export declare function functionBindingForManifest(binding: FunctionBinding, auth: 'required' | 'optional' | 'public' | undefined): FunctionBinding; //# sourceMappingURL=functions.d.ts.map