/// <reference types="node" />
import { Applet } from '../../domain';
import * as http from 'http';
/**
 * Abstract class, provide basic HTTP behaviours
 */
export declare abstract class HTTPApplet implements Applet {
    type: string;
    server: http.Server;
    constructor();
    /**
     * Implement Applet.start(), it will create a server and listening on the port ( given by this.getPort() )
     * @returns {Promise<any>}
     */
    start(): Promise<any>;
    /**
     * Implement Applet.stop(), it will close the server
     * @returns {Promise<any>}
     */
    stop(): Promise<any>;
    /**
     * A abstract method, to create a http.Server
     * @returns {"http".Server}
     */
    abstract createServer(): http.Server;
    /**
     * Get which port should listening on
     * @returns {number}
     */
    getPort(): number;
}
