import * as React from 'react'; import { StoreApi } from 'zustand'; type State = object; type StateSelector = (state: T) => U; type EqualityChecker = (state: T, newState: T) => boolean; type StateListener = (state: T, previousState: T) => void; type StoreApiWithSubscribeWithSelector = Omit, 'subscribe'> & { subscribe: { (listener: StateListener): () => void; (selector: StateSelector, listener: StateListener, options?: { equalityFn?: EqualityChecker; fireImmediately?: boolean; }): () => void; }; }; type KeyboardControlsState = { [K in T]: boolean; }; export type KeyboardControlsEntry = { name: T; keys: string[]; up?: boolean; }; export type KeyboardControlsProps = { map: KeyboardControlsEntry[]; children: React.ReactNode; onChange?: (name: string, pressed: boolean, state: KeyboardControlsState) => void; domElement?: HTMLElement; }; export declare function KeyboardControls({ map, children, onChange, domElement }: KeyboardControlsProps): React.JSX.Element; type Selector = (state: KeyboardControlsState) => boolean; export declare function useKeyboardControls(): [ StoreApiWithSubscribeWithSelector>['subscribe'], StoreApiWithSubscribeWithSelector>['getState'] ]; export declare function useKeyboardControls(sel: Selector): ReturnType>; export {};