import { MatrixEvent, Room, SyncState, SyncStateData } from "matrix-js-sdk/src/matrix";
declare class NotifierClass {
    private notifsByRoom;
    private pendingEncryptedEventIds;
    private toolbarHidden?;
    private isSyncing?;
    notificationMessageForEvent(ev: MatrixEvent): string | null;
    displayPopupNotification(ev: MatrixEvent, room: Room): void;
    getSoundForRoom(roomId: string): {
        url: string;
        name: string;
        type: string;
        size: string;
    } | null;
    playAudioNotification(ev: MatrixEvent, room: Room): Promise<void>;
    start(): void;
    stop(): void;
    supportsDesktopNotifications(): boolean;
    setEnabled(enable: boolean, callback?: () => void): void;
    isEnabled(): boolean;
    isPossible(): boolean;
    isBodyEnabled(): boolean;
    isAudioEnabled(): boolean;
    setPromptHidden(hidden: boolean, persistent?: boolean): void;
    shouldShowPrompt(): boolean;
    private isPromptHidden;
    onSyncStateChange: (state: SyncState, prevState: SyncState | null, data?: SyncStateData) => void;
    private onEvent;
    private onEventDecrypted;
    private onRoomReceipt;
    evaluateEvent(ev: MatrixEvent): void;
    /**
     * Some events require special handling such as showing in-app toasts
     */
    private performCustomEventHandling;
}
declare const _default: NotifierClass;
export default _default;
export declare const Notifier: NotifierClass;
