import { Platform } from 'react-native'; import type { KeyboardManagerContextValue } from '../providers/KeyboardManagerProvider'; export type SelectionMode = 'single' | 'multiple'; export interface SelectionFocusCallbacks { focusPrimary?: () => void; focusModal?: () => void; blurPrimary?: () => void; blurModal?: () => void; } export interface HandleSelectionCompleteOptions { mode: SelectionMode; preferRefocus?: boolean; useModal?: boolean; keyboardManager?: KeyboardManagerContextValue | null; focusCallbacks?: SelectionFocusCallbacks; onRefocus?: () => void; onBlur?: () => void; interactionScheduler?: (cb: () => void) => void; focusTargetId?: string; } export interface SelectionCompleteResult { refocused: boolean; } export interface SelectionContractConfig extends Omit { focusCallbacks?: SelectionFocusCallbacks; } export interface SelectionContractRunOptions { focusCallbacks?: SelectionFocusCallbacks; onRefocus?: () => void; onBlur?: () => void; preferRefocus?: boolean; focusTargetId?: string; keyboardManager?: KeyboardManagerContextValue | null; } export type SelectionContract = (options?: SelectionContractRunOptions) => SelectionCompleteResult; export declare function resolveRefocusBehavior(options: { mode: SelectionMode; preferRefocus?: boolean; platform?: typeof Platform.OS; }): boolean; export declare function handleSelectionComplete(options: HandleSelectionCompleteOptions): SelectionCompleteResult; export declare function createSelectionContract(config: SelectionContractConfig): SelectionContract;