import type { ErrorInfo, PreactContext } from 'preact';
import type { Dispatch, useEffect as useEffectType, useErrorBoundary as useErrorBoundaryType, useImperativeHandle as useImperativeHandleType, useLayoutEffect as useLayoutEffectType } from 'preact/hooks';
declare function useState<S>(initialState: S | (() => S)): [S, Dispatch<unknown>];
declare function useReducer<S, A>(_reducer: (prevState: S, action: A) => S, initialState: S | (() => S), init?: (initialState: S) => S): [S, Dispatch<A>];
declare function useRef<T>(initialValue?: T): {
    current: T | undefined;
};
declare function useMemo<T>(factory: () => T, _args: ReadonlyArray<unknown>): T;
declare function useCallback<T>(callback: T, args: ReadonlyArray<unknown>): T;
declare function useContext<T>(context: PreactContext<T>): T;
declare function useDebugValue<T>(value: T, formatter?: (value: T) => string | number): void;
declare function useErrorBoundary(cb: (error: any, errorInfo: ErrorInfo) => Promise<void> | void): ReturnType<typeof useErrorBoundaryType>;
declare function useId(): string;
declare const useEffect: typeof useEffectType;
declare const useLayoutEffect: typeof useLayoutEffectType;
declare const useImperativeHandle: typeof useImperativeHandleType;
export { useCallback, useContext, useDebugValue, useEffect, useErrorBoundary, useId, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, };
