import { OperationArgs } from "../bridge/types";
import { MdfBridge } from "../bridge/mdf-bridge";
import { RequestConfig } from "../request-configs";
import { RequestId } from "./types/request-id";
import { BloombergEvent, EventMessageInner } from "./types";
import { UnsubscribeFunction } from "callback-registry";
import { TerminalSubscription } from "../bridge/types";
import { Logger } from "../logger/types";
import { BloombergSession } from "./../sessions/bloomberg-session";
export declare class SessionInstance {
    private readonly mdfBridge;
    private readonly sessionConfig;
    private readonly logger?;
    private readonly activeRequests;
    constructor(mdfBridge: MdfBridge, sessionConfig: BloombergSession, logger?: Logger | undefined);
    openRequest<TArgs>(requestId: RequestId, requestConfig: RequestConfig, operationArgs: OperationArgs<TArgs>, otherSettings: {
        [key: string]: any;
    }, onEvent: (event: BloombergEvent) => void, messageProcessor: (event: EventMessageInner) => Promise<void>, onSuccess: () => void, onFail: (error: Error) => void): void;
    openSubscriptionRequest(requestId: RequestId, config: RequestConfig, subscriptions: TerminalSubscription[], otherSettings: {
        [key: string]: any;
    }, onEvent: (event: BloombergEvent) => void, messageProcessor: (event: EventMessageInner) => Promise<void>, onSuccess: () => void, onFail: (error: Error) => void): void;
    onBloombergEvent(requestId: RequestId, callback: (event: BloombergEvent) => void): UnsubscribeFunction;
    closeRequest(requestId: string, onClosed: () => void): Promise<void>;
    disposeRequest(requestId: RequestId, reason: string): void;
    private dispose;
    private handleOpenSuccess;
    private handleOpenFail;
    private subscribeMdfEvents;
}
