/// <reference types="node" />
import * as express from 'express';
import * as http from 'http';
import * as subscriptionServer from 'subscriptions-transport-ws';
import * as Query from '../Modules/Query';
export declare class Server {
    protected app: express.Express;
    protected server: http.Server;
    protected websocketServer: http.Server;
    protected subscriptionManager: Query.SubscriptionManager;
    protected subscriptionsServer: subscriptionServer.SubscriptionServer;
    start(): Promise<void>;
    stop(): Promise<void>;
    protected init(): void;
    protected setBasic(): void;
    protected setHelmet(): void;
    protected setStatic(): void;
    protected setLogger(): void;
    protected setSubscription(): void;
    protected setLogError(): void;
    protected setRender(): void;
    protected setFileUpload(): void;
    protected setWebHook(): void;
    protected initGraphQL(): void;
    protected setGraphQL(): Promise<void>;
    makeSubscriptionServer(websocketServer: http.Server): subscriptionServer.SubscriptionServer;
    protected run(): Promise<void>;
}
