import { CSSResultGroup, LitElement, TemplateResult } from "lit"; import { BaklavaIcon } from "../icon/icon-list"; import { NotificationVariant } from "./card/bl-notification-card"; type Action = { label: string; onClick: (notification: Notification) => void; }; export type NotificationProps = { caption?: string; description: string; icon?: boolean | BaklavaIcon; variant?: NotificationVariant; primaryAction?: Action; secondaryAction?: Action; duration?: number; permanent?: boolean; }; export type Notification = NotificationProps & { id: string; remove: () => Promise; }; export declare const SWIPE_UP_THRESHOLD = -50; /** * @tag bl-notification * @summary Baklava Notification component */ export default class BlNotification extends LitElement { static get styles(): CSSResultGroup; /** * Disable animations. * It will not be possible to use animations if the user has disabled them. * Animations will respect the user's preferences regardless of this property. */ noAnimation: boolean; /** * Sets the default duration of notifications in seconds */ duration: number; private notifications; get notificationList(): Notification[]; private touchStartY; get touchStart(): { y: number; }; private get isMobile(); /** * Adds a notification to the list of notifications. * @param {NotificationProps} props Notification properties * @returns {Notification} A notification object with a remove method. */ addNotification(props: NotificationProps): Notification; /** * Removes a notification from the list of notifications. * @param {string} id Notification id * @returns {Promise} A promise that resolves with a boolean indicating whether the notification was removed. */ removeNotification(id: string): Promise; private handleTouchStart; private handleTouchMove; private handleTouchEnd; private renderActionSlot; render(): TemplateResult; } declare global { interface HTMLElementTagNameMap { "bl-notification": BlNotification; } } export {}; //# sourceMappingURL=bl-notification.d.ts.map