import { ReactNode } from 'react'; import { FloatingCursorConfig, FloatingCursorUpdate } from '../types'; /** * Floating cursor context state */ export interface FloatingCursorContextType { /** Current cursor position and state */ cursorState: FloatingCursorUpdate | null; /** Whether cursor is enabled */ isEnabled: boolean; /** Cursor configuration */ config: FloatingCursorConfig; /** Update cursor position and text */ updateCursor: (update: FloatingCursorUpdate) => void; /** Show cursor in resting position */ showResting: (text?: string) => void; /** Hide cursor */ hide: () => void; /** Enable cursor */ enable: () => void; /** Disable cursor */ disable: () => void; } /** * Props for FloatingCursorProvider * * Note: This is an internal component. Users don't use this directly. * It's automatically included in VowelProvider. */ export interface FloatingCursorProviderProps { /** Floating cursor configuration */ config: FloatingCursorConfig; /** Children to render */ children: ReactNode; } /** * Floating Cursor Provider (Internal) * * Provides floating cursor state management for React applications. * This is automatically wrapped by VowelProvider - users don't need to use this directly. * * The actual cursor rendering happens in FloatingCursorRenderer, which can be: * - Automatically included in VowelAgent (default) * - Rendered separately for custom placement * * @example This is internal - users use VowelProvider instead * ```tsx * * // Cursor automatically included * * ``` */ export declare function FloatingCursorProvider({ config, children, }: FloatingCursorProviderProps): import("react/jsx-runtime").JSX.Element; /** * Hook to access floating cursor context * * Use this in custom components that need to control the floating cursor. * * @example * ```tsx * function MyAutomationComponent() { * const { updateCursor } = useFloatingCursor(); * * const handleAction = () => { * updateCursor({ x: 50, y: 50, text: 'Clicking button', isIdle: false }); * }; * * return ; * } * ``` */ export declare function useFloatingCursor(): FloatingCursorContextType; /** * Optional hook that returns null if not in FloatingCursorProvider * * Use this for components that work with or without cursor support. * * @example * ```tsx * function MyComponent() { * const cursor = useFloatingCursorOptional(); * * const handleAction = () => { * // Only update cursor if available * cursor?.updateCursor({ x: 50, y: 50, text: 'Action', isIdle: false }); * }; * } * ``` */ export declare function useFloatingCursorOptional(): FloatingCursorContextType | null; //# sourceMappingURL=FloatingCursorProvider.d.ts.map