import type { RouteHandler } from "fastify"; import type { ParsedRoute } from "./parser"; export type AnyRouteHandler = RouteHandler<{ Body: any; Querystring: any; Params: any; Headers: any; }>; export type Controller = Record; export type ControllerConstructor = { new (): Controller; }; export type ControllerFactory = () => Controller | Promise; export type ControllerResolution = "per-route" | "per-operation" | "manual" | "unique"; export type ControllerConfig = string | Controller | ControllerConstructor | ControllerFactory; export interface ControllerOptions { controller?: ControllerConfig; controllersDir?: string; resolution?: ControllerResolution | ControllerResolution[]; resolutionConfig?: Record; } export declare function createHandler(route: ParsedRoute, options: ControllerOptions): Promise; export declare function createController(config: ControllerConfig, options: ControllerOptions): Promise;