import { TimelineState } from "../timelineStateContext.js";
import { PreviewSettings } from "../../previewSettingsContext.js";
import * as lit36 from "lit";
import { LitElement } from "lit";
import * as lit_html33 from "lit-html";

//#region src/gui/timeline/tracks/EFThumbnailStrip.d.ts
declare const EFThumbnailStrip_base: typeof LitElement;
/**
 * Thumbnail strip component that renders thumbnails for video or timegroup elements.
 *
 * Features:
 * - Targets ef-video or root ef-timegroup via target attribute
 * - Batch video thumbnail extraction via ThumbnailExtractor
 * - Canvas rendering for timegroups at low resolution
 * - Viewport-based lazy loading with scroll calculation
 * - Fixed visual spacing (consistent at all zoom levels)
 * - Error indicators for failed thumbnails
 */
declare class EFThumbnailStrip extends EFThumbnailStrip_base {
  #private;
  static styles: lit36.CSSResult[];
  target: string;
  targetElement: Element | null;
  thumbnailHeight: number;
  thumbnailSpacingPx: number;
  pixelsPerMs: number | null;
  useIntrinsicDuration: boolean;
  timelineState?: TimelineState;
  previewSettings?: PreviewSettings;
  thumbnailDimensions: {
    width: number;
    height: number;
  };
  _isLoadingThumbnails: boolean;
  /**
   * Check if target is valid (EFVideo or root EFTimegroup)
   */
  get isValidTarget(): boolean;
  connectedCallback(): void;
  disconnectedCallback(): void;
  protected willUpdate(changedProperties: Map<string | number | symbol, unknown>): void;
  updated(changedProperties: Map<string | number | symbol, unknown>): void;
  render(): lit_html33.TemplateResult<1>;
}
declare global {
  interface HTMLElementTagNameMap {
    "ef-thumbnail-strip": EFThumbnailStrip;
  }
}
//#endregion
export { EFThumbnailStrip };
//# sourceMappingURL=EFThumbnailStrip.d.ts.map