import type { FaultCode } from '../core/fault-code.ts'; import type { ErasedOperation, OperationKind, TransportAvailability } from '../server/operation-catalog.ts'; import type { ParamSource, ResponseShape } from '../server/rest-binding.ts'; export type CatalogRestBindingSnapshot = { readonly method: string; readonly path: string; readonly inputSources: Readonly>; readonly success: ResponseShape; }; export type CatalogAccessSnapshot = { readonly kind: 'public'; } | { readonly kind: 'authenticated'; } | { readonly kind: 'optionalAuth'; readonly scopes: ReadonlyArray; } | { readonly kind: 'scoped'; readonly scopes: ReadonlyArray; } | { readonly kind: 'scopedAlternatives'; readonly alternatives: ReadonlyArray>; }; export type CatalogOperationSnapshot = { readonly name: string; readonly kind: OperationKind; readonly summary: string; /** Optional longer-form prose; present only for the interactive subset. */ readonly description?: string; readonly tags: ReadonlyArray; readonly destructive: boolean; readonly access: CatalogAccessSnapshot; readonly parameterizedAccess?: { readonly discriminator: string; readonly defaultValue?: string; readonly variants: ReadonlyArray<{ readonly value: string; readonly access: CatalogAccessSnapshot; }>; }; readonly transports: TransportAvailability; readonly producibleFaults: ReadonlyArray; readonly inputSchema: Record; readonly outputSchema: Record; readonly eventSchema?: Record; /** Declarative REST route metadata for generated client transports. */ readonly rest?: CatalogRestBindingSnapshot; }; export type CatalogSnapshot = { readonly generatedBy: 'weft catalog snapshot'; readonly version: 1; readonly operations: ReadonlyArray; }; export declare function createCatalogSnapshot(sourceOperations?: ReadonlyArray): CatalogSnapshot; export declare function stringifyCatalogSnapshot(snapshot: CatalogSnapshot): string;