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