/** * Route Derivation — Shared Spec Behaviour Rules * * Derives a route table from a controller's CURVED operations. * Single source of truth used by: * - generators (to emit static route registrations) * - app-demo (to register dynamic routes) */ import { deriveBasePath } from './curved-protocol.js'; /** * A derived route from a controller's operations */ export interface DerivedRoute { /** Operation name (create, retrieve, list, update, evolve, delete, validate) */ operation: string; /** HTTP method (GET, POST, PUT, DELETE, PATCH) */ method: string; /** Relative path (/, /:id, /:id/evolve, /validate) */ relativePath: string; /** Whether the route takes an :id parameter */ hasIdParam: boolean; /** Whether the route expects a request body */ hasBody: boolean; } /** * Derive a complete route table from a controller definition. * * Accepts controllers with CURED operations and/or explicit endpoints. */ export declare function deriveRoutes(controller: { cured?: Record; endpoints?: Array<{ operation: string; method?: string; path?: string; }>; }): DerivedRoute[]; export { deriveBasePath }; //# sourceMappingURL=route-derivation.d.ts.map