import { IMessagingCore, Permissions } from '.';
import { AuthorizationStatus } from './common';
export declare class MessagingCore implements IMessagingCore {
    _APNSToken: any;
    _onMessage(message: any, remoteMessage: UNNotificationResponse, completionHandler: () => void): void;
    _onToken(token: string): void;
    _onNotificationTap(message: any, remoteMessage: UNNotificationResponse, completionHandler: () => void): void;
    static _onResumeQueue: any[];
    static _messageQueues: {
        _onMessage: any[];
        _onNotificationTap: any[];
        _onNativeNotificationTap: any[];
        _onToken: any[];
    };
    static addToResumeQueue(callback: () => void): void;
    static _inForeground: boolean;
    static _appDidLaunch: boolean;
    static get inForeground(): boolean;
    static get appDidLaunch(): boolean;
    constructor();
    static getInstance(): MessagingCore;
    get showNotificationsWhenInForeground(): boolean;
    set showNotificationsWhenInForeground(value: boolean);
    private _getTokenQeueue;
    getCurrentToken(): Promise<string>;
    getAPNSToken(): any;
    _hasPermission(resolve: any, reject: any): void;
    hasPermission(): Promise<AuthorizationStatus>;
    addOnMessage(listener: (message: any, nativeMessage?: any) => any): void;
    removeOnMessage(listener: (message: any, nativeMessage?: any) => any): boolean;
    addOnToken(listener: (token: string) => any): void;
    removeOnToken(listener: (token: string) => any): boolean;
    addOnNotificationTap(listener: (message: any) => any): void;
    removeOnNotificationTap(listener: (message: any) => any): boolean;
    registerDeviceForRemoteMessages(): Promise<void>;
    requestPermission(permissions?: Permissions): Promise<AuthorizationStatus>;
    unregisterDeviceForRemoteMessages(): Promise<void>;
    get isDeviceRegisteredForRemoteMessages(): boolean;
    private _triggerPendingCallbacks;
}
export { AuthorizationStatus } from './common';
