import { Request3DParams, ReturnRequest3D } from './types';
import RenderSettings from './RenderSettings';
import PlannerHandler3D from './PlannerHandler3D';
export default class Host3DSignalR {
    private renderSettings;
    private signalRConnection;
    private connectionStarted;
    private successfullyLoggedIn;
    private connectionErrorCount;
    private doIgnoreOnClosed;
    private sessionID;
    private divaMediaServiceSocketIO;
    private lastJoinDivaNr;
    private reconnectAfterError;
    private successfullyJoinedDivaNr;
    private plannerHandler3D;
    private reconnectingErrorCount;
    constructor(renderSettings: RenderSettings, plannerHandler3D: PlannerHandler3D);
    /**
     * This function is used to initialize the SignalR Connection.
     */
    initializeConnection(divaNr?: string): Promise<void>;
    private delay;
    joinDivaNr(divaNr: string): Promise<void>;
    getSuccessfullyJoinedToDivaNr(): boolean;
    getViewPointInfo(vpName: string, standardWhiteroom: string): Promise<any>;
    getConnectionReady(): boolean;
    getStaticRoomListInfo(staticRoomList: string[]): Promise<string>;
    request3D(params: Request3DParams): ReturnRequest3D;
    private create3DHostRequestOption;
    closeConnection(): void;
    /**
     * This function is called to login To the SignalR connection.
     * Make shure the connection is established yet
     */
    private login;
    /**
     * This function handels the join to a Diva Nr.
     * This function calls the method on the SignalR to join to the DivaNr
     * This function handles connection to the DivaMediaService
     * @param divaNr
     */
    private join;
    /**
     * This function initializes the Connection to the diva Media Service.
     * It is called when The webClient joints to a new DivaNr
     */
    private openSocketToMediaService;
    /**
     * This function is called to handle Connection Errors
     * @param error
     * @param callback
     */
    private handleConnectionError;
    /**
     * Returns true when the SignalR connection is ready and the client is successfully logged in.
     */
    private connectionIsReady;
    /**
     * This function is called when a client asks for a rendering (Only update viewpoint) but no awailable render client has loaded the rendering
     * @param hash  The hash value of the requested planning
     * @param size  The size of the requested rendering
     * @param BG    The Background Info used for this rendering
     */
    noRenderClientFound: (hash: string, size: string, option: string) => void;
    returnVPInfo: (msg: string) => void;
    /**
     * This function is called when a new Rendering is found.
     * @param divaNr    The divaNr of the rendering
     * @param hash      The unique identifier of the rendering
     * @param uiPolygon     The UIPolygon that holds additional information like the bounding box or camera position.
     */
    newRendering: (divaNr: string, hash: string, uiPolygon: string) => void;
    /**
     * This function is called when a new HqRenderscript is found.
     * @param divaNr    The divaNr of the rendering
     * @param hash      The unique identifier of the rendering
     * @param hqRenderScript     The HqRenderscript
     */
    newHQRenderScript: (divaNr: string, hash: string, hqRenderScript: string) => void;
    /**
     * This function is called when a new Layer mask is rendered
     * @param divaNr    The divaNr the layer mask belongs too
     * @param hash      The hash value (unique identifier) of the associated rendering
     */
    newRenderingLayerMask: (divaNr: string, hash: string) => void;
    /**
     * This function is called from the host when the used sessionID is not valid anymore. In this case the client is not successfully logged in anymore.
     * @param hub
     * @param msg
     */
    private unvalidSessionID;
}
//# sourceMappingURL=Host3DSignalR.d.ts.map