import { Publication } from '../Publication';
import { AccessibilityProfile } from './Accessibility';
/**
 * Represents a single accessibility claim
 */
export interface AccessibilityDisplayStatement {
    id: string;
    compactString?: string;
    descriptiveString?: string;
}
/**
* Represents a collection of related accessibility claims which should be
* displayed together in a section
*/
export interface AccessibilityDisplayField {
    id: string;
    title: string;
    statements: AccessibilityDisplayStatement[];
    shouldDisplay: boolean;
}
/**
 * Represents the different ways visual adjustments can be made
 */
export declare enum VisualAdjustments {
    Unknown = "unknown",
    Modifiable = "modifiable",
    Unmodifiable = "unmodifiable"
}
/**
 * Represents the different types of non-visual reading
 */
export declare enum NonvisualReading {
    NoMetadata = "noMetadata",
    Readable = "readable",
    NotFully = "notFully",
    Unreadable = "unreadable"
}
/**
 * Represents the different types of prerecorded audio
 */
export declare enum PrerecordedAudio {
    NoMetadata = "noMetadata",
    Synchronized = "synchronized",
    AudioOnly = "audioOnly",
    AudioComplementary = "audioComplementary"
}
/**
 * The ways of reading display field is a banner heading that groups
 * together the following information about how the content facilitates
 * access.
 */
export declare class WaysOfReading implements AccessibilityDisplayField {
    readonly id = "ways-of-reading.title";
    readonly title: string;
    readonly shouldDisplay: boolean;
    readonly visualAdjustments: VisualAdjustments;
    readonly nonvisualReading: NonvisualReading;
    readonly nonvisualReadingAltText: boolean;
    readonly prerecordedAudio: PrerecordedAudio;
    readonly statements: AccessibilityDisplayStatement[];
    private constructor();
    static fromPublication(publication: Publication): WaysOfReading;
}
/**
 * Navigation features of the content
 */
export declare class Navigation implements AccessibilityDisplayField {
    readonly id = "navigation.title";
    readonly title: string;
    readonly shouldDisplay: boolean;
    readonly noMetadata: boolean;
    readonly tableOfContents: boolean;
    readonly index: boolean;
    readonly headings: boolean;
    readonly page: boolean;
    readonly statements: AccessibilityDisplayStatement[];
    private constructor();
    static fromPublication(publication: Publication): Navigation;
}
/**
 * Represents the different types of rich content
 */
export declare enum RichContentType {
    Math = "math",
    Chemistry = "chemistry",
    Music = "music",
    Diagram = "diagram",
    Chart = "chart",
    Graph = "graph",
    Table = "table",
    Image = "image"
}
/**
 * Rich content features of the content
 */
export declare class RichContent implements AccessibilityDisplayField {
    readonly id = "rich-content.title";
    readonly title: string;
    readonly shouldDisplay: boolean;
    readonly noMetadata: boolean;
    readonly extendedAltTextDescriptions: boolean;
    readonly mathFormula: boolean;
    readonly mathFormulaAsMathML: boolean;
    readonly mathFormulaAsLaTeX: boolean;
    readonly chemicalFormulaAsMathML: boolean;
    readonly chemicalFormulaAsLaTeX: boolean;
    readonly closedCaptions: boolean;
    readonly openCaptions: boolean;
    readonly transcript: boolean;
    readonly statements: AccessibilityDisplayStatement[];
    private constructor();
    static fromPublication(publication: Publication): RichContent;
}
/**
 * Represents additional accessibility information
 */
export declare class AdditionalInformation implements AccessibilityDisplayField {
    readonly id = "additional-accessibility-information.title";
    readonly title: string;
    readonly shouldDisplay: boolean;
    readonly noMetadata: boolean;
    readonly pageBreakMarkers: boolean;
    readonly aria: boolean;
    readonly audioDescriptions: boolean;
    readonly braille: boolean;
    readonly rubyAnnotations: boolean;
    readonly fullRubyAnnotations: boolean;
    readonly highAudioContrast: boolean;
    readonly highDisplayContrast: boolean;
    readonly largePrint: boolean;
    readonly signLanguage: boolean;
    readonly tactileGraphics: boolean;
    readonly tactileObjects: boolean;
    readonly textToSpeechHinting: boolean;
    readonly statements: AccessibilityDisplayStatement[];
    private constructor();
    static fromPublication(publication: Publication): AdditionalInformation;
}
export declare enum HazardType {
    yes = "yes",
    no = "no",
    unknown = "unknown",
    noMetadata = "noMetadata"
}
/**
 * Represents potential hazards in the content
 */
export declare class Hazards implements AccessibilityDisplayField {
    readonly id = "hazards.title";
    readonly title: string;
    readonly shouldDisplay: boolean;
    readonly noMetadata: boolean;
    readonly noHazards: boolean;
    readonly unknown: boolean;
    readonly flashing: HazardType;
    readonly motion: HazardType;
    readonly sound: HazardType;
    readonly statements: AccessibilityDisplayStatement[];
    private constructor();
    static fromPublication(publication: Publication): Hazards;
}
/**
* Represents conformance to accessibility standards
*/
export declare class Conformance implements AccessibilityDisplayField {
    readonly id = "conformance.title";
    readonly title: string;
    readonly shouldDisplay: boolean;
    readonly profiles: AccessibilityProfile[];
    readonly statements: AccessibilityDisplayStatement[];
    private constructor();
    static fromPublication(publication: Publication): Conformance;
}
/**
 * Represents legal exemptions
 */
export declare class Legal implements AccessibilityDisplayField {
    readonly id = "legal-considerations.title";
    readonly title: string;
    readonly shouldDisplay: boolean;
    readonly exemption: boolean;
    readonly statements: AccessibilityDisplayStatement[];
    private constructor();
    static fromPublication(publication: Publication): Legal;
}
/**
* Represents the accessibility summary
*/
export declare class AccessibilitySummary implements AccessibilityDisplayField {
    readonly id = "accessibility-summary.title";
    readonly title: string;
    readonly shouldDisplay: boolean;
    readonly statements: AccessibilityDisplayStatement[];
    private constructor();
    static fromPublication(publication: Publication): AccessibilitySummary;
}
/**
 * Main accessibility metadata display guide
 */
export declare class AccessibilityMetadataDisplayGuide {
    readonly waysOfReading: WaysOfReading;
    readonly navigation: Navigation;
    readonly richContent: RichContent;
    readonly additionalInformation: AdditionalInformation;
    readonly hazards: Hazards;
    readonly conformance: Conformance;
    readonly legal: Legal;
    readonly accessibilitySummary: AccessibilitySummary;
    readonly fields: AccessibilityDisplayField[];
    constructor(publication: Publication);
}
