import { HttpAppSettings } from "./settings/HttpAppSettings";
import { HttpAppHandler } from "./routes/HttpAppHandler";
import { UploadFileHandler } from "./routes/UploadFileHandler";
import { ClusterHandler } from "./routes/ClusterHandler";
import { Express } from "express";
import { ApiMiddleware } from "./middleware/ApiMiddleware";
import { UploadFileMiddleware } from "./middleware/UploadFileMiddleware";
import { GNServer } from "./../GNServer";
import { UploadFileSettings } from "./settings/UploadFileSettings";
import { AntiDdosMiddleware } from "./middleware/AntiDdosMiddleware";
import { SocketAppSettings } from "./settings/SocketAppSettings";
import { ApplicationSettings } from "./settings/ApplicationSettings";
import { LogSettings } from "./settings/LogSettings";
import { ClusterSettings } from "./settings/ClusterSettings";
export declare class HttpApp {
    private applicationSettings;
    private uploadFileSettings;
    private appSettings;
    private socketAppSettings;
    private clusterSettings;
    private app;
    private httpAppHandler;
    private uploadFileHandler;
    private clusterHandler;
    private antiDdosMiddleware;
    private logSettings;
    private apiMiddleware;
    private uploadFileMiddleware;
    private gnServer;
    private sessionId;
    /**
     * Sets the app.
     * @param app Provides the app value used by this operation.
     */
    setApp(app: Express): void;
    /**
     * Returns the app.
     * @returns Returns the app.
     */
    getApp(): Express;
    /**
     * Returns the HTTP app handler.
     * @returns Returns the HTTP app handler.
     */
    getHttpAppHandler(): HttpAppHandler;
    /**
     * Returns the upload file handler.
     * @returns Returns the upload file handler.
     */
    getUploadFileHandler(): UploadFileHandler;
    /**
     * Returns the cluster handler.
     * @returns Returns the cluster handler.
     */
    getClusterHandler(): ClusterHandler;
    /**
     * Sets the API middleware.
     * @param apiMiddleware Provides the API middleware value used by this operation.
     */
    setApiMiddleware(apiMiddleware: ApiMiddleware): void;
    /**
     * Sets the upload file middleware.
     * @param uploadFileMiddleware Provides the upload file middleware value used by this operation.
     */
    setUploadFileMiddleware(uploadFileMiddleware: UploadFileMiddleware): void;
    /**
     * Sets the application settings.
     * @param applicationSettings Provides the application settings value used by this operation.
     */
    setApplicationSettings(applicationSettings: ApplicationSettings): void;
    /**
     * Sets the app settings.
     * @param appSettings Provides the app settings value used by this operation.
     */
    setAppSettings(appSettings: HttpAppSettings): void;
    /**
     * Sets the socket app settings.
     * @param socketAppSettings Provides the socket app settings value used by this operation.
     */
    setSocketAppSettings(socketAppSettings: SocketAppSettings): void;
    /**
     * Sets the cluster settings.
     * @param clusterSettings Provides the cluster settings value used by this operation.
     */
    setClusterSettings(clusterSettings: ClusterSettings): void;
    /**
     * Sets the upload file settings.
     * @param uploadFileSettings Provides the upload file settings value used by this operation.
     */
    setUploadFileSettings(uploadFileSettings: UploadFileSettings): void;
    /**
     * Sets the GearN server.
     * @param gnServer Provides the GearN server value used by this operation.
     */
    setGNServer(gnServer: GNServer): void;
    /**
     * Sets the session ID.
     * @param sessionId Provides the session ID value used by this operation.
     */
    setSessionId(sessionId: string): void;
    /**
     * Sets the anti DDoS middleware.
     * @param antiDdosMiddleware Provides the anti DDoS middleware value used by this operation.
     */
    setAntiDdosMiddleware(antiDdosMiddleware: AntiDdosMiddleware): void;
    /**
     * Sets the log settings.
     * @param logSettings Provides the log settings value used by this operation.
     */
    setLogSettings(logSettings: LogSettings): void;
    /**
     * Runs the current workflow.
     */
    run(): void;
    /**
     * Initializes a new HTTP app instance.
     */
    constructor();
}
