import { MessagePayload } from 'firebase/messaging';
/**
 * requestNotificationPermission()
 * Requests permission from the user to display notifications.
 * @returns boolean indicating if permission was granted.
 */
export declare function requestNotificationPermission(): Promise<boolean>;
interface FcmRegistrationOptions {
    vapidPublicKey?: string;
    serviceWorkerPath?: string;
    serviceWorkerScope?: string;
    firebaseConfig?: any;
    debug?: boolean;
}
/**
 * getFCMToken()
 * Obtains the FCM registration token for the current device/browser.
 * @param options - VAPID key and service worker settings.
 * @returns The FCM token or null if failed.
 */
export declare function getFCMToken(options?: FcmRegistrationOptions): Promise<string | null>;
/**
 * initPushNotifications()
 * Orchestrates the full push initialization flow.
 * @returns The FCM token if successful, or null.
 */
export declare function initPushNotifications(options?: FcmRegistrationOptions): Promise<string | null>;
/**
 * listenForForegroundMessages()
 * Subscribes to FCM messages while the app is in the foreground.
 * Returns an unsubscribe function.
 */
export declare function listenForForegroundMessages(handler: (payload: MessagePayload) => void, firebaseConfig?: any): () => void;
export {};
