/** * @fileoverview TermsPrivacyModal Component - Terms and conditions acceptance modal * * This component displays a modal requiring users to accept terms of service and * privacy policy before using the voice agent. The acceptance state is persisted * to localStorage. The modal can be configured to show terms and/or privacy content * inline or as external links. * * Features: * - Optional terms and conditions requirement * - Customizable content (inline or links) * - LocalStorage persistence * - Blocks voice agent usage until accepted * - Smooth modal animations * - Mobile-responsive design * - Keyboard navigation (ESC to close if decline allowed) * * @module @vowel.to/client/components * @author vowel.to * @license Proprietary */ /** * Props for TermsPrivacyModal */ export interface TermsPrivacyModalProps { /** Whether to require terms acceptance */ enabled?: boolean; /** Modal title */ title?: string; /** Modal description/intro text */ description?: string; /** Terms of service content (HTML or text) */ termsContent?: string; /** URL to external terms of service */ termsUrl?: string; /** Privacy policy content (HTML or text) */ privacyContent?: string; /** URL to external privacy policy */ privacyUrl?: string; /** Text for the accept button */ acceptButtonText?: string; /** Text for the decline button (if allowed) */ declineButtonText?: string; /** Whether to show a decline button */ allowDecline?: boolean; /** LocalStorage key prefix for storing acceptance state */ storageKeyPrefix?: string; /** Callback when terms are accepted */ onAccept?: () => void; /** Callback when terms are declined */ onDecline?: () => void; /** Whether the voice agent is trying to connect (triggers modal if not accepted) */ isAttemptingConnection?: boolean; /** Function to block connection (called when terms not accepted) */ blockConnection?: () => void; } /** * TermsPrivacyModal Component * * Displays a modal requiring users to accept terms and privacy policy before * using the voice agent. Acceptance is persisted to localStorage. * * @example * ```tsx * console.log('Terms accepted')} * /> * ``` */ export declare function TermsPrivacyModal({ enabled, title, description, termsContent, termsUrl, privacyContent, privacyUrl, acceptButtonText, declineButtonText, allowDecline, storageKeyPrefix, onAccept, onDecline, isAttemptingConnection, blockConnection, }: TermsPrivacyModalProps): import("react/jsx-runtime").JSX.Element | null; //# sourceMappingURL=TermsPrivacyModal.d.ts.map