import { ControllableInterface } from "./Controllable.js";
import * as lit19 from "lit";
import { LitElement } from "lit";
import * as lit_html18 from "lit-html";

//#region src/gui/EFScrubber.d.ts
declare const EFScrubber_base: (new (...args: any[]) => {
  target: string;
  targetElement: ControllableInterface | null;
  effectiveContext: ControllableInterface | null;
}) & typeof LitElement;
declare class EFScrubber extends EFScrubber_base {
  static styles: lit19.CSSResult[];
  playing: boolean;
  contextCurrentTimeMs: number;
  contextDurationMs: number;
  orientation: "horizontal" | "vertical";
  currentTimeMs: number;
  durationMs: number;
  zoomScale: number;
  containerWidth: number;
  fps?: number;
  rawScrubTimeMs?: number | null;
  scrollContainerRef?: {
    current: HTMLElement | null;
  };
  /**
   * Reference to the element that represents the actual track content area.
   * Used to calculate the offset between the scroll container and where tracks begin.
   */
  trackContentRef?: {
    current: HTMLElement | null;
  };
  onSeek?: (time: number) => void;
  isScrubbingRef?: {
    current: boolean;
  };
  get context(): ControllableInterface | null;
  get effectiveCurrentTimeMs(): number;
  get effectiveDurationMs(): number;
  get isTimelineMode(): boolean;
  private scrubProgress;
  private isMoving;
  private scrubberRef;
  private _scrubberElement?;
  private capturedPointerId;
  private updateProgress;
  private handlePointerDown;
  private boundHandlePointerMove;
  private boundHandlePointerUp;
  private boundHandlePointerCancel;
  private boundHandleContextMenu;
  render(): lit_html18.TemplateResult<1>;
  connectedCallback(): void;
  disconnectedCallback(): void;
}
declare global {
  interface HTMLElementTagNameMap {
    "ef-scrubber": EFScrubber;
  }
}
//#endregion
export { EFScrubber };
//# sourceMappingURL=EFScrubber.d.ts.map