/*! * Convert JS SDK * Version 1.0.0 * Copyright(c) 2020 Convert Insights, Inc * License Apache-2.0 */ import { ApiManagerInterface } from './interfaces/api-manager'; import { Config, ConfigResponseData, VisitorSegments, Path, VisitorTrackingEvents } from '../../types'; import { LogManagerInterface } from '../../logger'; import { EventManagerInterface } from '../../event'; import { HttpResponse } from '../../utils'; /** * Provides logic for network requests. Reads remote configuration and sends tracking events to Convert server. * @category Modules * @constructor * @implements {ApiManagerInterface} */ export declare class ApiManager implements ApiManagerInterface { private _requestsQueue; private _requestsQueueTimerID; private readonly _configEndpoint; private readonly _trackEndpoint; private _defaultHeaders; private _data; private _enrichData; private _environment; private _loggerManager; private _eventManager; private _sdkKey; private _accountId; private _projectId; private _trackingEvent; private _trackingEnabled; private _trackingSource; private _cacheLevel; private _mapper; readonly batchSize: number; readonly releaseInterval: number; /** * @param {Config=} config * @param {Object=} dependencies * @param {EventManagerInterface=} dependencies.eventManager * @param {LogManagerInterface=} dependencies.loggerManager */ constructor(config?: Config, { eventManager, loggerManager }?: { eventManager?: EventManagerInterface; loggerManager?: LogManagerInterface; }); /** * Send request to api server * @param method * @param path * @param data * @param headers * @return {Promise} */ request(method: string, path: Path, data?: Record, headers?: Record): Promise; /** * Add request to queue for sending to server * @param {string} visitorId * @param {VisitorTrackingEvents} eventRequest * @param {VisitorSegments} segments */ enqueue(visitorId: string, eventRequest: VisitorTrackingEvents, segments?: VisitorSegments): void; /** * Send queue to server * @param {string=} reason * @return {Promise} */ releaseQueue(reason?: string): Promise; /** * Stop queue timer */ stopQueue(): void; /** * Start queue timer */ startQueue(): void; /** * Enable tracking */ enableTracking(): void; /** * Disable tracking */ disableTracking(): void; /** * Set data */ setData(data: ConfigResponseData): void; /** * Get config data * @return {Promise} */ getConfig(): Promise; }