import { type FC, type HTMLAttributes, type ReactNode } from 'react'; /** * Props for the root component of the ConsentBanner. * * @remarks * The root component serves as the top-level container and context provider * for the consent banner. It manages the consent state and styling configuration * for all child components. * * @public */ interface ConsentBannerRootProps extends HTMLAttributes { /** * @remarks * React elements to be rendered within the consent banner. * Typically includes Content, Title, Description, and Actions components. */ children: ReactNode; /** * @remarks * When true, removes all default styling from the banner and its children. * Useful when implementing completely custom styles. */ noStyle?: boolean; /** * @remarks * When true, disables the entrance/exit animations. * Useful for environments where animations are not desired. */ disableAnimation?: boolean; /** * @remarks * When true, the consent banner will lock the scroll of the page. * Useful for implementing a consent banner that locks the scroll of the page. * @default false */ scrollLock?: boolean; /** * @remarks * When true, the consent banner will trap focus. * Useful for implementing a consent banner that traps focus. * @default true */ trapFocus?: boolean; /** * Which consent models this banner responds to. * @default ['opt-in', 'opt-out'] */ models?: import('c15t').Model[]; /** * Override the UI source identifier sent with consent API calls. * @default 'banner' */ uiSource?: string; } /** * Root component of the ConsentBanner that provides context and styling. * * @remarks * This component: * - Provides the ConsentBanner context to all child components * - Manages consent state through the consent manager * - Handles style distribution to child components * - Serves as the main container for the banner * * @example * Basic usage: * ```tsx * * * * * * * * * * * * * * * * ``` * * @example * Preferred styling with provider theme tokens and slots: * ```tsx * * * * * * * * * * * * * * * * * * ``` * * @public */ declare const ConsentBannerRoot: FC; declare const Root: FC; export { ConsentBannerRoot, Root };