import { FocusEvent, ChangeEvent, CompositionEvent } from 'react'; interface ExternalStoreSnapshotSource { getServerSnapshot?(): TSnapshot; getSnapshot(): TSnapshot; subscribe(listener: () => void): () => void; } interface ComposedInputPendingCommit { committedValue: string; previousValue: string; } interface ComposedInputValueSyncInput { isComposing: boolean; localValue: string; pendingCommit: ComposedInputPendingCommit | null; value: string; } interface ComposedInputValueSyncResult { pendingCommit: ComposedInputPendingCommit | null; shouldSyncLocalValue: boolean; value: string; } interface UseComposedInputValueInput { onCommit: (value: string) => void; value: string; } interface UseComposedInputValueResult { clearValue: () => void; commitValue: (value: string) => void; isComposing: boolean; onBlur: (event: FocusEvent) => void; onChange: (event: ChangeEvent) => void; onCompositionEnd: (event: CompositionEvent) => void; onCompositionStart: () => void; value: string; } declare function resolveComposedInputValueSync(input: ComposedInputValueSyncInput): ComposedInputValueSyncResult; declare function useComposedInputValue({ onCommit, value }: UseComposedInputValueInput): UseComposedInputValueResult; declare function useExternalStoreSelector(source: ExternalStoreSnapshotSource, selector: (snapshot: TSnapshot) => TResult): TResult; declare function useExternalStoreSnapshot(source: ExternalStoreSnapshotSource): TSnapshot; export { type ComposedInputPendingCommit, type ComposedInputValueSyncInput, type ComposedInputValueSyncResult, type ExternalStoreSnapshotSource, type UseComposedInputValueInput, type UseComposedInputValueResult, resolveComposedInputValueSync, useComposedInputValue, useExternalStoreSelector, useExternalStoreSnapshot };