export type Locale = 'vi' | 'en';
export interface FcmPayload {
    title: string;
    body: string;
    redirectUrl: string;
    icon?: string;
    badge?: string;
    action?: string;
}
export interface SendPushOptions {
    token: string;
    locale?: Locale;
    payload: FcmPayload;
}
export type NotificationType = 'revenue' | 'timekeeping';
export declare const NOTIFICATION_TEMPLATES: Record<Locale, Record<NotificationType, Pick<FcmPayload, 'title' | 'body' | 'redirectUrl'>>>;
export declare class FcmService {
    private readonly logger;
    constructor();
    sendPushNotification(options: SendPushOptions): Promise<boolean>;
    sendByTemplate(token: string, locale: string, type: NotificationType): Promise<boolean>;
    sendCustom(token: string, title: string, body: string, redirectUrl: string, options?: Partial<Pick<FcmPayload, 'icon' | 'badge' | 'action'>>): Promise<boolean>;
}
