/** * Controller registry - stores all registered controllers */ import type { IRegisteredController, ICompiledRoute } from './decorators.types.js'; import type { IRequestContext, THttpMethod } from '../core/smartserve.interfaces.js'; /** * Global registry of all controllers */ export declare class ControllerRegistry { private static controllers; private static instances; private static compiledRoutes; private static dynamicRoutes; private static routesCompiled; /** * Register a controller class */ static registerClass(target: Function): void; /** * Register a controller instance */ static registerInstance(instance: any): void; /** * Get all registered controllers */ static getControllers(): IRegisteredController[]; /** * Add a dynamic route without needing a controller class */ static addRoute(path: string, method: THttpMethod, handler: (ctx: IRequestContext) => Promise): () => void; /** * Remove a dynamic route that was previously registered with addRoute(). */ static removeRoute(routeArg: ICompiledRoute): boolean; /** * Compile all routes for fast matching */ static compileRoutes(enableValidation?: boolean): ICompiledRoute[]; /** * Match a request to a compiled route */ static matchRoute(path: string, method: THttpMethod): { route: ICompiledRoute; params: Record; } | null; /** * Convert path pattern to regex * Supports :param and * wildcard */ private static pathToRegex; /** * Check if OpenAPI metadata contains validation-relevant information */ private static hasValidationMetadata; /** * Clear all registered controllers (useful for testing) */ static clear(): void; }