import { type PolicyUiAction, type PolicyUiActionDirection, type PolicyUiActionGroup, type PolicyUiProfile } from '@c15t/ui/utils'; import { useConsentManager } from './use-consent-manager'; export type HeadlessConsentSurface = 'banner' | 'dialog'; export type HeadlessConsentSurfaceAction = PolicyUiAction; export type HeadlessConsentWriteAction = 'accept' | 'reject'; export type HeadlessConsentBannerAction = HeadlessConsentSurfaceAction; export type HeadlessConsentDialogAction = HeadlessConsentSurfaceAction; export interface HeadlessConsentSurfaceState { allowedActions: TAction[]; orderedActions: TAction[]; actionGroups: TAction[][]; primaryActions: TAction[]; layout?: PolicyUiActionGroup[]; direction: PolicyUiActionDirection; uiProfile?: PolicyUiProfile; scrollLock?: boolean; hasPolicyHints: boolean; shouldFillActions: boolean; isVisible: boolean; } export type HeadlessConsentBannerState = HeadlessConsentSurfaceState; export type HeadlessConsentDialogState = HeadlessConsentSurfaceState; export interface UseHeadlessConsentUIResult { activeUI: ReturnType['activeUI']; banner: HeadlessConsentBannerState; dialog: HeadlessConsentDialogState; openBanner: (options?: { force?: boolean; }) => void; openDialog: () => void; closeUI: () => void; performAction: (action: HeadlessConsentWriteAction, options: { surface: HeadlessConsentSurface; uiSource?: string; }) => Promise; performBannerAction: (action: HeadlessConsentWriteAction, options?: { uiSource?: string; }) => Promise; performDialogAction: (action: HeadlessConsentWriteAction, options?: { uiSource?: string; }) => Promise; saveCustomPreferences: (options?: { uiSource?: string; }) => Promise; } export declare function useHeadlessConsentUI(): UseHeadlessConsentUIResult;