import { TemporalMixinInterface } from "../../elements/EFTemporal.js";
import { TimelineEditingContext } from "./timelineEditingContext.js";
import * as lit38 from "lit";
import { LitElement, PropertyValues, TemplateResult, nothing } from "lit";

//#region src/gui/timeline/EFTimelineRow.d.ts
declare const EFTimelineRow_base: typeof LitElement;
/**
 * EFTimelineRow - A unified timeline row containing both label and track
 *
 * This component renders a single row in the timeline with:
 * - A sticky label on the left (stays fixed during horizontal scroll)
 * - Track content on the right (scrolls horizontally with the timeline)
 *
 * Heights are determined by content, not hardcoded.
 */
declare class EFTimelineRow extends EFTimelineRow_base {
  static styles: lit38.CSSResult[];
  element: TemporalMixinInterface & Element;
  depth: number;
  pixelsPerMs: number;
  enableTrim: boolean;
  hideLabel: boolean;
  hideSelectors?: string[];
  showSelectors?: string[];
  /**
   * The currently highlighted element from canvas (source of truth).
   * Passed from parent timeline which reads it from canvas.
   */
  highlightedElement: Element | null;
  selectedIds: ReadonlySet<string>;
  editingContext?: TimelineEditingContext;
  private get isHovered();
  private get isSelected();
  private get isAncestorSelected();
  private get isAncestorHovered();
  private get isDescendantHovered();
  protected updated(changedProperties: PropertyValues): void;
  private handleMouseEnter;
  private handleMouseLeave;
  private handleClick;
  private getElementType;
  private getElementIcon;
  private getElementLabel;
  /**
   * Get additional detail text for the label (mode, preview, etc.)
   */
  private getElementDetail;
  private renderTrack;
  connectedCallback(): void;
  disconnectedCallback(): void;
  render(): TemplateResult<1> | typeof nothing;
}
declare global {
  interface HTMLElementTagNameMap {
    "ef-timeline-row": EFTimelineRow;
  }
}
//# sourceMappingURL=EFTimelineRow.d.ts.map