import { Logger } from "../common/Logger";
export {};
import { DataStoreType } from "./config";
declare class Options {
    _logger: Logger;
    _options: any;
    _hasCredentials: any;
    _hasApplication: any;
    _httpOptions: any;
    _xmppOptions: any;
    _s2sOptions: any;
    _restOptions: any;
    _proxyoptions: any;
    _imOptions: any;
    _applicationOptions: any;
    _withXMPP: any;
    _withS2S: any;
    _CLIMode: any;
    _servicesToStart: any;
    private _testOutdatedVersion;
    private _testDNSentry;
    private _autoReconnectIgnoreErrors;
    private _httpoverxmppserver;
    private _concurrentRequests;
    private _intervalBetweenCleanMemoryCache;
    private _requestsRate;
    private _configIniData;
    constructor(_options: any, _logger: Logger);
    parse(): void;
    get testOutdatedVersion(): boolean;
    set testOutdatedVersion(value: boolean);
    get testDNSentry(): boolean;
    set testDNSentry(value: boolean);
    get autoReconnectIgnoreErrors(): boolean;
    set autoReconnectIgnoreErrors(value: boolean);
    get testhttpoverxmppserver(): boolean;
    set testhttpoverxmppserver(value: boolean);
    get intervalBetweenCleanMemoryCache(): number;
    set intervalBetweenCleanMemoryCache(value: number);
    get servicesToStart(): any;
    get httpOptions(): any;
    get xmppOptions(): any;
    get s2sOptions(): any;
    get restOptions(): any;
    get proxyOptions(): any;
    get imOptions(): any;
    get applicationOptions(): any;
    get hasCredentials(): any;
    get hasApplication(): any;
    get useXMPP(): any;
    get useS2S(): any;
    get useCLIMode(): any;
    get credentials(): any;
    get concurrentRequests(): number;
    get requestsRate(): {
        "useRequestRateLimiter": number;
        "maxReqByIntervalForRequestRate": number;
        "intervalForRequestRate": number;
        "timeoutRequestForRequestRate": number;
    };
    _gettestOutdatedVersion(): boolean;
    _gettestDNSentry(): boolean;
    _getautoReconnectIgnoreErrors(): boolean;
    _gethttpoverxmppserver(): boolean;
    _getintervalBetweenCleanMemoryCache(): any;
    _getservicesToStart(): {};
    _isOfficialRainbow(): boolean;
    _getHTTPOptions(): {
        host: string;
        port: string;
        protocol: string;
    };
    _getXMPPOptions(): {
        host: string;
        port: string;
        protocol: string;
        timeBetweenXmppRequests: string;
        raiseLowLevelXmppInEvent: boolean;
        raiseLowLevelXmppOutReq: boolean;
        maxIdleTimer: number;
        maxPingAnswerTimer: number;
        xmppRessourceName: any;
        maxPendingAsyncLockXmppQueue: number;
        stanzaMaxLength: number;
    };
    _getS2SOptions(): {
        hostCallback: string;
        locallistenningport: string;
        expressEngine: any;
    };
    _getRESTOptions(): {
        useRestAtStartup: boolean;
        useGotLibForHttp: boolean;
        gotOptions: {
            agentOptions: {
                keepAlive: boolean;
                keepAliveMsecs: number;
                maxSockets: number;
                maxTotalSockets: number;
                maxFreeSockets: number;
                timeout: number;
                rejectUnauthorized: boolean;
            };
            gotRequestOptions: {
                timeout: {
                    lookup: number;
                    connect: number;
                    secureConnect: number;
                    socket: number;
                    send: number;
                    response: number;
                };
            };
        };
    };
    _getModeOption(): string;
    _getRequestsRateOption(): {
        useRequestRateLimiter: boolean;
        maxReqByIntervalForRequestRate: number;
        intervalForRequestRate: number;
        timeoutRequestForRequestRate: number;
    };
    _getProxyOptions(): {
        protocol: string;
        host: string;
        port: number;
        user: any;
        password: any;
        secureProtocol: any;
    };
    _getIMOptions(): {
        sendReadReceipt: boolean;
        messageMaxLength: number;
        sendMessageToConnectedUser: boolean;
        conversationsRetrievedFormat: string;
        storeMessages: boolean;
        copyMessage: boolean;
        nbMaxConversations: number;
        rateLimitPerHour: number;
        messagesDataStore: DataStoreType;
        autoInitialGetBubbles: boolean;
        autoInitialBubblePresence: boolean;
        maxBubbleJoinInProgress: number;
        autoInitialBubbleFormat: string;
        autoInitialBubbleUnsubscribed: boolean;
        autoLoadConversations: boolean;
        autoLoadConversationHistory: boolean;
        autoLoadContacts: boolean;
        autoInitialLoadContactsInfoBulk: boolean;
        autoLoadCallLog: boolean;
        forceHistoryGetContactFromServer: boolean;
        enableCarbon: boolean;
        enablesendurgentpushmessages: boolean;
        useMessageEditionAndDeletionV2: boolean;
        storeMessagesInConversation: boolean;
        maxMessagesStoredInConversation: number;
    };
    _getApplicationsOptions(): {
        appID: string;
        appSecret: string;
    };
}
export { Options };
