import { PropertyValues } from "lit"; import { ChromeTemplate } from "../../mixins/chrome/types"; export declare enum AnnotationTagStyle { HIDDEN = "hidden", EDGE = "edge", SPECTROGRAM_TOP = "spectrogram-top" } declare const AnnotateComponent_base: import("../../helpers/types/mixins").Component & { tagName: string; }; /** * @description * Creates an annotation surface that can render annotations * * This component must wrap an element that implements the ChromeHost mixin * * @example * ```html * * * * * * * Koala * * A picture of a kookaburra * * * * ``` * * @fires oe-annotation-created * @fires oe-annotation-removed * @fires oe-annotation-selected * @fires oe-annotation-deselected * @fires oe-annotation-changed * * @fires oe-annotation-updating (not implemented) * @fires oe-annotation-updated (not implemented) * * @csspart annotation-bounding-box - The "box part" of the annotation. E.g. The "green" square around the event. * @csspart annotation-label - Selector for the annotation label * * @cssproperty [--oe-annotation-color] * @cssproperty [--oe-annotation-font-color] * @cssproperty [--oe-annotation-weight] * @cssproperty [--oe-annotation-selected-color] * * @slot - A spectrogram element to add annotations to */ export declare class AnnotateComponent extends AnnotateComponent_base { static styles: import("lit").CSSResult; /** * Changes how to labels are displayed on annotations. * * `hidden` - All tag content/labels will be hidden. Annotation bounding boxes will still be shown. * `edge` - The tag content/labels will be shown on the edge of the associated bounding box * `spectrogram-top` - The tag content/labels will be shown above the spectrogram. */ tagStyle: AnnotationTagStyle; /** * Makes all annotations readonly * (not currently implemented; all annotations are readonly) * * @default true */ readonly: boolean; private annotationsSurface; private spectrogram?; private annotationElements?; private readonly topChromeHeight; private labelElements; private templateTagElements; private unitConverter?; private tagOverflowObserver?; private readonly annotationUpdateEventHandler; private get labelRefs(); private get instantiatedLabelRefs(); private get annotationModels(); connectedCallback(): void; disconnectedCallback(): void; firstUpdated(change: PropertyValues): void; chromeRendered(): void; protected handleSlotChange(): void; private handleAnnotationUpdate; private handleSpectrogramUpdate; private appendTagLabelRefs; private measureLabelHeight; private shouldCullAnnotation; private spectrogramTopLabelTemplate; private tagLabelTemplate; private edgeLabelStyles; private topLeftLabelStyles; private bottomRightLabelStyles; private inlineLabelStyles; private leftEdgeLabelStyles; /** * Uses some basic heuristics to determine what label positions are likely * not to fit this is useful for reducing the number of label re-positions * during renders */ private approximateLabelPosition; private handleLabelIntersection; private tryNextLabelPosition; private edgeLabelTemplate; private annotationTemplate; chromeOverlay(): ChromeTemplate; chromeTop(): ChromeTemplate; } declare global { interface HTMLElementTagNameMap { "oe-annotate": AnnotateComponent; } } export {};