import type { FC, HTMLAttributes, ReactNode } from 'react';
/**
* Props for the root component of the ConsentDialog.
*
* @public
*/
export interface ConsentDialogRootProps extends HTMLAttributes {
/**
* React children that will be rendered inside the dialog container.
* Typically this includes `ConsentDialog.Card` and its sub-components.
*/
children: ReactNode;
/**
* Explicitly control the open state of the dialog. If omitted, the dialog
* relies on the consent manager (`activeUI === 'dialog'`) value.
*/
open?: boolean;
/**
* Which consent models this dialog responds to.
* @default ['opt-in', 'opt-out']
*/
models?: import('c15t').Model[];
/**
* When true, the component will not apply any internal styles.
*/
noStyle?: boolean;
/**
* Disable entrance / exit animations when true.
*/
disableAnimation?: boolean;
/**
* Lock body scroll while the dialog is open. Defaults to `true`.
*/
scrollLock?: boolean;
/**
* Trap focus within the dialog while it is open. Defaults to `true`.
*/
trapFocus?: boolean;
/**
* Custom backdrop element. Pass a React node to replace the built-in
* semi-transparent overlay or pass `false` to render no backdrop at all.
*
* @default undefined (builtin overlay)
*/
overlay?: ReactNode | false;
/**
* Override the UI source identifier sent with consent API calls.
* @default 'dialog'
*/
uiSource?: string;
}
/**
* Provides theming context, focus-management and portal rendering for the
* Consent Dialog. This component is also exposed as
* `ConsentDialog.Root` to enable the compound-component usage:
*
* ```tsx
*
*
* …
*
*
* ```
*/
declare const ConsentDialogRoot: FC;
declare const Root: FC;
export { ConsentDialogRoot, Root };