import { TNode } from '@tempots/dom'; import { AppearancePreference } from './theme'; import { NotificationViewportPosition } from './misc/notification-provider'; /** Configuration options for the {@link BeatUI} root provider. */ export type BeatUIOptions = { /** Whether to load and provide the authentication i18n translations. @default false */ includeAuthI18n?: boolean; /** Whether to enable light/dark appearance toggling. @default true */ enableAppearance?: boolean; /** The initial appearance preference when appearance is enabled. @default 'system' */ defaultAppearance?: AppearancePreference; /** localStorage key used to persist the appearance preference. @default 'bui-appearance' */ appearancePreferenceKey?: string; /** Whether to include the notification system provider and viewport. @default true */ includeNotifications?: boolean; /** Position of the notification viewport on screen. @default 'bottom-end' */ notificationPosition?: NotificationViewportPosition; }; /** * Root provider component that initializes all BeatUI subsystems: routing, * locale, i18n, theming, and notifications. Wrap your application with this * component to enable all BeatUI features. * * @param options - Configuration for which subsystems to enable * @param children - The application content * @returns A provider tree wrapping the children * * @example * ```typescript * import { BeatUI } from '@tempots/beatui' * * BeatUI( * { enableAppearance: true, includeNotifications: true }, * html.div('My Application') * ) * ``` * * @example * ```typescript * // With auth i18n support * BeatUI( * { includeAuthI18n: true, defaultAppearance: 'dark' }, * AppLayout({ children: Router({ ... }) }) * ) * ``` */ export declare function BeatUI({ includeAuthI18n, enableAppearance, defaultAppearance, appearancePreferenceKey, includeNotifications, notificationPosition, }: BeatUIOptions, ...children: TNode[]): import("@tempots/core").Renderable;