import { JSX } from 'react'; /** A liquid body and its visual gesture. It never creates a model, acquires * media, clicks an app control, or interprets animation as a task receipt. */ export declare function LiquidPresence(props: LiquidPresenceProps): JSX.Element; /** Presentation observations, not a provider/session/task state machine. */ export declare type LiquidPresenceActivity = 'idle' | 'connecting' | 'listening' | 'thinking' | 'speaking' | 'working' | 'error' | 'unknown' | 'disabled'; export declare interface LiquidPresenceProps { activity?: LiquidPresenceActivity; size?: number; target?: LiquidPresenceTarget | null; /** True disables travel but never removes the target explanation. */ reducedMotion?: boolean; /** Actual amplitude only. Null/invalid values mean unavailable, not mock audio. */ levelRef?: { readonly current: number | null; }; colorFrom?: string; colorTo?: string; className?: string; /** Visual dismissal only; never wire this to task cancellation. */ onDismiss?(reason: 'dismissed' | 'unavailable' | 'expired'): void; } /** Geometry only. These rectangles come from the host, never from a model. */ export declare interface LiquidPresenceRect { x: number; y: number; width: number; height: number; } export declare interface LiquidPresenceTarget { /** A new key means a new gesture, even when the target stays the same. */ key: string; label: string; getRect(): LiquidPresenceRect | null; /** Supplies clipping/scroll context and the correct native-dialog portal. */ contextElement?: Element | null; } export { }