/** * AuraGlass Accessibility Hooks * Enhanced accessibility hooks for comprehensive WCAG 2.1 AA compliance */ /** * Enhanced announcement hook with queuing and debouncing */ export declare function useScreenReaderAnnouncement(): { announce: (message: string, priority?: "polite" | "assertive") => void; clearQueue: () => void; }; /** * Hook for managing keyboard navigation in collections */ export interface UseKeyboardNavigationOptions { items: Array<{ id: string; disabled?: boolean; }>; orientation?: 'horizontal' | 'vertical' | 'both'; loop?: boolean; homeEndKeys?: boolean; pageKeys?: boolean; onActivate?: (id: string) => void; onSelect?: (id: string) => void; } export declare function useKeyboardNavigation(options: UseKeyboardNavigationOptions): { focusedIndex: number; selectedIds: Set; handleKeyDown: (event: React.KeyboardEvent | KeyboardEvent) => void; registerItem: (id: string, element: HTMLElement | null) => void; focusItem: (index: number) => void; selectItem: (id: string, multiSelect?: boolean) => void; moveNext: () => void; movePrevious: () => void; moveToFirst: () => void; moveToLast: () => void; }; /** * Hook for managing expanded/collapsed state with keyboard navigation */ export declare function useExpandableNavigation(): { expandedIds: Set; isExpanded: (id: string) => boolean; toggleExpanded: (id: string) => void; expandItem: (id: string) => void; collapseItem: (id: string) => void; expandAll: (ids: string[]) => void; collapseAll: () => void; }; /** * Hook for managing live region announcements */ export declare function useLiveRegion(): { announce: (newMessage: string, priority?: "polite" | "assertive") => void; }; /** * Hook for managing form field accessibility */ export interface UseFormFieldA11yOptions { id?: string; label?: string; required?: boolean; error?: string; description?: string; disabled?: boolean; } export declare function useFormFieldA11y(options: UseFormFieldA11yOptions): { fieldId: string; labelId: string | undefined; errorId: string | undefined; descriptionId: string | undefined; fieldProps: { id: string; 'aria-required': true | undefined; 'aria-invalid': true | undefined; 'aria-describedby': string | undefined; 'aria-labelledby': string | undefined; disabled: boolean; }; labelProps: { id: string | undefined; htmlFor: string; }; errorProps: { id: string | undefined; role: "alert"; 'aria-live': "polite"; } | { id?: undefined; role?: undefined; 'aria-live'?: undefined; }; descriptionProps: { id: string | undefined; } | { id?: undefined; }; isInvalid: boolean; announce: (message: string, priority?: "polite" | "assertive") => void; }; /** * Hook for managing focus restoration */ export declare function useFocusRestore(): { saveFocus: () => void; restoreFocus: () => void; }; /** * Hook for managing tab navigation between elements */ export declare function useTabNavigation(): { containerRef: import("react").RefObject; trapFocus: (event: React.KeyboardEvent) => void; }; /** * Hook for managing modal accessibility */ export declare function useModalA11y(): { modalRef: import("react").RefObject; openModal: (title?: string) => void; closeModal: (title?: string) => void; handleEscape: (onClose: () => void) => (event: React.KeyboardEvent) => void; }; /** * Hook for managing loading state accessibility */ export declare function useLoadingA11y(isLoading: boolean, loadingText?: string): { loadingProps: { 'aria-busy': true | undefined; 'aria-live': "polite" | undefined; 'aria-label': string | undefined; }; announce: (message: string, priority?: "polite" | "assertive") => void; }; /** * Hook for managing validation state accessibility */ export interface UseValidationA11yOptions { isValid?: boolean; errors?: string[]; warnings?: string[]; validMessage?: string; } export declare function useValidationA11y(options: UseValidationA11yOptions): { validationProps: { 'aria-invalid': true | undefined; 'aria-describedby': string | undefined; }; hasErrors: boolean; hasWarnings: boolean; announce: (message: string, priority?: "polite" | "assertive") => void; }; //# sourceMappingURL=a11yHooks.d.ts.map