/**
 * HTTP Kernel - Request handling and middleware pipeline
 */
import type { IServiceContainer } from '../container/ServiceContainer';
import type { IRouter } from '../routes/Router';
import type { IRequest } from './Request';
import type { IResponse } from './Response';
import type { IMiddlewareStack, Middleware } from '../middleware/MiddlewareStack';
import type { IncomingMessage, ServerResponse } from '../node-singletons/http';
import type { ISchedule } from '../scheduler/types';
export interface IKernel {
    handle(req: IncomingMessage, res: ServerResponse): Promise<void>;
    handleRequest(req: IRequest, res: IResponse): Promise<void>;
    terminate(req: IRequest, res: IResponse): void;
    registerGlobalMiddleware(...middleware: Middleware[]): void;
    registerRouteMiddleware(name: string, middleware: Middleware): void;
    getRouter(): IRouter;
    getContainer(): IServiceContainer;
    getMiddlewareStack(): IMiddlewareStack;
    registerSchedule(schedule: ISchedule): void;
    startSchedules(): void;
    stopSchedules(): Promise<void>;
    runScheduleOnce(name: string): Promise<void>;
}
export declare const Kernel: Readonly<{
    create: (router: IRouter, container: IServiceContainer) => IKernel;
}>;
export default Kernel;
//# sourceMappingURL=Kernel.d.ts.map