/// <reference types="node" />
import { Route } from './interfaces/route';
import { SustainRequest } from './interfaces/sustain-request.interface';
import { Application } from './interfaces/application.interface';
import { Middleware } from './interfaces/middleware.interface';
import { StaticFolder } from './interfaces/static-folder.interface';
import { SustainExtension } from './interfaces/sustain-extension.interface';
import { ServerResponse, Server } from 'http';
export declare class SustainServer {
    requests: SustainRequest;
    config: Application;
    extensions: SustainExtension[];
    staticFolders: StaticFolder[];
    middleswares: Middleware[];
    loadedExtensions: SustainExtension[];
    server: Server;
    port: number;
    constructor(requests: SustainRequest, config: Application);
    loadInjectedExtension(extensions: SustainExtension[]): any[];
    nextifyMiddleware(middleware: any, request: any, responce: ServerResponse): Promise<unknown>;
    create(): void;
    generateOpenApiSchema(): void;
    handleControllerOutput(controllerOutput: Promise<any> | string | number | object, response: ServerResponse): Promise<void>;
    executeInterceptor(route: Route, request: any, response: ServerResponse): Promise<unknown[]>;
    setPoweredByHeader(response: ServerResponse): void;
}
