diff --git a/index.d.ts b/index.d.ts index 86f9f50..2485599 100644 --- a/index.d.ts +++ b/index.d.ts @@ -127,6 +127,19 @@ declare module "@uidotdev/usehooks" { (value: string) => Promise ]; + export function useContinuousRetry( + callback: () => any, + interval?: number, + options?: { + maxRetries?: number + }): boolean; + + export function useCountdown(endTime: number, options: { + interval: number, + onComplete: () => any, + onTick: () => any + }): number; + export function useCounter( startingValue?: number, options?: { @@ -134,14 +147,14 @@ declare module "@uidotdev/usehooks" { max?: number; } ): [ - number, - { - increment: () => void; - decrement: () => void; - set: (nextCount: number) => void; - reset: () => void; - } - ]; + number, + { + increment: () => void; + decrement: () => void; + set: (nextCount: number) => void; + reset: () => void; + } + ]; export function useDebounce(value: T, delay: number): T; @@ -152,8 +165,25 @@ declare module "@uidotdev/usehooks" { export function useDocumentTitle(title: string): void; + export function useEventListener( + target: React.MutableRefObject | Element, + eventName: string, + handler: (Event) => any, + options?: { + capture?: boolean, + passive?: boolean, + once?: boolean + }): void; + export function useFavicon(url: string): void; + export function useFetch( + url: string, + options?: {}): { + error: Error | undefined, + data: any | undefined + } + export function useGeolocation(options?: PositionOptions): GeolocationState; export function useHistoryState(initialPresent?: T): HistoryState; @@ -169,14 +199,35 @@ declare module "@uidotdev/usehooks" { options?: IntersectionObserverInit ): [React.MutableRefObject, IntersectionObserverEntry | null]; + export function useInterval(cb: () => any, ms: number): () => void; + + export function useIntervalWhen( + cb: () => any, + options: { + ms: number, + when: boolean, + startImmediately?: boolean + }): () => void; + export function useIsClient(): boolean; export function useIsFirstRender(): boolean; + export function useKeyPress( + key: string, + cb: (Event) => any, + options?: { + event?: string, + target?: Element | Window, + eventOptions?: {} + }): void; + export function useList(defaultList?: T[]): [T[], CustomList]; export function useLockBodyScroll(): void; + export function useLogger(name: string, ...rest: any[]): void; + export function useLongPress( callback: (e: Event) => void, options?: LongPressOptions @@ -208,12 +259,19 @@ declare module "@uidotdev/usehooks" { type: string; }; + export function usePageLeave(cb: () => any): void; + export function usePreferredLanguage(): string; export function usePrevious(newValue: T): T; export function useQueue(initialValue?: T[]): CustomQueue; + export function useRandomInterval(cb: () => any, options: { + minDelay: number, + maxDelay: number + }): () => void; + export function useRenderCount(): number; export function useRenderInfo(name?: string): RenderInfo | undefined; @@ -231,6 +289,8 @@ declare module "@uidotdev/usehooks" { export function useThrottle(value: T, delay: number): T; + export function useTimeout(cb: () => any, ms: number): () => void; + export function useToggle( initialValue?: boolean ): [boolean, (newValue?: boolean) => void];