import { EventMessageInner, SubscriptionRequest } from "./types";
import { RequestConfig } from "../request-configs";
import { SubscriptionInner } from "./types/subscription";
import { SessionsManager } from "./../sessions/sessions-manager";
/**
 * Represents the lifecycle of a subscription request.
 */
export declare class SubscriptionRequestImpl<TData> {
    private readonly sessionManager;
    private readonly config;
    private subscriptions;
    private readonly subscriptionDataHandler;
    private readonly registry;
    private requestId;
    private _status;
    private readonly subscriptionsByInternalIdMap;
    private sessionInstance;
    constructor(sessionManager: SessionsManager, config: RequestConfig, subscriptions: Array<SubscriptionInner>, subscriptionDataHandler: (event: EventMessageInner<any>) => Map<string, any>);
    /**
     * Public api.
     */
    get api(): SubscriptionRequest<TData>;
    private open;
    private close;
    private processEventMessage;
    private processSubscriptionData;
    private processSubscriptionErrors;
    private raiseSubscriptionErrors;
    private requestOpened;
    private requestActivated;
    private requestClosed;
    private requestFailed;
    private raiseStatusChanged;
    private reset;
}
