import * as pluginsTyped from './smartsocket.pluginstyped.js';
import { Smartsocket } from './smartsocket.classes.smartsocket.js';
/**
 * class socketServer
 * handles the attachment of socketIo to whatever server is in play
 */
export declare class SocketServer {
    private smartsocket;
    private httpServerDeferred;
    private httpServer;
    /**
     * wether httpServer is standalone
     */
    private standaloneServer;
    constructor(smartSocketInstance: Smartsocket);
    /**
     * starts the server with another server
     * also works with an express style server
     */
    setExternalServer(serverType: 'smartexpress', serverArg: pluginsTyped.typedserver.servertools.Server): Promise<void>;
    /**
     * gets the server for socket.io
     */
    getServerForSocketIo(): Promise<pluginsTyped.http.Server<typeof pluginsTyped.http.IncomingMessage, typeof pluginsTyped.http.ServerResponse> | pluginsTyped.https.Server<typeof pluginsTyped.http.IncomingMessage, typeof pluginsTyped.http.ServerResponse>>;
    /**
     * starts listening to incoming sockets:
     */
    start(): Promise<void>;
    /**
     * closes the server
     */
    stop(): Promise<void>;
}
