import { AccessibilityRole, AccessibilityState } from 'react-native'; /** * Generate accessible label with context */ export declare const createAccessibleLabel: (label: string, context?: { required?: boolean; invalid?: boolean; current?: number; total?: number; selected?: boolean; }) => string; export type AccessibilityValue = { min?: number; max?: number; now?: number; text?: string; }; /** * Props that publish a control's current value to assistive technology. * * `accessibilityValue` is the React Native prop and is all native needs, but * react-native-web (0.21) does not map the object — it only forwards the flattened * `aria-value*` props. Passing the object alone therefore lands a `role="slider"` or * `role="progressbar"` in the DOM with no value for a screen reader to read, silently. * Emitting both covers either platform. * * Note that `aria-value*` is meaningless without a value-bearing role, so callers must * also set an `accessibilityRole` such as `progressbar`, `slider`, or `adjustable`. */ export declare const getAccessibilityValueProps: (value?: AccessibilityValue) => Record; /** * Generate accessibility props for React Native components */ export declare const createAccessibilityProps: (options: { role?: AccessibilityRole; label?: string; hint?: string; state?: AccessibilityState; value?: { min?: number; max?: number; now?: number; text?: string; }; actions?: Array<{ name: string; label?: string; }>; disabled?: boolean; selected?: boolean; }) => any; /** * Format numbers for screen readers (e.g., "1,000" becomes "1 thousand") */ export declare const formatNumberForScreenReader: (num: number) => string; /** * Format time duration for screen readers */ export declare const formatDurationForScreenReader: (seconds: number) => string; /** * Get appropriate ARIA role based on component type */ export declare const getAriaRole: (componentType: string) => AccessibilityRole | undefined; /** * Check if an element should be focusable */ export declare const isFocusable: (element: any) => boolean; /** * Debounce announcements to prevent spam */ export declare const debounceAnnouncement: (key: string, announcement: () => void, delay?: number) => void; /** * Get reading time estimate for content */ export declare const getReadingTime: (text: string, wordsPerMinute?: number) => string;