/** * Enhanced IABConsentBanner component with compound components attached. * * @remarks * This is the main export that provides access to all IABConsentBanner components. * It follows the compound components pattern, allowing for flexible composition * of the banner's parts. */ import type { FC } from 'react'; import { IABConsentBannerButtonGroup, IABConsentBannerFooterSpacer } from './atoms/button-group'; import { IABConsentBannerCard } from './atoms/card'; import { IABConsentBannerDescription } from './atoms/description'; import { IABConsentBannerFooter } from './atoms/footer'; import { IABConsentBannerHeader } from './atoms/header'; import { IABConsentBannerOverlay } from './atoms/overlay'; import { IABConsentBannerRoot } from './atoms/root'; import { IABConsentBannerTitle } from './atoms/title'; import { type IABConsentBannerProps } from './iab-consent-banner'; /** * This interface extends the base IABConsentBanner component with additional sub-components * that can be used to compose the banner's structure. */ export interface IABConsentBannerCompoundComponent extends FC { Root: typeof IABConsentBannerRoot; Card: typeof IABConsentBannerCard; Header: typeof IABConsentBannerHeader; Title: typeof IABConsentBannerTitle; Description: typeof IABConsentBannerDescription; Footer: typeof IABConsentBannerFooter; ButtonGroup: typeof IABConsentBannerButtonGroup; FooterSpacer: typeof IABConsentBannerFooterSpacer; Overlay: typeof IABConsentBannerOverlay; } /** * IAB TCF 2.3 compliant cookie consent banner component. * * @remarks * This component serves as the main entry point for rendering an IAB-compliant consent banner. * It provides a structured layout with required IAB TCF elements. * * Key features: * - IAB TCF 2.3 compliant * - Fully accessible by default * - Customizable appearance * - Compound component pattern support * * @example * Simple usage with default settings: * ```tsx * * ``` * * @example * Using compound components for custom layout: * ```tsx * * * * Privacy Settings * We and our partners... * * * * * * * * * * ``` * * Note: Next.js Server Components do not support compound components. * Ensure you add 'use client' to the file. * * @public */ declare const IABConsentBanner: IABConsentBannerCompoundComponent; export default IABConsentBanner; export { IABConsentBannerButtonGroup, IABConsentBannerFooterSpacer, } from './atoms/button-group'; export { IABConsentBannerCard } from './atoms/card'; export { IABConsentBannerDescription } from './atoms/description'; export { IABConsentBannerFooter } from './atoms/footer'; export { IABConsentBannerHeader } from './atoms/header'; export { IABConsentBannerOverlay } from './atoms/overlay'; export { IABConsentBannerRoot } from './atoms/root'; export { IABConsentBannerTitle } from './atoms/title'; export { IABConsentBanner, type IABConsentBannerProps };