import "./configureLottie.cjs";
import { LottieDirection, LottieRenderer, LottieSubscriptions, RendererRows } from "./types.cjs";
//#region src/animation/useLottieAnimation.d.ts
/** The options both public hooks take. */
interface UseLottieOptions<Renderer extends LottieRenderer = typeof LottieRenderer.svg> {
  /**
   * Where the animation comes from: a path or URL to fetch, or the parsed
   * animation itself.
   *
   * Changing it loads a new animation, which is compared by content, so an
   * object written inline at the call site is safe.
   */
  src: string | object;
  /** Which renderer draws it. Load-time; changing it reloads. */
  renderer?: Renderer;
  /** Settings for the chosen renderer. Load-time; changing it reloads. */
  rendererSettings?: RendererRows[Renderer]["settings"];
  /**
   * `false` for none, `true` for forever, or a number of repeats. Reactive,
   * and a change counts from itself: a new number means that many repeats
   * from now.
   */
  loop?: boolean | number;
  /** Playback rate, where `1` is the animation's own speed. Reactive. */
  speed?: number;
  /** Which way it plays. Reactive. */
  direction?: LottieDirection;
  /** Whether it starts on its own. Load-time. */
  autoplay?: boolean;
  /** The frame range to play, as `[first, last]`. Load-time. */
  segment?: readonly [number, number];
  /** Where the animation's images live, if they are not beside it. Load-time. */
  assetsPath?: string;
  /** Traces the load lifecycle to the console. Off by default. */
  debug?: boolean;
  /** Handlers called as the animation reports things. */
  subscriptions?: Partial<LottieSubscriptions>;
}
//#endregion
export { UseLottieOptions };