import { HoverRegion, SpeechRegion, LiveRegion } from './Region.js'; import type { ExplorerMathItem, ExplorerMathDocument } from '../explorer.js'; import { Explorer, AbstractExplorer } from './Explorer.js'; import { ExplorerPool } from './ExplorerPool.js'; import { MmlNode } from '../../core/MmlTree/MmlNode.js'; import { SemAttr } from '../speech/SpeechUtil.js'; export interface KeyExplorer extends Explorer { KeyDown(event: KeyboardEvent): void; FocusIn(event: FocusEvent): void; FocusOut(event: FocusEvent): void; NoMove(): void; } export type keyMapping = (explorer: SpeechExplorer, event: KeyboardEvent) => boolean | void; export declare function isContainer(el: HTMLElement): boolean; export declare function hasModifiers(event: MouseEvent | KeyboardEvent, shift?: boolean): boolean; export declare class SpeechExplorer extends AbstractExplorer implements KeyExplorer { document: ExplorerMathDocument; pool: ExplorerPool; region: SpeechRegion; protected node: HTMLElement; brailleRegion: LiveRegion; magnifyRegion: HoverRegion; item: ExplorerMathItem; protected static helpMessage(title: string, select: string, braille: string): string; protected static helpData: Map; protected static keyMap: Map; sound: boolean; private get generators(); protected get role(): string; protected get description(): string; protected get none(): string; protected get brailleNone(): string; protected current: HTMLElement; protected clicked: HTMLElement; refocus: HTMLElement; protected focusSpeech: boolean; restarted: string; protected speech: HTMLElement; protected speechType: string; protected img: HTMLElement; attached: boolean; private eventsAttached; protected marks: HTMLElement[]; protected currentMark: number; protected lastMark: HTMLElement; protected pendingIndex: number[]; protected cellTypes: string[]; protected anchors: HTMLElement[]; protected tabs: HTMLElement[]; protected backTab: boolean; protected events: [string, (x: Event) => void][]; private subtrees; FocusIn(event: FocusEvent): void; FocusOut(_event: FocusEvent): void; KeyDown(event: KeyboardEvent): void; private MouseDown; Click(event: MouseEvent): void; DblClick(event: MouseEvent): void; protected spaceKey(): boolean; protected hKey(): boolean | void; protected escapeKey(event: KeyboardEvent): void | boolean; protected tabKey(event: KeyboardEvent): void | boolean; protected tabTo(node: HTMLElement): void; protected tabOut(): void; protected enterKey(event: KeyboardEvent): void | boolean; protected homeKey(): void; protected moveDown(shift: boolean): boolean | void; protected moveUp(shift: boolean): boolean | void; protected moveRight(shift: boolean): boolean | void; protected moveLeft(shift: boolean): boolean | void; protected moveTo(node: HTMLElement): void | boolean; protected moveToNeighborCell(di: number, dj: number): boolean | void; protected undefinedKey(event: KeyboardEvent): boolean; protected addMark(): void; protected prevMark(): void; protected clearMarks(): void; protected autoVoice(): void; protected toggleBraille(): void; protected numberKey(n: number): boolean | void; depth(): void; summary(): void; nextRules(): void; nextStyle(): void; details(): void; protected help(): void; protected setCurrent(node: HTMLElement, addDescription?: boolean): void; private cacheParts; protected getSplitNodes(node: HTMLElement): HTMLElement[]; private subtree; protected addSpeech(node: HTMLElement, describe: boolean): void; protected addComma(words: string[]): string[]; protected removeSpeech(): void; speak(speech: string, braille?: string, ssml?: string[], description?: string): void; unspeak(node: HTMLElement): void; attachSpeech(): void; detachSpeech(): void; protected adjustAnchors(): void; protected restoreAnchors(): void; protected getTabs(): void; protected getInternalTabs(node: HTMLElement): HTMLElement[]; focus(): void; protected nodeId(node: HTMLElement): string; protected parentId(node: HTMLElement): string; protected getNode(id: string): HTMLElement; protected getParent(node: HTMLElement): HTMLElement; protected childArray(node: HTMLElement): string[]; protected isCell(node: HTMLElement): boolean; protected isRow(node: HTMLElement): boolean; protected tableCell(node: HTMLElement): HTMLElement; protected cellTable(cell: HTMLElement): HTMLElement; protected cellPosition(cell: HTMLElement): [number, number]; protected cellAt(table: HTMLElement, i: number, j: number): HTMLElement; protected firstNode(node: HTMLElement): HTMLElement; protected rootNode(): HTMLElement; protected nextSibling(node: HTMLElement): HTMLElement; protected prevSibling(node: HTMLElement): HTMLElement; protected findClicked(node: HTMLElement, x: number, y: number): HTMLElement; protected isLink(node?: HTMLElement): boolean; protected getAnchor(node?: HTMLElement): HTMLElement; protected linkFor(anchor: HTMLElement): HTMLElement; protected parentLink(node: HTMLElement): HTMLElement; protected focusTop(): void; protected SsmlAttributes(node: HTMLElement, center: SemAttr): string[]; protected restartAfter(promise: Promise): Promise; constructor(document: ExplorerMathDocument, pool: ExplorerPool, region: SpeechRegion, node: HTMLElement, brailleRegion: LiveRegion, magnifyRegion: HoverRegion, _mml: MmlNode, item: ExplorerMathItem); protected findStartNode(): HTMLElement; Start(): Promise; Stop(): void; Update(): void; protected get tabIndex(): string; Attach(): void; Detach(): void; NoMove(): void; AddEvents(): void; protected addHtmlEvents(): void; private actionable; protected triggerLinkKeyboard(event: KeyboardEvent): boolean; protected triggerLink(node: HTMLElement): boolean; protected triggerLinkMouse(): boolean; semanticFocus(): string; private getSubtrees; }