import { NotificationsConfig } from "../components/notifications/types";
import { NotificationServiceState, IFilter, IMuteFilter, INotification, INotificationHistoryOptions } from "../../platform/services/notification/types";
import { MonitorInfoDetail } from "../../FEA";
type NotificationUIStatePublish = (state: NotificationServiceState) => void;
/**
 * Thin wrapper around usePubSub to give us typesafety for the notification service's UI state.
 * Automatically appends this client's windowName which is used by the notification service to
 * display the notification center on an appropriate monitor.
 */
export declare const useNotificationUI: () => [state: NotificationServiceState, setState: NotificationUIStatePublish];
export declare const getToolbarMonitor: () => Promise<MonitorInfoDetail | undefined>;
export declare const moveToToolbarMonitor: () => Promise<void>;
export declare const getOS: () => "Windows" | "Linux" | "Mac" | undefined;
/**
 * Example for setting up button clicks
 *
 * @param notification
 * @param action
 */
export declare const doAction: (notification: INotification, action: any) => void;
/**
 * Example for setting up button clicks
 *
 * @param filter
 */
export declare const mute: (filter: IMuteFilter) => Promise<void>;
/**
 * Example for setting up button clicks
 *
 * @param filter
 */
export declare const unmute: (filter: IMuteFilter) => Promise<void>;
/**
 * Snooze a notification
 *
 * @param {INotification[]} notifications
 */
export declare const snoozeNotifications: (notifications: INotification[]) => Promise<void>;
/**
 * Marks a notification as read
 *
 * @param {INotification[]} notifications
 */
export declare const markNotificationsUnread: (notifications: INotification[]) => void;
/**
 * Marks a notification as read
 *
 * @param {INotification[]} notifications
 */
export declare const markNotificationsRead: (notifications: INotification[]) => void;
/**
 * Dismisses a notification
 *
 * @param {INotification[]} notifications
 */
export declare const deleteNotifications: (notifications: INotification[]) => void;
export declare const initializeCenterToggle: () => {
    toggleCenter: () => void;
};
/**
 * Get Notification's config from
 */
export declare const getNotificationConfig: () => NotificationsConfig;
export declare const getFetchHistoryParams: (config: any, params: any) => any[];
export default function useNotifications(params?: any): {
    activeNotifications: (notifications: INotification[], applyMuteFilterOverride?: boolean | undefined) => INotification[];
    addNotification: (notification: INotification) => void;
    notificationIsActive: (notification: INotification, applyMuteFilterOverride?: boolean | undefined) => boolean;
    getNotificationHistory: (since?: INotificationHistoryOptions, filter?: null | IFilter) => Promise<INotification[]>;
    groupNotificationsByType: (notifications: INotification[]) => {
        [x: string]: any;
    };
    notifications: any[];
    removeNotification: (notification: INotification) => void;
};
export {};
//# sourceMappingURL=useNotifications.d.ts.map