import { TemporalMixinInterface } from "./EFTemporal.js";
import { EFTextSegment } from "./EFTextSegment.js";
import * as lit4 from "lit";
import { LitElement, PropertyValueMap } from "lit";
import * as lit_html4 from "lit-html";

//#region src/elements/EFText.d.ts
type SplitMode = "line" | "word" | "char";
declare const EFText_base: (new (...args: any[]) => TemporalMixinInterface) & typeof LitElement;
declare class EFText extends EFText_base {
  #private;
  static styles: lit4.CSSResult[];
  split: SplitMode;
  private validateSplit;
  staggerMs?: number;
  private validateStagger;
  easing: string;
  private mutationObserver?;
  private animationObserver?;
  private lastTextContent;
  private _textContent;
  private _templateElement;
  private _segmentsReadyResolvers;
  render(): lit_html4.TemplateResult<1>;
  set textContent(value: string | null);
  get textContent(): string;
  /**
   * Get all ef-text-segment elements directly
   * @public
   */
  get segments(): EFTextSegment[];
  /**
   * Returns a promise that resolves when segments are ready (created and connected)
   * Use this to wait for segments after setting textContent or other properties
   * @public
   */
  whenSegmentsReady(): Promise<EFTextSegment[]>;
  connectedCallback(): void;
  disconnectedCallback(): void;
  protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
  private setupMutationObserver;
  private setupAnimationObserver;
  private propagateAnimationToSegments;
  private getTextContent;
  private splitText;
  private detectWordBoundaries;
  private splitTextIntoSegments;
  get intrinsicDurationMs(): number | undefined;
}
declare global {
  interface HTMLElementTagNameMap {
    "ef-text": EFText;
  }
}
//#endregion
export { EFText };
//# sourceMappingURL=EFText.d.ts.map