import { ApiZone, Architecture, AuthCapability, AuthPolicy, ResourceRegistryEntry, RouteRegistryEntry } from "../../config/schemas/types"; import { PlannedFile } from "../../io/file-writer"; export type RouteMethod = "get" | "post" | "put" | "patch" | "delete" | "head" | "options"; export interface AddRoutePlan { resource: ResourceRegistryEntry; name: string; controller?: string; method: RouteMethod; path?: string; useCase?: string; command?: string; query?: string; auth: "none" | AuthCapability; zone: ApiZone; policy?: AuthPolicy; featuresRoot: string; contracts?: "plain" | "zod"; } export interface FeatureRouteControllerPlan { resource: ResourceRegistryEntry; routes: RouteRegistryEntry[]; featuresRoot: string; architecture: Architecture; } export interface NamedRouteControllerPlan extends FeatureRouteControllerPlan { controllerName: string; } export declare const routeMethods: RouteMethod[]; export declare function createRouteEntry(plan: AddRoutePlan): RouteRegistryEntry; export declare function createFeatureRouteControllerFile(plan: FeatureRouteControllerPlan): PlannedFile; export declare function createNamedRouteControllerFile(plan: NamedRouteControllerPlan): PlannedFile; export declare function createRouteControllerFile(plan: AddRoutePlan): PlannedFile; export declare function createRouteControllersIndexFile(resource: ResourceRegistryEntry, featuresRoot: string, routeNames: string[]): PlannedFile; export declare function createRouteContractFile(plan: AddRoutePlan): PlannedFile; export declare function createRouteContractSpecFile(plan: AddRoutePlan): PlannedFile; export declare function routeControllerNameFromPath(filePath: string): string | undefined; export declare function routeControllerIndexResourceFromPath(filePath: string, featuresRoot: string): string | undefined;