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
*
*
*
*
*
* ```
*
* @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 {};