import { SelectionContext } from "../../canvas/selection/selectionContext.js";
import { EFAudio } from "../../elements/EFAudio.js";
import { EFVideo } from "../../elements/EFVideo.js";
import { EFTimegroup } from "../../elements/EFTimegroup.js";
import { EFImage } from "../../elements/EFImage.js";
import { HierarchyContext } from "./hierarchyContext.js";
import * as lit12 from "lit";
import { LitElement, PropertyValues, TemplateResult, nothing } from "lit";

//#region src/gui/hierarchy/EFHierarchyItem.d.ts
declare const EFHierarchyItem_base: typeof LitElement;
declare class EFHierarchyItem<ElementType extends HTMLElement = HTMLElement> extends EFHierarchyItem_base {
  static styles: lit12.CSSResult[];
  hierarchyContext?: HierarchyContext;
  canvasSelectionContext?: SelectionContext;
  element: ElementType;
  hideSelectors?: string[];
  showSelectors?: string[];
  temporalOnly: boolean;
  private localExpanded;
  private selectionChangeHandler?;
  get elementId(): string;
  get icon(): TemplateResult<1> | string;
  get typeColor(): string;
  get isFocused(): boolean;
  get isSelected(): boolean;
  get isAncestorSelected(): boolean;
  get isExpanded(): boolean;
  get isDragging(): boolean;
  get isDropTarget(): boolean;
  get dropPosition(): "before" | "after" | "inside" | null;
  get hasChildren(): boolean;
  displayLabel(): TemplateResult<1> | string | typeof nothing;
  private handleClick;
  private handleExpandClick;
  private handleDragStart;
  private handleDragEnd;
  private handleDragOver;
  private handleDragLeave;
  private handleDrop;
  private handleMouseEnter;
  private handleMouseLeave;
  connectedCallback(): void;
  disconnectedCallback(): void;
  protected willUpdate(changedProperties: PropertyValues): void;
  private setupSelectionListener;
  private removeSelectionListener;
  render(): TemplateResult<1>;
  renderChildren(): Array<TemplateResult<1> | typeof nothing> | typeof nothing;
}
declare class EFTimegroupHierarchyItem extends EFHierarchyItem<EFTimegroup> {
  get icon(): TemplateResult<1>;
  get typeColor(): string;
  displayLabel(): string | TemplateResult<1> | typeof nothing;
}
declare class EFAudioHierarchyItem extends EFHierarchyItem<EFAudio> {
  get icon(): TemplateResult<1>;
  get typeColor(): string;
  displayLabel(): string;
}
declare class EFVideoHierarchyItem extends EFHierarchyItem<EFVideo> {
  get icon(): TemplateResult<1>;
  get typeColor(): string;
  displayLabel(): string;
}
declare class EFCaptionsHierarchyItem extends EFHierarchyItem {
  get icon(): TemplateResult<1>;
  get typeColor(): string;
  displayLabel(): string;
}
declare class EFCaptionsActiveWordHierarchyItem extends EFHierarchyItem {
  get icon(): TemplateResult<1>;
  get typeColor(): string;
  displayLabel(): string;
}
declare class EFTextHierarchyItem extends EFHierarchyItem {
  get icon(): TemplateResult<1>;
  get typeColor(): string;
  get hasChildren(): boolean;
  displayLabel(): string;
  renderChildren(): typeof nothing;
}
declare class EFTextSegmentHierarchyItem extends EFHierarchyItem {
  get icon(): TemplateResult<1>;
  get typeColor(): string;
  displayLabel(): string;
}
declare class EFWaveformHierarchyItem extends EFHierarchyItem {
  get icon(): TemplateResult<1>;
  get typeColor(): string;
  renderChildren(): typeof nothing;
}
declare class EFImageHierarchyItem extends EFHierarchyItem<EFImage> {
  get icon(): TemplateResult<1>;
  get typeColor(): string;
  displayLabel(): string;
}
declare class EFHTMLHierarchyItem extends EFHierarchyItem {
  get icon(): TemplateResult<1>;
}
declare global {
  interface HTMLElementTagNameMap {
    "ef-hierarchy-item": EFHierarchyItem;
    "ef-timegroup-hierarchy-item": EFTimegroupHierarchyItem;
    "ef-audio-hierarchy-item": EFAudioHierarchyItem;
    "ef-video-hierarchy-item": EFVideoHierarchyItem;
    "ef-captions-hierarchy-item": EFCaptionsHierarchyItem;
    "ef-captions-active-word-hierarchy-item": EFCaptionsActiveWordHierarchyItem;
    "ef-text-hierarchy-item": EFTextHierarchyItem;
    "ef-text-segment-hierarchy-item": EFTextSegmentHierarchyItem;
    "ef-waveform-hierarchy-item": EFWaveformHierarchyItem;
    "ef-image-hierarchy-item": EFImageHierarchyItem;
    "ef-html-hierarchy-item": EFHTMLHierarchyItem;
  }
}
//#endregion
export { EFAudioHierarchyItem, EFCaptionsActiveWordHierarchyItem, EFCaptionsHierarchyItem, EFHTMLHierarchyItem, EFHierarchyItem, EFImageHierarchyItem, EFTextHierarchyItem, EFTextSegmentHierarchyItem, EFTimegroupHierarchyItem, EFVideoHierarchyItem, EFWaveformHierarchyItem };
//# sourceMappingURL=EFHierarchyItem.d.ts.map