import { Ref, WatchOptions, WatchSource, WatchStopHandle } from 'vue'; export type DebouncedWatchCleanup = () => void; export type DebouncedWatchSource = WatchSource | WatchSource[] | (() => T); export type DebouncedWatchCallback = (value: T, oldValue: T | undefined, onCleanup: (cleanup: DebouncedWatchCleanup) => void) => void | Promise; export interface UseDebouncedWatchOptions extends WatchOptions { /** Debounce interval in milliseconds. */ delay?: number; } export interface UseDebouncedWatchReturn { /** Whether a callback is currently scheduled. */ isPending: Ref; /** Cancel the pending callback without stopping the watcher. */ cancel: () => void; /** Run the pending callback immediately, if one is scheduled. */ flush: () => void; /** Stop the watcher and clear pending callbacks. */ stop: WatchStopHandle; } /** Watch a Vue source with debounced callback execution and explicit cancel/flush controls. */ export declare function useDebouncedWatch(source: DebouncedWatchSource, callback: DebouncedWatchCallback, options?: UseDebouncedWatchOptions): UseDebouncedWatchReturn;