import { DeepPartial, HttpResponse } from '@refinitiv-data/common';
import { socketCreator, StreamLoginParams } from '../../delivery/stream/stream-connection.interface';
import { AbstractSession } from '../abstract/abstract-session';
import { ApiEndpoints, SessionDefinition, SessionRequestParams } from '../session.interface';
import { DesktopSessionParams } from './desktop-session-params.interface';
/**
 * Desktop sessions are used to connect applications to the data platform through the Workspace desktop application.
 */
export declare class DesktopSession extends AbstractSession {
    private sessionParams;
    /**
     * Creates a definition object for a desktop session.
     * @param appKey workspace application key, necessary to authenticate the specific application with the session
     * @return new instance of session definition
     */
    static Definition(appKey: string): SessionDefinition;
    /**
     * Creates a definition object for a desktop session.
     * @param params An object literal with properties necessary to create a definition of the desktop session
     * @return new instance of session definition
     */
    static Definition(params: DesktopSessionParams): SessionDefinition;
    get rdpUrlRoot(): string;
    private get defaultPort();
    private get baseUrl();
    private get udfUrlRoot();
    get tsiUrlRoot(): string;
    private get handshakeEndpoint();
    private get uuid();
    private port;
    private accessToken?;
    private tokenType?;
    private socketCreatorsMap;
    /**
     * This method is related to the endpoints overriding in the configuration file.
     * 'sessions' section in the config file contains different types of sessions,
     * and each session might have a specific block to override common endpoint(s)
     * api/url/path for this particular session.
     * Overridden endpoint has a higher priority then common one.
     *
     * An empty object is returned if there are no overridden endpoints
     */
    getOverriddenEndpoints(): DeepPartial<ApiEndpoints>;
    /**
     * Enable cookies support
     */
    protected get cookieJarSupport(): boolean;
    /**
     * Send a request in order to validate if proxy is running and appKey is valid
     */
    protected initialize(): Promise<void>;
    protected request<T>(sessionRequestParams: SessionRequestParams): Promise<HttpResponse<T>>;
    protected getSocketCreators(api: string, protocolName: string): Promise<socketCreator[]>;
    protected getStreamLoginParams(): StreamLoginParams;
    private prepareWebSocketCreators;
    private getStreamingDiscoveryEndpoint;
    /**
     *
     * @param api Name of streaming connection in the configuration file. ('streaming/pricing/main', 'streaming/trading-analytics/redi'...)
     * @param protocol websocket protocol
     */
    private requestWebSocketList;
    private emitAuthenticationSuccess;
    private emitAuthenticationFailed;
    protected checkPipeErrors(): Promise<void>;
}
