// @ts-nocheck

import { Notification, NotificationTabConfig } from "../data/notification.model";

export declare class NotificationElement {
    /**
     * To open notification history panel
     */
    openHistoryPanel: () => void;

    /**
     * To close notification history panel
     */
    closeHistoryPanel: () => void;

    /**
     * To toggle notification history panel
     */
    toggleHistoryPanel: () => void;

    /**
     * To get notifications data
     */
    getNotificationsData: () => Observable<Notification[] | null>;

    /**
     * To set max days for notification history
     */
    setMaxDays: (days: number) => void;

    /**
     * To set tab configuration
     */
    setTabConfig: (tabConfig: NotificationTabConfig) => void;

    /**
     * To enable read notifications on for you tab
     */
    enableReadNotificationsOnForYouTab: () => void;

    /**
     * To disable read notifications on for you tab
     */
    disableReadNotificationsOnForYouTab: () => void;

    /**
     * To set all notifications as read
     */
    setAllNotificationsAsRead: (config?: { tabId: 'for-you' | 'all' | 'document' | 'people' }) => void;

    /**
     * To get unread notifications count
     */
    getUnreadNotificationsCount: () => Observable<{ forYou: number | null, all: number | null }>;

    /**
     * To mark notification as read by id
     */
    markNotificationAsReadById: (notificationId: string) => void;

    constructor();

    /**
     * To open notification history panel
     */
    private _openHistoryPanel;

    /**
     * To close notification history panel
     */
    private _closeHistoryPanel;

    /**
     * To toggle notification history panel
     */
    private _toggleHistoryPanel;

    /**
     * To get notifications data
     */
    private _getNotificationsData;

    /**
     * To set max days for notification history
     */
    private _setMaxDays;

    /**
     * To set tab configuration
     */
    private _setTabConfig;

    /**
     * To enable read notifications on for you tab
     */
    private _enableReadNotificationsOnForYouTab;

    /**
     * To disable read notifications on for you tab
     */
    private _disableReadNotificationsOnForYouTab;

    /**
     * To set all notifications as read
     */
    private _setAllNotificationsAsRead;

    /**
     * To get unread notifications count
     */
    private _getUnreadNotificationsCount;

    /**
     * To mark notification as read by id
     */
    private _markNotificationAsReadById;
}