import { DeepPartial, HttpResponse } from '@refinitiv-data/common';
import { socketCreator, StreamLoginParams } from '../../delivery/stream/stream-connection.interface';
import { AbstractSession } from '../abstract/abstract-session';
import { ApiEndpoints, Session, SessionDefinition, SessionRequestParams } from '../session.interface';
import { ContainerSessionParams } from './container-session-params.interface';
/**
 * Container sessions are generally used by apps that run within the Workspace application or in the same browser as the Workspace for Web.
 */
export declare class ContainerSession extends AbstractSession implements Session {
    private sessionParams;
    /**
     * Creates a definition object for a container 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 container 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: string | ContainerSessionParams): SessionDefinition;
    rdpUrlRoot: string;
    private transportStrategy?;
    private checkPipePromise?;
    private pipeState;
    getOverriddenEndpoints(): DeepPartial<ApiEndpoints>;
    protected get cookieJarSupport(): boolean;
    protected getSocketCreators(api: string, protocol: string): Promise<socketCreator[]>;
    protected getStreamLoginParams(): StreamLoginParams;
    protected request<T>(requestParams: SessionRequestParams): Promise<HttpResponse<T>>;
    protected initialize(): Promise<void>;
    protected cleanUp(): Promise<void>;
    private getAuthParams;
    private createTransport;
    private checkPipeAvailableAndSwitch;
    private waitMaxFor;
    private doSwitch;
    private switchToPipe;
    protected checkPipeErrors(): Promise<void>;
}
