import { ICommon, IJsonToHtml, IUnitsDim } from './common.interface';
import { IMenuInterface } from './menu.interface';
export interface IAccessibility {
menuInterface: IMenuInterface;
options: IAccessibilityOptions;
sessionState: ISessionState;
common: ICommon;
stateValues: IStateValues;
isReading: boolean;
readonly html: HTMLElement;
readonly body: HTMLBodyElement;
readonly recognition: any;
readonly fixedDefaultFont: string;
alterTextSize(isIncrease: boolean): void;
alterTextSpace(isIncrease: boolean): void;
alterLineHeight(isIncrease: boolean): void;
speechToText(): void;
textToSpeech(text: string): void;
listen(): void;
read(e?: Event): void;
runHotkey(name: string): void;
toggleMenu(): void;
invoke(action: string, button: HTMLElement): void;
build(): void;
updateReadGuide(e: Event | TouchEvent | any): void;
resetIfDefined(src: string, dest: any, prop: string): void;
onChange(updateSession: boolean): void;
createScreenShot(url: string): Promise;
injectCss(injectFull: boolean): void;
removeCSS(): void;
}
export interface IAccessibilityOptions {
icon?: IAccessibilityIconOptions;
hotkeys?: IAccessibilityHotkeysOptions;
guide?: IAccessibilityGuideOptions;
labels?: IAccessibilityMenuLabelsOptions;
textToSpeechLang?: string;
speechToTextLang?: string;
textPixelMode?: boolean;
textEmlMode?: boolean;
textSizeFactor?: number;
modules?: IAccessibilityModulesOptions;
modulesOrder?: Array;
session?: IAccessibilitySessionOptions;
iframeModals?: Array;
customFunctions?: Array;
statement?: IAccessibilityUrlOptions;
feedback?: IAccessibilityUrlOptions;
language?: IAccessibilityLanguageOptions;
suppressCssInjection?: boolean;
suppressDomInjection?: boolean;
}
export interface ICustomFunction {
method: Function;
buttonText: string;
id: any;
toggle: boolean;
icon?: string;
emoji?: string;
}
export interface IIframeModal {
iframeUrl: string;
buttonText: string;
icon?: string;
emoji?: string;
}
export interface IAccessibilityIconOptions {
img?: string;
imgElem?: IJsonToHtml;
fontFaceSrc?: Array;
fontClass?: string;
useEmojis?: boolean;
fontFamilyValidation?: string;
tabIndex?: number;
closeIcon?: string;
resetIcon?: string;
closeIconElem?: IJsonToHtml;
resetIconElem?: IJsonToHtml;
}
export interface IAccessibilityIconPositionOptions {
top?: IUnitsDim;
bottom?: IUnitsDim;
left?: IUnitsDim;
right?: IUnitsDim;
type?: string;
}
export interface IAccessibilityIconDimensionsOptions {
width: IUnitsDim;
height: IUnitsDim;
}
export interface IAccessibilityHotkeysOptions {
enabled: boolean;
helpTitles: boolean;
keys: IAccessibilityHotkeysKeysOptions;
}
export interface IAccessibilityHotkeysKeysOptions {
toggleMenu: Array;
invertColors: Array;
grayHues: Array;
underlineLinks: Array;
bigCursor: Array;
readingGuide: Array;
textToSpeech: Array;
speechToText: Array;
disableAnimations: Array;
}
export interface IAccessibilityGuideOptions {
cBorder: string;
cBackground: string;
height: string;
}
export interface IAccessibilityMenuDimensionsOptions {
width: IUnitsDim;
height: IUnitsDim;
}
export interface IAccessibilityMenuLabelsOptions {
resetTitle: string;
closeTitle: string;
menuTitle: string;
increaseText: string;
decreaseText: string;
increaseTextSpacing: string;
decreaseTextSpacing: string;
invertColors: string;
grayHues: string;
bigCursor: string;
readingGuide: string;
underlineLinks: string;
textToSpeech: string;
speechToText: string;
disableAnimations: string;
increaseLineHeight: string;
decreaseLineHeight: string;
hotkeyPrefix: string;
}
export interface IAccessibilityModulesOptions {
increaseText: boolean;
decreaseText: boolean;
increaseTextSpacing: boolean;
decreaseTextSpacing: boolean;
increaseLineHeight: boolean;
decreaseLineHeight: boolean;
invertColors: boolean;
grayHues: boolean;
bigCursor: boolean;
readingGuide: boolean;
underlineLinks: boolean;
textToSpeech: boolean;
speechToText: boolean;
disableAnimations: boolean;
}
export declare enum AccessibilityModulesType {
increaseText = 1,
decreaseText = 2,
increaseTextSpacing = 3,
decreaseTextSpacing = 4,
increaseLineHeight = 5,
decreaseLineHeight = 6,
invertColors = 7,
grayHues = 8,
bigCursor = 9,
readingGuide = 10,
underlineLinks = 11,
textToSpeech = 12,
speechToText = 13,
disableAnimations = 14,
iframeModals = 15,
customFunctions = 16
}
export interface IAccessibilityModuleOrder {
order: number;
type: AccessibilityModulesType;
}
export interface IAccessibilitySessionOptions {
persistent: boolean;
}
export interface IAccessibilityUrlOptions {
url: string;
}
export interface IAccessibilityLanguageOptions {
textToSpeechLang: string;
speechToTextLang: string;
}
export interface ISessionState {
textSize: number;
textSpace: number;
lineHeight: number;
invertColors: boolean;
grayHues: boolean;
underlineLinks: boolean;
bigCursor: boolean;
readingGuide: boolean;
}
export interface IStateValues {
underlineLinks: boolean;
textToSpeech: boolean;
bigCursor: boolean;
readingGuide: boolean;
invertColors?: boolean;
grayHues?: boolean;
speechToText?: boolean;
disableAnimations?: boolean;
speechRate?: number;
body: any;
html: any;
}