import { VowelAgentProps } from './components'; import { VowelClientConfig, VowelVoiceConfig } from '../types'; /** * Supported platform adapters (DEPRECATED - use preset instead) * @deprecated Use preset attribute instead */ export type PlatformAdapter = "vanilla" | "shopify"; /** * Supported presets */ export type PresetName = "shopify" | "vanilla"; /** * Custom action definition for web component */ export interface WebComponentAction { /** Action name/identifier */ name: string; /** Action definition (description and parameters) */ definition: { description: string; parameters: Record; }; /** Handler function name (must be globally accessible via window) */ handler: string; } /** * Configuration options for Vowel client */ export interface WebComponentConfig { /** Override the system prompt/instruction */ instructions?: string; systemInstructionOverride?: string; language?: string; initialGreetingPrompt?: string; turnDetectionPreset?: 'aggressive' | 'balanced' | 'conservative'; /** @deprecated Prefer `_voiceConfig`. */ voiceConfig?: VowelVoiceConfig; _voiceConfig?: VowelVoiceConfig; floatingCursor?: VowelClientConfig['floatingCursor']; _caption?: VowelClientConfig['_caption']; borderGlow?: VowelClientConfig['borderGlow']; } /** * Props for VowelWebComponentWrapper * These will be exposed as attributes on the web component */ export interface VowelWebComponentWrapperProps { /** App ID (required) */ appId: string; /** * Initialization mode (NEW) * - "auto": Automatically creates Vowel client (default) * - "custom": Waits for window.registerVowelFactory() to provide custom initialization * @default "auto" */ initMode?: "auto" | "custom"; /** * Preset to use (NEW - recommended) * @example "shopify", "vanilla" */ preset?: PresetName; /** * Platform adapter to use (DEPRECATED - use preset instead) * @deprecated Use preset attribute instead */ adapter?: PlatformAdapter; /** Position of floating button */ position?: VowelAgentProps["position"]; /** Show transcript panel */ showTranscripts?: boolean; /** Button color (Tailwind classes or CSS color) */ buttonColor?: string; /** Store URL (for Shopify preset) */ storeUrl?: string; /** Custom actions (JSON string or object) */ customActions?: string | WebComponentAction[]; /** Configuration overrides (JSON string or object) */ config?: string | WebComponentConfig; /** Enable the voice nag wrapper */ enableNag?: boolean; /** Custom title for the nag message */ nagTitle?: string; /** Custom description for the nag message */ nagDescription?: string; /** Custom acknowledge button text for nag */ nagButtonText?: string; /** LocalStorage key prefix for nag state */ nagStorageKeyPrefix?: string; /** Enable the terms and privacy modal */ enableTermsModal?: boolean; /** Modal title for terms/privacy */ termsModalTitle?: string; /** Modal description for terms/privacy */ termsModalDescription?: 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 in modal */ termsAcceptButtonText?: string; /** Text for the decline button in modal */ termsDeclineButtonText?: string; /** Whether to show a decline button in modal */ termsAllowDecline?: boolean; /** LocalStorage key prefix for terms acceptance state */ termsStorageKeyPrefix?: string; } /** * VowelWebComponentWrapper - React component that gets converted to web component * Handles full initialization with provider structure and platform adapters * * @example * ```html * * * * * * * * * * * ``` */ export declare function VowelWebComponentWrapper({ appId, initMode, preset, adapter, position, showTranscripts, buttonColor, storeUrl, customActions, config, enableNag, nagTitle, nagDescription, nagButtonText, nagStorageKeyPrefix, enableTermsModal, termsModalTitle, termsModalDescription, termsContent, termsUrl, privacyContent, privacyUrl, termsAcceptButtonText, termsDeclineButtonText, termsAllowDecline, termsStorageKeyPrefix, }: VowelWebComponentWrapperProps): import("react/jsx-runtime").JSX.Element | null; //# sourceMappingURL=VowelWebComponentWrapper.d.ts.map