import { EventEmitter } from 'events';
import { S as ScreenReaderConfig, L as LiveRegion, g as ScreenReaderAnnouncement } from '../index-C9qyHjXw.js';

/**
 * @fileoverview OrdoJS Accessibility - Screen Reader Module
 *
 * Screen reader support with announcements and live regions.
 */

/**
 * Screen reader manager for handling announcements and live regions
 */
declare class ScreenReaderManager extends EventEmitter {
    private config;
    private announcements;
    private liveRegions;
    private isInitialized;
    /**
     * Create a new ScreenReaderManager instance
     *
     * @param config - Screen reader configuration
     */
    constructor(config: ScreenReaderConfig);
    /**
     * Initialize the screen reader manager
     */
    initialize(): Promise<void>;
    /**
     * Announce message to screen readers
     *
     * @param message - Message to announce
     * @param options - Announcement options
     * @returns Announcement ID
     */
    announce(message: string, options?: {
        priority?: 'polite' | 'assertive';
        type?: 'status' | 'alert' | 'log' | 'timer' | 'marquee' | 'progressbar';
        duration?: number;
        element?: string;
        context?: string;
    }): string;
    /**
     * Create live region
     *
     * @param regionId - Region ID
     * @param element - Element selector
     * @param options - Region options
     * @returns Live region
     */
    createLiveRegion(regionId: string, element: string, options?: {
        type?: 'status' | 'alert' | 'log' | 'timer' | 'marquee' | 'progressbar';
        priority?: 'polite' | 'assertive';
        atomic?: boolean;
        relevant?: 'additions' | 'removals' | 'text' | 'all';
        busy?: boolean;
        expanded?: boolean;
        controls?: string;
        describedBy?: string;
        label?: string;
    }): LiveRegion;
    /**
     * Update live region content
     *
     * @param regionId - Region ID
     * @param content - New content
     * @param options - Update options
     */
    updateLiveRegion(regionId: string, content: string, options?: {
        busy?: boolean;
        expanded?: boolean;
    }): void;
    /**
     * Remove live region
     *
     * @param regionId - Region ID
     */
    removeLiveRegion(regionId: string): void;
    /**
     * Get live region by ID
     *
     * @param regionId - Region ID
     * @returns Live region or undefined
     */
    getLiveRegion(regionId: string): LiveRegion | undefined;
    /**
     * Get all live regions
     *
     * @returns Array of live regions
     */
    getAllLiveRegions(): LiveRegion[];
    /**
     * Get announcement by ID
     *
     * @param announcementId - Announcement ID
     * @returns Announcement or undefined
     */
    getAnnouncement(announcementId: string): ScreenReaderAnnouncement | undefined;
    /**
     * Get all announcements
     *
     * @returns Array of announcements
     */
    getAllAnnouncements(): ScreenReaderAnnouncement[];
    /**
     * Clear announcements
     */
    clearAnnouncements(): void;
    /**
     * Get screen reader manager statistics
     *
     * @returns Statistics
     */
    getStats(): {
        totalAnnouncements: number;
        totalLiveRegions: number;
        announcementsByType: Record<string, number>;
        liveRegionsByType: Record<string, number>;
    };
    /**
     * Initialize screen reader support
     */
    private initializeScreenReader;
    /**
     * Setup announcements
     */
    private setupAnnouncements;
    /**
     * Setup live regions
     */
    private setupLiveRegions;
    /**
     * Setup ARIA support
     */
    private setupARIASupport;
}

export { ScreenReaderManager };
