import { MdfBridge } from "../bridge/mdf-bridge";
import { SessionSettings } from "./types/session-settings";
import { Session } from "./types/session";
import { BloombergSession } from "./types";
import { Logger } from "./../logger/types";
import { SessionInstance } from "../core/session-instance";
export declare class SessionsManager {
    private readonly mdfBridge;
    private readonly apiId;
    private readonly libConfigSettings;
    private readonly logger?;
    private readonly sessionInstanceByName;
    private readonly libConfigSessionOptions;
    private readonly libConfigIdentityOptions;
    private readonly dataRequestsSessionImpl;
    private readonly largeHistoricalRequestsSessionImpl;
    private readonly subscriptionsSession;
    constructor(mdfBridge: MdfBridge, apiId: string, libConfigSettings: SessionSettings | undefined, logger?: Logger | undefined);
    get all(): string[];
    createSession(settings?: SessionSettings): Promise<BloombergSession>;
    closeSession(sessionName: string): Promise<void>;
    getNonSubscriptionReqSessionInstance(providedSession?: Session | BloombergSession | undefined): SessionInstance;
    getSubscriptionReqSessionInstance(providedSession?: Session | BloombergSession | undefined): SessionInstance;
    private getSessionInstance;
    /**
     * Creates a session config. Unless lifetime is provided in settings then it is set to "Owned".
     */
    private configureBloombergSession;
    private decorateSessionName;
}
