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 };