import { SpacingSettings, Guid, MultilingualString, IconPickerModel, GuidValue, IMessageBusTopicSubscription } from "@omnia/fx-models"; import { NotificationPanelHistoryEntry } from "./NotificationPanelHistoryEntry"; export interface CategoryIconDisplaySettings { showIcon: boolean; showLabel: boolean; categoriesPerRow?: number; selectedTabBgColor?: string; headerSettings?: BlockHeaderSettings; } export declare enum NotificationPanelDisplayModes { Responsive = 0, Horizontal = 1, Vertical = 2 } export declare enum NotificationPanelTabAligments { Left = 0, Center = 1, Right = 2 } export declare enum NotificationPanelIconPosition { Left = 0, Top = 1, Right = 2 } export declare enum NotificationTypes { Automatic = 0, Custom = 1 } export interface NotificationPanelActionHandlerSettings extends NotificationPanelBlockSettings { headerColors?: { headerNotificationBackgroundColor: string; headerNotificationNumberColor: string; }; } export interface NotificationPanelBlockSettings { blockId: Guid; defaultNotificationPanelId: string; customColors: NotificationPanelCustomColorModel; categoryIconDisplaySettings: CategoryIconDisplaySettings; displaySettings: NoficationPanelDisplaySettings; } export interface BlockHeaderSettings { showTitle: boolean; padding?: SpacingSettings; margin?: SpacingSettings; bgColor: string; color: string; } export interface NotificationPanelSettingsModel { id?: Guid; title?: string; categories: Array; customColors?: NotificationPanelCustomColorModel; categoryIconDisplaySettings: CategoryIconDisplaySettings; } export interface NoficationPanelDisplaySettings { displayMode: NotificationPanelDisplayModes; tabAlignment: NotificationPanelTabAligments; showSlider: false; grow: boolean; customSize: boolean; height: number; width: number; borderRadius: number; borderRadiusAll: boolean; iconPosition: NotificationPanelIconPosition; } export interface NotificationPanelCustomColorModel { textColor?: string; activeTextColor?: string; iconColor?: string; activeIconColor?: string; backgroundColor?: string; activeBackgroundColor?: string; notificationNumberColor?: string; activeNotificationNumberColor?: string; notificationBackgroundColor?: string; activeNotificationBackgroundColor?: string; unreadNotificationColor?: string; tabControlBackgroundColor?: string; sliderColor?: string; followTheming: boolean; } export interface NotificationPanelCategoryModel { title: MultilingualString; icon?: IconPickerModel; id: Guid; components: Array; notificationType: NotificationTypes; notificationProviderId?: string; } export interface NotificationPanelComponentModel { elementToRender?: string; componentManifestId: GuidValue; settingsComponentManifestId?: GuidValue; title: string; settingsValue?: any; id: Guid; } export interface IBlockInstanceInNotificationPanel { readonly visibled: boolean; readonly viewedNewItems: string[]; registerNewItems(ids: string[]): void; getHistory(ids: string[]): Promise>; onChanged: IMessageBusTopicSubscription; } export declare const notificationPanelLayoutProvider = "notificationpanel"; declare module "@omnia/fx-models/Layout" { interface IBlockInstance { notificationPanel: IBlockInstanceInNotificationPanel; } }