import type { FC, ReactNode } from 'react'; import { type ThemeContextValue } from '../../../context/theme-context'; /** * Props for the ConsentWidgetRoot component. * * @remarks * Extends ThemeContextValue to provide comprehensive theming support * while maintaining type safety for consent management specific features. * * @public */ export interface ConsentWidgetRootProps extends ThemeContextValue { /** * Child components to be rendered within the consent manager context. * * @remarks * - Should include ConsentWidget.Content and related components * - Receives context and theming from the root provider */ children: ReactNode; /** * Determines whether to use the context provider. * If false, the component will not wrap children in a context provider. * * @defaultValue true */ useProvider?: boolean; /** * @remarks * When true, removes all default styling from the banner and its children. * Useful when implementing completely custom styles. */ noStyle?: boolean; /** * Override the UI source identifier sent with consent API calls. * @default 'widget' */ uiSource?: string; } /** * Root component of the ConsentWidget that provides context and styling. * * @remarks * Key features: * - Provides the ConsentWidget context to all child components * - Manages consent state through the consent manager * - Handles theme distribution to child components * - Supports animation toggling * - Allows complete style customization * * @example * Basic usage: * ```tsx * * * {Banner content} * * * ``` * * @example * With custom styling: * ```tsx * * {Banner content} * * ``` * * @public */ declare const ConsentWidgetRoot: FC; declare const Root: FC; export { ConsentWidgetRoot, Root };