/* eslint-disable */
/* tslint:disable */
/**
 * This is an autogenerated file created by the Stencil compiler.
 * It contains typing information for all components that exist in this project.
 */
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
import { Notification } from "./types/nuts-inbox-widget.types";
export { Notification } from "./types/nuts-inbox-widget.types";
export namespace Components {
    interface NutsInboxWidget {
        /**
          * Novu application identifier
         */
        "applicationIdentifier": string;
        /**
          * HTTP Endpoint URL for NuTS
         */
        "backendUrl": string;
        /**
          * Position of the widget (possible values: `left` and `right`) - this changes the `justify-content` property of the `.BellIconWrapper` class
         */
        "bellIconPosition": string;
        /**
          * Client custom styling via inline styles
         */
        "clientStyling": string;
        /**
          * Client styling url for a css file
         */
        "clientStylingUrl": string;
        /**
          * The deviceID from which the user access the website
         */
        "deviceId"?: string;
        /**
          * Environment on which the widget is used (possible values: `stage`, `prod`)
         */
        "environment": string;
        /**
          * Language of the widget
         */
        "language": string;
        /**
          * Clicking on the notification will automatically redirect you to the redirectURL attached to the notification (`default` behaviour). It can be changed to `postMessage` and instead of the redirect it will emit a postMessage with the redirectURL and the parent website can take actions
         */
        "notificationAction": string;
        /**
          * The operatorID on which we can find the user
         */
        "operatorId": string;
        /**
          * The sessionID of the user
         */
        "sessionId": string;
        /**
          * Socket Endpoint URL for NuTS
         */
        "socketUrl": string;
        /**
          * The subscriberID
         */
        "subscriberId"?: string;
        /**
          * Translations via URL
         */
        "translationUrl": string;
        /**
          * The ID of the user
         */
        "userId": string;
    }
    interface NutsNotification {
        /**
          * Endpoint for notification transactions
         */
        "backendUrl": string;
        /**
          * Src for badge / avatar
         */
        "badge": string;
        /**
          * Clienty styling passed as a string
         */
        "clientStyling": string;
        /**
          * Custom styling passed as a URL
         */
        "clientStylingUrl": string;
        /**
          * Text content of the notification
         */
        "content": string;
        /**
          * Date of the notification
         */
        "date": string;
        /**
          * Language code of the content
         */
        "language": string;
        /**
          * Max number of lines before truncating
         */
        "maxLines": number;
        /**
          * Max length of notification text before truncating
         */
        "maxTextLength": number;
        /**
          * Unique ID of the notification content
         */
        "messageId": string;
        /**
          * Determines notification behaviour onClick
         */
        "notificationAction": string;
        /**
          * Unique ID of the operator domain
         */
        "operatorId": string;
        /**
          * Wether or not the item has been read
         */
        "read": boolean;
        /**
          * Redirect address in case of external url
         */
        "redirectUrl": string;
        /**
          * Wether or not the item has been seen
         */
        "seen": boolean;
        /**
          * The sessionID of the user
         */
        "sessionId": string;
        /**
          * Wether or not to show notification settings
         */
        "showSettings": boolean;
        /**
          * The subscriberID
         */
        "subscriberId"?: string;
        /**
          * Token used in authorization of notification transactions
         */
        "token": string;
        /**
          * Translations via URL
         */
        "translationUrl": string;
        /**
          * Unique ID of the user who receives the notification
         */
        "userId": string;
    }
    interface NutsPopover {
        /**
          * Endpoint used for notification transactions
         */
        "backendUrl": string;
        /**
          * Custom styling string
         */
        "clientStyling": string;
        /**
          * Custom styling URL
         */
        "clientStylingUrl": string;
        /**
          * Language code of the content
         */
        "language": string;
        /**
          * Decides the behaviour of the notification onClick
         */
        "notificationAction": string;
        /**
          * Unique ID of the operator domain
         */
        "operatorId": string;
        /**
          * The sessionID of the user
         */
        "sessionId": string;
        /**
          * Token used to authenticate notification transactions
         */
        "token": string;
        /**
          * Translations via URL
         */
        "translationUrl": string;
        /**
          * The count of unseen notifications
         */
        "unseenCount": number;
        /**
          * Unique ID of the user receiving notifications
         */
        "userId": string;
    }
}
export interface NutsInboxWidgetCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLNutsInboxWidgetElement;
}
export interface NutsNotificationCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLNutsNotificationElement;
}
export interface NutsPopoverCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLNutsPopoverElement;
}
declare global {
    interface HTMLNutsInboxWidgetElementEventMap {
        "notificationFeed": Notification[];
        "newNotification": any;
    }
    interface HTMLNutsInboxWidgetElement extends Components.NutsInboxWidget, HTMLStencilElement {
        addEventListener<K extends keyof HTMLNutsInboxWidgetElementEventMap>(type: K, listener: (this: HTMLNutsInboxWidgetElement, ev: NutsInboxWidgetCustomEvent<HTMLNutsInboxWidgetElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLNutsInboxWidgetElementEventMap>(type: K, listener: (this: HTMLNutsInboxWidgetElement, ev: NutsInboxWidgetCustomEvent<HTMLNutsInboxWidgetElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLNutsInboxWidgetElement: {
        prototype: HTMLNutsInboxWidgetElement;
        new (): HTMLNutsInboxWidgetElement;
    };
    interface HTMLNutsNotificationElementEventMap {
        "messageDeleted": any;
        "settingsOpened": any;
        "messageRead": any;
    }
    interface HTMLNutsNotificationElement extends Components.NutsNotification, HTMLStencilElement {
        addEventListener<K extends keyof HTMLNutsNotificationElementEventMap>(type: K, listener: (this: HTMLNutsNotificationElement, ev: NutsNotificationCustomEvent<HTMLNutsNotificationElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLNutsNotificationElementEventMap>(type: K, listener: (this: HTMLNutsNotificationElement, ev: NutsNotificationCustomEvent<HTMLNutsNotificationElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLNutsNotificationElement: {
        prototype: HTMLNutsNotificationElement;
        new (): HTMLNutsNotificationElement;
    };
    interface HTMLNutsPopoverElementEventMap {
        "allNotificationsRead": any;
        "allMessagesDeleted": any;
        "closePopover": any;
    }
    interface HTMLNutsPopoverElement extends Components.NutsPopover, HTMLStencilElement {
        addEventListener<K extends keyof HTMLNutsPopoverElementEventMap>(type: K, listener: (this: HTMLNutsPopoverElement, ev: NutsPopoverCustomEvent<HTMLNutsPopoverElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLNutsPopoverElementEventMap>(type: K, listener: (this: HTMLNutsPopoverElement, ev: NutsPopoverCustomEvent<HTMLNutsPopoverElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLNutsPopoverElement: {
        prototype: HTMLNutsPopoverElement;
        new (): HTMLNutsPopoverElement;
    };
    interface HTMLElementTagNameMap {
        "nuts-inbox-widget": HTMLNutsInboxWidgetElement;
        "nuts-notification": HTMLNutsNotificationElement;
        "nuts-popover": HTMLNutsPopoverElement;
    }
}
declare namespace LocalJSX {
    interface NutsInboxWidget {
        /**
          * Novu application identifier
         */
        "applicationIdentifier": string;
        /**
          * HTTP Endpoint URL for NuTS
         */
        "backendUrl": string;
        /**
          * Position of the widget (possible values: `left` and `right`) - this changes the `justify-content` property of the `.BellIconWrapper` class
         */
        "bellIconPosition"?: string;
        /**
          * Client custom styling via inline styles
         */
        "clientStyling"?: string;
        /**
          * Client styling url for a css file
         */
        "clientStylingUrl"?: string;
        /**
          * The deviceID from which the user access the website
         */
        "deviceId"?: string;
        /**
          * Environment on which the widget is used (possible values: `stage`, `prod`)
         */
        "environment"?: string;
        /**
          * Language of the widget
         */
        "language"?: string;
        /**
          * Clicking on the notification will automatically redirect you to the redirectURL attached to the notification (`default` behaviour). It can be changed to `postMessage` and instead of the redirect it will emit a postMessage with the redirectURL and the parent website can take actions
         */
        "notificationAction"?: string;
        "onNewNotification"?: (event: NutsInboxWidgetCustomEvent<any>) => void;
        "onNotificationFeed"?: (event: NutsInboxWidgetCustomEvent<Notification[]>) => void;
        /**
          * The operatorID on which we can find the user
         */
        "operatorId": string;
        /**
          * The sessionID of the user
         */
        "sessionId": string;
        /**
          * Socket Endpoint URL for NuTS
         */
        "socketUrl": string;
        /**
          * The subscriberID
         */
        "subscriberId"?: string;
        /**
          * Translations via URL
         */
        "translationUrl"?: string;
        /**
          * The ID of the user
         */
        "userId": string;
    }
    interface NutsNotification {
        /**
          * Endpoint for notification transactions
         */
        "backendUrl"?: string;
        /**
          * Src for badge / avatar
         */
        "badge"?: string;
        /**
          * Clienty styling passed as a string
         */
        "clientStyling"?: string;
        /**
          * Custom styling passed as a URL
         */
        "clientStylingUrl"?: string;
        /**
          * Text content of the notification
         */
        "content"?: string;
        /**
          * Date of the notification
         */
        "date"?: string;
        /**
          * Language code of the content
         */
        "language"?: string;
        /**
          * Max number of lines before truncating
         */
        "maxLines"?: number;
        /**
          * Max length of notification text before truncating
         */
        "maxTextLength"?: number;
        /**
          * Unique ID of the notification content
         */
        "messageId"?: string;
        /**
          * Determines notification behaviour onClick
         */
        "notificationAction"?: string;
        "onMessageDeleted"?: (event: NutsNotificationCustomEvent<any>) => void;
        "onMessageRead"?: (event: NutsNotificationCustomEvent<any>) => void;
        "onSettingsOpened"?: (event: NutsNotificationCustomEvent<any>) => void;
        /**
          * Unique ID of the operator domain
         */
        "operatorId"?: string;
        /**
          * Wether or not the item has been read
         */
        "read"?: boolean;
        /**
          * Redirect address in case of external url
         */
        "redirectUrl"?: string;
        /**
          * Wether or not the item has been seen
         */
        "seen"?: boolean;
        /**
          * The sessionID of the user
         */
        "sessionId": string;
        /**
          * Wether or not to show notification settings
         */
        "showSettings"?: boolean;
        /**
          * The subscriberID
         */
        "subscriberId"?: string;
        /**
          * Token used in authorization of notification transactions
         */
        "token"?: string;
        /**
          * Translations via URL
         */
        "translationUrl"?: string;
        /**
          * Unique ID of the user who receives the notification
         */
        "userId"?: string;
    }
    interface NutsPopover {
        /**
          * Endpoint used for notification transactions
         */
        "backendUrl"?: string;
        /**
          * Custom styling string
         */
        "clientStyling"?: string;
        /**
          * Custom styling URL
         */
        "clientStylingUrl"?: string;
        /**
          * Language code of the content
         */
        "language"?: string;
        /**
          * Decides the behaviour of the notification onClick
         */
        "notificationAction"?: string;
        "onAllMessagesDeleted"?: (event: NutsPopoverCustomEvent<any>) => void;
        "onAllNotificationsRead"?: (event: NutsPopoverCustomEvent<any>) => void;
        "onClosePopover"?: (event: NutsPopoverCustomEvent<any>) => void;
        /**
          * Unique ID of the operator domain
         */
        "operatorId"?: string;
        /**
          * The sessionID of the user
         */
        "sessionId": string;
        /**
          * Token used to authenticate notification transactions
         */
        "token"?: string;
        /**
          * Translations via URL
         */
        "translationUrl"?: string;
        /**
          * The count of unseen notifications
         */
        "unseenCount"?: number;
        /**
          * Unique ID of the user receiving notifications
         */
        "userId"?: string;
    }
    interface IntrinsicElements {
        "nuts-inbox-widget": NutsInboxWidget;
        "nuts-notification": NutsNotification;
        "nuts-popover": NutsPopover;
    }
}
export { LocalJSX as JSX };
declare module "@stencil/core" {
    export namespace JSX {
        interface IntrinsicElements {
            "nuts-inbox-widget": LocalJSX.NutsInboxWidget & JSXBase.HTMLAttributes<HTMLNutsInboxWidgetElement>;
            "nuts-notification": LocalJSX.NutsNotification & JSXBase.HTMLAttributes<HTMLNutsNotificationElement>;
            "nuts-popover": LocalJSX.NutsPopover & JSXBase.HTMLAttributes<HTMLNutsPopoverElement>;
        }
    }
}
