import * as React from "react"; export type BatteryManager = { supported: boolean; loading: boolean; level: number | null; charging: boolean | null; chargingTime: number | null; dischargingTime: number | null; }; export type GeolocationState = { loading: boolean; accuracy: number | null; altitude: number | null; altitudeAccuracy: number | null; heading: number | null; latitude: number | null; longitude: number | null; speed: number | null; timestamp: number | null; error: GeolocationPositionError | null; }; export type HistoryState = { state: T; set: (newPresent: T) => void; undo: () => void; redo: () => void; clear: () => void; canUndo: boolean; canRedo: boolean; }; export type LongPressOptions = { threshold?: number; onStart?: (e: Event) => void; onFinish?: (e: Event) => void; onCancel?: (e: Event) => void; }; export type LongPressFns = { onMouseDown: (e: React.MouseEvent) => void; onMouseUp: (e: React.MouseEvent) => void; onMouseLeave: (e: React.MouseEvent) => void; onTouchStart: (e: React.TouchEvent) => void; onTouchEnd: (e: React.TouchEvent) => void; }; export type MousePosition = { x: number; y: number; elementX: number; elementY: number; elementPositionX: number; elementPositionY: number; }; export type NetworkState = { online: boolean; downlink: number | null; downlinkMax: number | null; effectiveType: string | null; rtt: number | null; saveData: boolean | null; type: string | null; }; export type CustomList = { set: (l: T[]) => void; push: (element: T) => void; removeAt: (index: number) => void; insertAt: (index: number, element: T) => void; updateAt: (index: number, element: T) => void; clear: () => void; }; export type CustomQueue = { add: (element: T) => void; remove: () => T | undefined; clear: () => void; first: T | undefined; last: T | undefined; size: number; queue: T[]; }; export type RenderInfo = { name: string; renders: number; sinceLastRender: number; timestamp: number; }; export type SpeechOptions = { lang?: string; voice?: { lang?: string; name?: string; }; rate?: number; pitch?: number; volume?: number; }; export type SpeechState = { isPlaying: boolean; status: "init" | "play" | "pause" | "stop"; lang: string; voiceInfo: { lang: string; name: string; }; rate: number; pitch: number; volume: number; }; declare module "@uidotdev/usehooks" { export function useBattery(): BatteryManager; export function useClickAway( cb: (e: Event) => void ): React.MutableRefObject; export function useCopyToClipboard(): [ string | null, (value: string) => Promise ]; export function useCounter( startingValue?: number, options?: { min?: number; max?: number; } ): [ number, { increment: () => void; decrement: () => void; set: (nextCount: number) => void; reset: () => void; } ]; export function useDebounce(value: T, delay: number): T; export function useDefault( initialValue: T, defaultValue: T ): [T, React.Dispatch>]; export function useDocumentTitle(title: string): void; export function useFavicon(url: string): void; export function useGeolocation(options?: PositionOptions): GeolocationState; export function useHistoryState(initialPresent?: T): HistoryState; export function useHover(): [ React.RefCallback, boolean ]; export function useIdle(ms?: number): boolean; export function useIntersectionObserver( options?: IntersectionObserverInit ): [React.RefCallback, IntersectionObserverEntry | null]; export function useIsClient(): boolean; export function useIsFirstRender(): boolean; export function useList(defaultList?: T[]): [T[], CustomList]; export function useLocalStorage( key: string, initialValue?: T ): [T, React.Dispatch>]; export function useLockBodyScroll(): void; export function useLongPress( callback: (e: Event) => void, options?: LongPressOptions ): LongPressFns; export function useMap(initialState?: T): Map; export function useMeasure(): [ React.RefCallback, { width: number | null; height: number | null; } ]; export function useMediaQuery(query: string): boolean; export function useMouse(): [ MousePosition, React.MutableRefObject ]; export function useNetworkState(): NetworkState; export function useObjectState(initialValue: T): [T, (arg: T) => void]; export function useOrientation(): { angle: number; type: string; }; export function usePreferredLanguage(): string; export function usePrevious(newValue: T): T; export function useQueue(initialValue?: T[]): CustomQueue; export function useRenderCount(): number; export function useRenderInfo(name?: string): RenderInfo | undefined; export function useScript( src: string, options?: { removeOnUnmount?: boolean; } ): "unknown" | "loading" | "ready" | "error"; export function useSessionStorage( key: string, initialValue: T ): [T, React.Dispatch>]; export function useSet(values?: T[]): Set; export function useSpeech(text: string, options?: SpeechOptions): SpeechState; export function useThrottle(value: T, delay: number): T; export function useToggle( initialValue?: boolean ): [boolean, (newValue?: boolean) => void]; export function useVisibilityChange(): boolean; export function useWindowScroll(): [ { x: number | null; y: number | null; }, (args: unknown) => void ]; export function useWindowSize(): { width: number | null; height: number | null; }; }