/**
 * @fileoverview OrdoJS Core - Accessibility Manager
 */
export interface AccessibilityConfig {
    enableAriaGeneration: boolean;
    enableKeyboardNavigation: boolean;
    enableFocusManagement: boolean;
    enableScreenReaderSupport: boolean;
    enableSemanticHTML: boolean;
    enableAccessibilityTesting: boolean;
    ariaLabels: Record<string, string>;
    keyboardShortcuts: Record<string, string>;
    focusOrder: string[];
}
export interface AriaAttributes {
    'aria-label'?: string;
    'aria-labelledby'?: string;
    'aria-describedby'?: string;
    'aria-hidden'?: boolean;
    'aria-expanded'?: boolean;
    'aria-pressed'?: boolean;
    'aria-checked'?: boolean;
    'aria-disabled'?: boolean;
    'aria-required'?: boolean;
    'aria-invalid'?: boolean;
    'aria-valuenow'?: number;
    'aria-valuemin'?: number;
    'aria-valuemax'?: number;
    'aria-valuetext'?: string;
    'aria-multiline'?: boolean;
    'aria-readonly'?: boolean;
    'aria-placeholder'?: string;
    'aria-autocomplete'?: 'none' | 'inline' | 'list' | 'both';
    'aria-haspopup'?: boolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';
    'aria-controls'?: string;
    'aria-owns'?: string;
    'aria-activedescendant'?: string;
    'aria-selected'?: boolean;
    'aria-current'?: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false';
    'aria-live'?: 'off' | 'polite' | 'assertive';
    'aria-atomic'?: boolean;
    'aria-relevant'?: 'additions' | 'additions text' | 'all' | 'removals' | 'text';
    'aria-busy'?: boolean;
    'aria-grabbed'?: boolean;
    'aria-dropeffect'?: 'none' | 'copy' | 'execute' | 'link' | 'move' | 'popup';
    'aria-dragged'?: boolean;
    'aria-flowto'?: string;
}
export interface KeyboardNavigationConfig {
    enableTabNavigation: boolean;
    enableArrowKeys: boolean;
    enableEnterKey: boolean;
    enableEscapeKey: boolean;
    enableSpaceKey: boolean;
    customShortcuts: Record<string, () => void>;
    focusTraps: string[];
    skipLinks: string[];
}
export interface FocusManagementConfig {
    enableFocusTrapping: boolean;
    enableFocusRestoration: boolean;
    enableFocusIndicators: boolean;
    focusOrder: string[];
    focusableSelectors: string[];
    skipFocusSelectors: string[];
}
/**
 * Accessibility Manager for OrdoJS applications
 */
export declare class AccessibilityManager {
    private config;
    private keyboardConfig;
    private focusConfig;
    private focusHistory;
    private currentFocusIndex;
    private ariaIdCounter;
    constructor(config?: Partial<AccessibilityConfig>);
    /**
     * Initialize accessibility features
     */
    private initialize;
    /**
     * Generate ARIA attributes for an element
     */
    private generateAriaAttributes;
    /**
     * Determine the appropriate ARIA role for an element
     */
    private determineRole;
    /**
     * Generate appropriate label for an element
     */
    private generateLabel;
    /**
     * Generate description for an element
     */
    private generateDescription;
    /**
     * Check if element is interactive
     */
    private isInteractiveElement;
    /**
     * Check if element is a form element
     */
    private isFormElement;
    /**
     * Check if element is a navigation element
     */
    private isNavigationElement;
    /**
     * Check if element is a list element
     */
    private isListElement;
    /**
     * Add ARIA attributes for interactive elements
     */
    private addInteractiveAriaAttributes;
    /**
     * Add ARIA attributes for form elements
     */
    private addFormAriaAttributes;
    /**
     * Add ARIA attributes for navigation elements
     */
    private addNavigationAriaAttributes;
    /**
     * Add ARIA attributes for list elements
     */
    private addListAriaAttributes;
    /**
     * Setup keyboard navigation
     */
    private setupKeyboardNavigation;
    /**
     * Handle keyboard navigation
     */
    private handleKeyboardNavigation;
    /**
     * Handle Tab navigation
     */
    private handleTabNavigation;
    /**
     * Handle Arrow key navigation
     */
    private handleArrowKeyNavigation;
    /**
     * Handle Enter key
     */
    private handleEnterKey;
    /**
     * Handle Escape key
     */
    private handleEscapeKey;
    /**
     * Handle Space key
     */
    private handleSpaceKey;
    /**
     * Handle custom shortcuts
     */
    private handleCustomShortcuts;
    /**
     * Get key combination string
     */
    private getKeyCombo;
    /**
     * Setup focus management
     */
    private setupFocusManagement;
    /**
     * Handle focus in
     */
    private handleFocusIn;
    /**
     * Handle focus out
     */
    private handleFocusOut;
    /**
     * Setup screen reader support
     */
    private setupScreenReaderSupport;
    /**
     * Setup accessibility testing
     */
    private setupAccessibilityTesting;
    /**
     * Get focusable elements
     */
    private getFocusableElements;
    /**
     * Move focus forward
     */
    private moveFocusForward;
    /**
     * Move focus backward
     */
    private moveFocusBackward;
    /**
     * Close dialog
     */
    private closeDialog;
    /**
     * Generate unique ARIA ID
     */
    private generateAriaId;
    /**
     * Check ARIA attributes
     */
    private checkAriaAttributes;
    /**
     * Get required ARIA attributes for a role
     */
    private getRequiredAriaAttributes;
    /**
     * Check keyboard navigation
     */
    private checkKeyboardNavigation;
    /**
     * Check focus management
     */
    private checkFocusManagement;
    /**
     * Check screen reader support
     */
    private checkScreenReaderSupport;
    /**
     * Generate accessibility report
     */
    private generateAccessibilityReport;
    /**
     * Announce to screen readers
     */
    announce(message: string, priority?: 'polite' | 'assertive'): void;
    /**
     * Set focus to element
     */
    setFocus(element: HTMLElement): void;
    /**
     * Restore previous focus
     */
    restoreFocus(): void;
    /**
     * Add custom keyboard shortcut
     */
    addKeyboardShortcut(keyCombo: string, callback: () => void): void;
    /**
     * Remove custom keyboard shortcut
     */
    removeKeyboardShortcut(keyCombo: string): void;
    /**
     * Update configuration
     */
    updateConfig(newConfig: Partial<AccessibilityConfig>): void;
    private navigateToNextItem;
    private navigateToPreviousItem;
    validateAccessibility(component: HTMLElement): AccessibilityIssue[];
    validateKeyboardNavigation(component: HTMLElement): AccessibilityIssue[];
    validateScreenReaderSupport(component: HTMLElement): AccessibilityIssue[];
    validateSemanticHTML(component: HTMLElement): AccessibilityIssue[];
}
//# sourceMappingURL=accessibility-manager.d.ts.map