import type { VNode } from 'vue'; import type { AppConfig } from '@nuxt/schema'; import theme from '#build/b24ui/banner'; import type { ButtonProps, IconComponent, LinkProps, LinkPropsKeys } from '../types'; import type { ComponentConfig } from '../types/tv'; type Banner = ComponentConfig; export interface BannerProps { /** * The element or component this component should render as. * @defaultValue 'div' */ as?: any; /** * A unique id saved to local storage to remember if the banner has been dismissed. * Without an explicit id, the banner will not be persisted and will reappear on page reload. */ id?: string; /** * The icon displayed next to the title. * @IconComponent */ icon?: IconComponent; title?: string; /** * Display a list of actions next to the title. * `{ color: 'air-secondary-no-accent', size: 'xs' }`{lang="ts-type"} */ actions?: ButtonProps[]; to?: LinkProps['to']; target?: LinkProps['target']; /** * @defaultValue 'air-primary-alert' */ color?: Banner['variants']['color']; /** * Display a close button to dismiss the banner. * `{ size: 'md', color: 'air-tertiary-no-accent' }`{lang="ts-type"} * @emits `close` * @defaultValue false */ close?: boolean | Omit; /** * The icon displayed in the close button. * @defaultValue icons.close * @IconComponent */ closeIcon?: IconComponent; class?: any; b24ui?: Banner['slots']; } export interface BannerSlots { leading?(props: { b24ui: Banner['b24ui']; }): VNode[]; title?(props?: {}): VNode[]; actions?(props?: {}): VNode[]; close?(props: { b24ui: Banner['b24ui']; }): VNode[]; } export interface BannerEmits { close: []; } declare const _default: typeof __VLS_export; export default _default; declare const __VLS_export: __VLS_WithSlots any; }, string, import("vue").PublicProps, Readonly & Readonly<{ onClose?: (() => any) | undefined; }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, BannerSlots>; type __VLS_WithSlots = T & { new (): { $slots: S; }; };