import { CookieConsentState, CookieConsentAPI, CookieConsentConfig } from '../cookie-consent/index.js';
export { ConsentPreferences, CookieCategory, CookieConsentAPI, CookieConsentConfig, CookieConsentState, CookieStorage, DEFAULT_CATEGORIES, createCookieConsent } from '../cookie-consent/index.js';
import * as React from 'react';

interface UseCookieConsentResult {
    state: CookieConsentState;
    api: CookieConsentAPI;
    acceptAll: CookieConsentAPI['acceptAll'];
    rejectAll: CookieConsentAPI['rejectAll'];
    savePreferences: CookieConsentAPI['savePreferences'];
    setPreference: CookieConsentAPI['setPreference'];
    reset: CookieConsentAPI['reset'];
    openSettings: CookieConsentAPI['openSettings'];
    close: CookieConsentAPI['close'];
}
/**
 * useCookieConsent — binds the headless cookie-consent store to React via
 * `useSyncExternalStore`, defaulting persistence to localStorage.
 */
declare function useCookieConsent(config?: CookieConsentConfig): UseCookieConsentResult;

interface CookieConsentProps {
    /** Result of `useCookieConsent()` */
    consent: UseCookieConsentResult;
    /** Banner position (default 'bottom') */
    position?: 'bottom' | 'top';
    title?: string;
    description?: React.ReactNode;
    /** Link to the full cookie/privacy policy */
    policyUrl?: string;
    policyLabel?: string;
    className?: string;
}
/**
 * CookieConsent — batteries-included consent banner over `useCookieConsent()`.
 * Shows a prompt (Accept all / Reject all / Manage), with a settings view of
 * per-category toggles. Renders nothing once the user has consented.
 */
declare function CookieConsent({ consent, position, title, description, policyUrl, policyLabel, className, }: CookieConsentProps): React.DetailedReactHTMLElement<{
    className: string;
    role: "dialog";
    'aria-label': string;
    'aria-modal': false;
}, HTMLElement> | null;

export { CookieConsent, type CookieConsentProps, type UseCookieConsentResult, useCookieConsent };
