import { IPushNotificationService, OnSendNotificationError, OnSendNotificationSuccess } from "./IPushNotificationService";
export declare class PushNotificationService implements IPushNotificationService {
    private isInit;
    private projectId;
    private clientEmail;
    private privateKey;
    private messaging;
    private needSetup;
    init(projectId: string, clientEmail: string, privateKey: string): void;
    run(): Promise<void>;
    sendNotification(token: string, title: string, body: string, badge?: number, sound?: string, icon?: string, data?: {
        [k: string]: any;
    }, onSendNotificationSuccess?: OnSendNotificationSuccess, onSendNotificationError?: OnSendNotificationError): Promise<void>;
    sendNotificationToMore(tokens: string[], title: string, body: string, badge?: number, sound?: string, icon?: string, data?: {
        [k: string]: any;
    }, onSendNotificationSuccess?: OnSendNotificationSuccess, onSendNotificationError?: OnSendNotificationError): Promise<string>;
    sendNotificationToTopic(topic: string, title: string, body: string, badge?: number, sound?: string, icon?: string, data?: {
        [k: string]: any;
    }, onSendNotificationSuccess?: OnSendNotificationSuccess, onSendNotificationError?: OnSendNotificationError): Promise<void>;
    subscribeToTopic(tokens: string[], topic: string, onSendNotificationSuccess?: OnSendNotificationSuccess, onSendNotificationError?: OnSendNotificationError): Promise<void>;
    unsubscribeFromTopic(tokens: string[], topic: string, onSendNotificationSuccess?: OnSendNotificationSuccess, onSendNotificationError?: OnSendNotificationError): Promise<void>;
}
