UNPKG

@equinor/fusion-observable

Version:
12 lines (11 loc) 643 B
import { type Observable, type ObservableInput, Subject } from 'rxjs'; import type { ObservableType } from '../types'; export type UseDebounceOptions<TArgs extends any[]> = { debounce: ((value: TArgs) => ObservableInput<unknown>) | number; queuer?: Subject<TArgs>; }; export declare const useDebounce: <TFn extends (...args: TArgs) => TType, TType extends ObservableInput<any> = ReturnType<TFn>, TArgs extends any[] = Parameters<TFn>>(fn: TFn, options: UseDebounceOptions<TArgs>) => { value$: Observable<TType extends ObservableInput<any> ? ObservableType<TType> : TType>; next: (...args: TArgs) => void; idle: boolean; };