import type { Ref, Context, ComponentChild } from './preact'; export type StateUpdater = S | ((prevState: S) => S); export function useState(initialState: S | (() => S)): [S, (update: StateUpdater) => void]; export function useReducer(reducer: (state: S, action: A) => S, initialState: S): [S, (action: A) => void]; export function useEffect(effect: () => void | (() => void), inputs?: readonly unknown[]): void; export function useLayoutEffect(effect: () => void | (() => void), inputs?: readonly unknown[]): void; export function useRef(initialValue: T): { current: T }; export function useRef(initialValue: T | null): Ref; export function useRef(): Ref; export function useMemo(factory: () => T, inputs: readonly unknown[]): T; export function useCallback any>(callback: T, inputs: readonly unknown[]): T; export function useContext(context: Context): T;