UNPKG

starchild-widget

Version:

Starchild Widget

132 lines 3.58 kB
import { Dispatch, SetStateAction, MutableRefObject } from 'react'; export type StateUpdater<T> = Dispatch<SetStateAction<T>>; export type StateTuple<T> = [T, StateUpdater<T>]; export type RefObject<T> = MutableRefObject<T>; export type EffectCleanup = () => void; export type EffectCallback = () => void | EffectCleanup; export interface AsyncState<T> { data: T | null; loading: boolean; error: Error | null; } export interface AsyncActions<T> { execute: (...args: any[]) => Promise<T>; reset: () => void; setData: (data: T | null) => void; setError: (error: Error | null) => void; setLoading: (loading: boolean) => void; } export type UseAsyncReturn<T> = AsyncState<T> & AsyncActions<T>; export interface UseLocalStorageOptions<T> { serialize?: (value: T) => string; deserialize?: (value: string) => T; defaultValue?: T; errorOnFailure?: boolean; } export interface UseDebounceOptions { delay: number; immediate?: boolean; maxWait?: number; } export interface UseThrottleOptions { delay: number; trailing?: boolean; leading?: boolean; } export interface UseIntervalOptions { immediate?: boolean; callback: () => void; delay: number | null; } export interface UseEventListenerOptions { target?: EventTarget | null; passive?: boolean; capture?: boolean; } export interface UseMediaQueryReturn { matches: boolean; media: string; } export interface UseNetworkReturn { online: boolean; downlink?: number; effectiveType?: string; rtt?: number; saveData?: boolean; } export interface UseGeolocationOptions { enableHighAccuracy?: boolean; timeout?: number; maximumAge?: number; } export interface UseGeolocationReturn { position: GeolocationPosition | null; error: GeolocationPositionError | null; loading: boolean; } export interface UseKeyboardOptions { target?: EventTarget | null; event?: 'keydown' | 'keyup' | 'keypress'; capture?: boolean; } export interface UseMousePositionReturn { x: number; y: number; } export interface UseWindowSizeReturn { width: number; height: number; } export interface UseScrollPositionReturn { x: number; y: number; } export interface UseClipboardReturn { value: string; copy: (text: string) => Promise<void>; reset: () => void; error: Error | null; } export interface UseFieldReturn<T> { value: T; setValue: (value: T) => void; reset: () => void; isDirty: boolean; error: string | null; setError: (error: string | null) => void; } export type ValidationRule<T> = (value: T) => string | null | Promise<string | null>; export interface UseFieldOptions<T> { initialValue: T; validate?: ValidationRule<T>; validateOnChange?: boolean; validateOnBlur?: boolean; } export interface UsePaginationReturn { currentPage: number; totalPages: number; pageSize: number; totalItems: number; hasNextPage: boolean; hasPreviousPage: boolean; goToPage: (page: number) => void; nextPage: () => void; previousPage: () => void; setPageSize: (size: number) => void; } export interface UseSearchReturn<T> { query: string; setQuery: (query: string) => void; results: T[]; loading: boolean; error: Error | null; } export type SortDirection = 'asc' | 'desc' | null; export interface UseSortReturn<T> { sortedData: T[]; sortBy: string | null; sortDirection: SortDirection; sort: (key: string) => void; resetSort: () => void; } //# sourceMappingURL=index.d.ts.map