import { type SetPurchaseAttributes } from './Api.types';
import { type EventBus } from '../../core/modules/EventBus';
import { ApiClient } from '../ApiClient/ApiClient';
import { type IMapRequest, type IMapResponse } from '../ApiClient/ApiClient.types';
import { Data } from '../Data/Data';
export declare class Api {
    private readonly data;
    private readonly apiClient;
    private readonly eventBus;
    constructor(eventBus: EventBus, data?: Data, apiClient?: ApiClient);
    checkDevice(): Promise<IMapResponse['checkDevice']>;
    checkDeviceSubscribeForPushNotifications(useCache?: boolean): Promise<boolean>;
    getConfig(features: string[]): Promise<IMapResponse['getConfig']>;
    applicationOpen(): Promise<IMapResponse['applicationOpen']>;
    registerDevice(): Promise<IMapResponse['registerDevice']>;
    unregisterDevice(): Promise<IMapResponse['unregisterDevice']>;
    deleteDevice(): Promise<IMapResponse['deleteDevice']>;
    messageDeliveryEvent(hash: string, isTrackingLogOnFailure?: boolean, metaData?: {
        [key: string]: any;
    }): Promise<IMapResponse['messageDeliveryEvent']>;
    pushStat(hash: string, isTrackingLogOnFailure?: boolean, metaData?: {
        [key: string]: any;
    }): Promise<IMapResponse['pushStat']>;
    setTags(tags: {
        [key: string]: any;
    }): Promise<IMapResponse['setTags']>;
    getTags(): Promise<IMapResponse['getTags']>;
    registerUser(userId: string | number): Promise<IMapResponse['registerUser']>;
    registerEmail(email: string, params?: IMapRequest['registerEmail']): Promise<IMapResponse['registerEmail']>;
    postEvent(event: string, attributes: {
        [key: string]: any;
    }): Promise<IMapResponse['postEvent']>;
    getInboxMessages(count?: number): Promise<IMapResponse['getInboxMessages']>;
    inboxStatus(order: string, status: number): Promise<IMapResponse['inboxStatus']>;
    pageVisit(config: {
        title: string;
        url_path: string;
        url: string;
    }): Promise<IMapResponse['pageVisit']>;
    setPurchase(attributes: SetPurchaseAttributes): Promise<IMapResponse['setPurchase']>;
    getParams(): Promise<any>;
    private getRequestParams;
}
