///
import { IHttpServer } from "@egomobile/http-server";
import type { IController, IControllersOptions, ImportValues } from "../index.js";
import type { ControllerBase, IControllersResult } from "../types/index.js";
import type { Constructor, Nilable } from "../types/internal.js";
type HttpServer = IHttpServer;
interface IControllerFile {
fullPath: string;
relativePath: string;
}
interface IInitializeControllerInstanceOptions {
controllerClass: Constructor;
events: NodeJS.EventEmitter;
file: IControllerFile;
imports: ImportValues;
noAutoEnd: Nilable;
noAutoParams: Nilable;
noAutoQuery: Nilable;
rootDir: string;
server: HttpServer;
}
interface IInitializeControllersMethodOptions {
events: NodeJS.EventEmitter;
onControllersOptionsChange: (options: IControllersOptions) => void;
onControllersResultChange: (result: IControllersResult) => void;
server: HttpServer;
}
interface IInitializeControllersOptions {
events: NodeJS.EventEmitter;
imports: ImportValues;
noAutoEnd: Nilable;
noAutoParams: Nilable;
noAutoQuery: Nilable;
patterns: string[];
rootDir: string;
server: HttpServer;
}
export declare function sortControllerFiles(files: IControllerFile[]): IControllerFile[];
export declare function initializeControllers({ events, imports, noAutoEnd, noAutoParams, noAutoQuery, patterns, rootDir, server }: IInitializeControllersOptions): Promise;
export declare function initializeControllerInstance({ controllerClass, events, file, imports, noAutoEnd, noAutoParams, noAutoQuery, rootDir, server }: IInitializeControllerInstanceOptions): Promise;
export declare function initializeControllersMethod({ events, onControllersOptionsChange, onControllersResultChange, server }: IInitializeControllersMethodOptions): void;
export {};