import { Ref, WatchSource } from "vue"; /** * Any function */ export declare type Fn = () => void; export interface Pausable { /** * A ref indicate whether a pusable instance is active */ isActive: Ref; /** * Temporary pause the effect from executing */ pause: Fn; /** * Resume the effects */ resume: Fn; } export declare type MapSources = { [K in keyof T]: T[K] extends WatchSource ? V : never; }; export declare type MapOldSources = { [K in keyof T]: T[K] extends WatchSource ? Immediate extends true ? V | undefined : V : never; }; export declare type FunctionArgs = (...args: Args) => Return; export interface FunctionWrapperOptions { fn: FunctionArgs; args: Args; thisArg: This; } export declare type EventFilter = (invoke: Fn, options: FunctionWrapperOptions) => void; export interface ConfigurableEventFilter { eventFilter?: EventFilter; } export declare const bypassFilter: EventFilter; /** * EventFilter,提供额外的控制来暂停和恢复筛选 * * @param extendFilter 当PauseableFilter激活时应用额外的过滤器,默认为none * */ export declare function pausableFilter(extendFilter?: EventFilter): Pausable & { eventFilter: EventFilter; }; /** * @internal */ export declare function createFilterWrapper(filter: EventFilter, fn: T): T;