import { ObjectManager } from "../../ObjectManager"; import { MarkupAnnotation, type MarkupAnnotationProperties } from "./MarkupAnnotation"; import { SoundObject } from "../SoundObject"; import type { SoundObjectProperties } from "../SoundObject"; /** * Specifies the predefined icons used by {@link SoundAnnotation}. */ export type SoundAnnotationIcon = "Speaker" | "Mic" | "Ear"; /** * Defines properties of a {@link SoundAnnotation}. */ export type SoundAnnotationProperties = MarkupAnnotationProperties & { type: "sound"; /** * The string specifying the name of an icon used to display the annotation. * * The PDF specification provides a predefined set of icons: * "Speaker", "Mic" or "Ear". */ icon?: SoundAnnotationIcon; /** * The {@link SoundObject} or {@link SoundObjectProperties} defining the sound to be played when the annotation is activated. */ sound?: SoundObject | SoundObjectProperties; }; /** * The {@link SoundAnnotation} is analogous to a text annotation except that instead of a text note, * it contains sound recorded from the computer's microphone or imported from a file. */ export declare class SoundAnnotation extends MarkupAnnotation { /** * Creates a new {@link SoundAnnotation}. * * @param om - {@link ObjectManager} that controls the lifetime of the {@link SoundAnnotation}. */ constructor(om: ObjectManager); /** * Creates a new {@link SoundAnnotation}. */ constructor(); /** * Gets or sets a string specifying the name of an icon used to display the annotation. * * The PDF specification provides a predefined set of icons: * "Speaker", "Mic" or "Ear". */ get icon(): string; /** * Gets or sets a string specifying the name of an icon used to display the annotation. * * The PDF specification provides a predefined set of icons: * "Speaker", "Mic" or "Ear". */ set icon(value: SoundAnnotationIcon); /** * Gets or sets a {@link SoundObject} defining the sound to be played when the annotation is activated. */ get sound(): SoundObject | null; /** * Gets or sets a {@link SoundObject} defining the sound to be played when the annotation is activated. */ set sound(value: SoundObject | SoundObjectProperties | null); }