import { AuthorizationStatus } from './common';
export declare class KlaviyoPush {
    private static _instance;
    private static _onToken;
    private static _onMessage;
    private static _onNonKlaviyoMessageListener;
    private static _onKlaviyoCustomDataMessage;
    onToken?: (token: string) => void;
    onMessage?: (message: any, nativeMessage: any) => void;
    onNonKlaviyoMessageListener?: (message: any) => void;
    onKlaviyoCustomDataMessage?: (data: Record<any, any>, message: any) => void;
    showNotificationsWhenInForeground: boolean;
    getCurrentToken(): Promise<string>;
    hasPermission(): Promise<AuthorizationStatus>;
    registerDeviceForRemoteMessages(): Promise<void>;
    requestPermission(permissions?: any): Promise<AuthorizationStatus>;
    unregisterDeviceForRemoteMessages(): Promise<void>;
    get isDeviceRegisteredForRemoteMessages(): boolean;
    static getInstance(): KlaviyoPush;
}
export { AuthorizationStatus } from './common';
