import { AndroidActivityNewIntentEventData } from '@nativescript/core';
import { IMessagingCore } from '.';
import { AuthorizationStatus } from './common';
export declare class MessagingCore implements IMessagingCore {
    _native: com.google.firebase.messaging.FirebaseMessaging;
    _onMessageCallback?: any;
    _onMessage(message: any, nativeMessage: com.google.firebase.messaging.RemoteMessage): void;
    _onNotificationTapCallback?: any;
    _onNotificationTap(message: any): void;
    _onTokenCallback?: any;
    _onToken(token: string): void;
    showNotificationsWhenInForeground: boolean;
    static _onResumeQueue: any[];
    static _messageQueues: {
        _onMessage: any[];
        _onNativeMessage: any[];
        _onNotificationTap: any[];
        _onToken: any[];
    };
    static addToResumeQueue(callback: () => void): void;
    static _inForeground: boolean;
    static _appDidLaunch: boolean;
    static onIntent?: (intent: android.content.Intent) => void;
    static get inForeground(): boolean;
    static get appDidLaunch(): boolean;
    static set appDidLaunch(value: boolean);
    constructor();
    static getInstance(): MessagingCore;
    get native(): com.google.firebase.messaging.FirebaseMessaging;
    _newIntentCallback(args: AndroidActivityNewIntentEventData): void;
    getCurrentToken(): Promise<string>;
    hasPermission(): Promise<AuthorizationStatus>;
    addOnMessage(listener: (message: any) => any): void;
    removeOnMessage(listener: (message: 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?: any): Promise<AuthorizationStatus>;
    unregisterDeviceForRemoteMessages(): Promise<void>;
    get isDeviceRegisteredForRemoteMessages(): boolean;
    private _triggerPendingCallbacks;
}
export { AuthorizationStatus } from './common';
