/**
* @packageDocumentation
* Default implementation of the Consent Dialog that ships with c15t.
*
* The new compound-component API exposes all primitives (Root, Card, etc.).
* This default export simply composes those primitives so consumers that
* prefer a one-line `` usage still have it.
*/
import type { FC } from 'react';
import { type ConsentDialogTriggerProps } from '../consent-dialog-trigger';
import type { InlineLegalLinksProps } from '../shared/primitives/legal-links';
/**
* Props for the `` convenience component.
*/
export interface ConsentDialogProps {
/**
* Theme configuration override (deprecated)
* @deprecated Theme should be set on the ConsentManagerProvider
*/
theme?: never;
/**
* Disables all animations when true
*/
disableAnimation?: boolean;
/**
* Removes default styles when true
*/
noStyle?: boolean;
/**
* Locks the scroll when true
*/
scrollLock?: boolean;
/**
* Traps keyboard focus within a dialog when true
*/
trapFocus?: boolean;
/**
* Control the open state. If omitted the dialog follows
* `useConsentManager().activeUI === 'dialog'`.
*/
open?: boolean;
/**
* Controls which legal links to display.
*
* - `undefined` (default): Shows all available legal links
* - `null`: Explicitly hides all legal links
* - Array of keys: Shows only the specified legal links
*
* @defaultValue undefined
*
* @example
* ```tsx
* // Show all links
*
*
* // Show no links
*
*
* // Show only privacy policy
*
* ```
*
* @remarks
* You must set the legal links in the ConsentManagerProvider options.
*/
legalLinks?: InlineLegalLinksProps['links'];
/**
* Controls whether to hide the branding in the dialog footer.
*
* @defaultValue false
*/
hideBranding?: boolean;
/**
* Show a floating trigger button to resurface the consent dialog.
* Useful for allowing users to re-open the dialog after dismissing.
*
* - `true` - Show trigger with default settings
* - `false` - Hide trigger (default)
* - `ConsentDialogTriggerProps` - Show trigger with custom props
*
* @default false
*/
showTrigger?: boolean | ConsentDialogTriggerProps;
/**
* Which consent models this dialog responds to.
* @default ['opt-in', 'opt-out']
*/
models?: import('c15t').Model[];
/**
* Override the UI source identifier sent with consent API calls.
* @default 'dialog'
*/
uiSource?: string;
}
export declare const ConsentDialog: FC;