import { Dacs, HttpCode, HttpHeaders, HttpMethod } from '@refinitiv-data/common';
import { Schema } from 'convict';
import { RootLogger } from 'loglevel';
import WebSocket from 'ws';
import { SessionNamespace } from '../session';
import { FundamentalAndReferenceNamespace, HistoricalPricingNamespace, IPANamespace, NewsNamespace, PricingNamespace, SearchNamespace, SymbolConversionNamespace } from '../content';
import { AbstractStateManager, StateEvent, StateNamespace } from '../state';
import { CountryCode, ErrorMessages, ExecutionContainer, RdpAuthParams, TransportType } from '../constants';
import { ConfigSchema, LibraryConfig, StreamingType } from '../config';
import { WebSocketUrlBuilder, Environment } from '../util';
import { HttpClientImpl, HttpClientRequestConfig } from '../http-client';
import { LoggerWrapper } from '../logger';
import { StreamLoginParams, socketCreator, DeliveryNamespace } from '../delivery';
import { PlatformSession } from '../session/platform/platform-session';
import { SessionRequestParams } from '../session/session.interface';
export interface RefinitivDataLibrary {
    APP_DEFAULT_SCOPE: string;
    ASSET_ID: number;
    AbstractStateManager: AbstractStateManager;
    CountryCode: CountryCode;
    DEFAULT_CONFIG_SCHEMA: Schema<ConfigSchema>;
    Delivery: DeliveryNamespace;
    EIKON_DESKTOP_DETECTOR_REGEX: string;
    Environment: Environment;
    ErrorMessages: ErrorMessages;
    ExecutionContainer: ExecutionContainer;
    FundamentalAndReference: FundamentalAndReferenceNamespace;
    HistoricalPricing: HistoricalPricingNamespace;
    HttpClientImpl: HttpClientImpl;
    HttpCode: HttpCode;
    HttpMethod: HttpMethod;
    IPA: IPANamespace;
    LibraryConfig: LibraryConfig;
    LoggerWrapper: LoggerWrapper;
    News: NewsNamespace;
    Platform: PlatformSession;
    Pricing: PricingNamespace;
    RDP_ENDPOINT_ROOT: string;
    RTK_DETECTOR_OBJECT: string;
    RW_DESKTOP_DETECTOR_REGEX: string;
    RW_REQUEST_PREFIX: string;
    STREAM_FIRST_REQUEST_ID: number;
    SXS_WEB_DETECTOR_OBJECT: string;
    Search: SearchNamespace;
    Session: SessionNamespace;
    State: StateNamespace;
    StateEvent: typeof StateEvent;
    StreamingType: StreamingType;
    SymbolConversion: SymbolConversionNamespace;
    TIMEOUT_CONFIG_PATH: string;
    TransportType: TransportType;
    UDF_ENDPOINT_ROOT: string;
    WORKSPACE_SDK_DETECTOR_OBJECT: string;
    WebSocketUrlBuilderImpl: WebSocketUrlBuilder;
    buildLocalSessionLoginData: (dacs: Dacs) => StreamLoginParams;
    buildRdpSessionLoginData: (params: RdpAuthParams) => StreamLoginParams;
    commaRequestParamsSerializer: (params: any) => string;
    config: LibraryConfig;
    dataSession: SessionNamespace;
    delay: (timeout: number) => Promise<void>;
    detectContainer: () => Promise<ExecutionContainer>;
    detectEnvironment: () => Environment;
    formatTime: (seconds: number) => string;
    getPosition: () => string;
    isSessionInstance: (obj: any) => boolean;
    logger: RootLogger;
    mergeRequestParams: (baseURL: string, requestParams: SessionRequestParams, headers?: HttpHeaders, paramsSerializer?: (params: any) => string) => HttpClientRequestConfig;
    prepareSocketCreator: (wsEndpoint: string, protocol: string, options?: WebSocket.ClientOptions) => socketCreator;
    repeatRequestParamsSerializer: (params: any) => string;
    validateRequired: <T>(params: T, requiredFields: Array<keyof T>, instanceName: string) => void;
}
