import type { GsapHandle } from '../core/gsap-detect'; export type SplitMode = 'words' | 'chars' | 'lines'; export interface SplitConfig { mode: SplitMode; /** When set, animation tools should group units by line (e.g. "lines-chars"). */ groupBy?: 'lines'; mask: boolean; /** When set, each split unit gets an inline `--char` / `--word` / `--line` CSS variable (1-based) for CSS-driven stagger. */ index: boolean; } export interface SplitResult { mode: SplitMode; words: HTMLElement[]; chars: HTMLElement[]; lines: HTMLElement[]; revert: () => void; } export declare function parseSplit(value: string | undefined): SplitConfig | null; interface ApplyOptions { /** When true, wrap each line in an `overflow: clip` wrapper. Per-char/word masks aren't useful for slide animations — the wrapper would trap the moving unit. */ mask?: boolean; /** When true, expose 1-based `--char` / `--word` / `--line` CSS variables on each split unit for CSS-driven stagger. */ index?: boolean; /** * Called when SplitText auto-re-splits (e.g. the viewport resizes within a * breakpoint and line wrapping changes). The original `.aa-char`/`.aa-line` * DOM nodes are replaced by fresh ones, so any GSAP tween still pointing at * the old nodes silently animates orphaned elements. Callers should use * this hook to tear down the previous tween/trigger and rebuild against * the new SplitResult. * * NOT fired on the initial split — use the synchronous return value of * `applySplit()` for first-time setup. */ onResplit?: (split: SplitResult) => void; } export declare function applySplit(element: Element, mode: SplitMode, gsapHandle: GsapHandle | null, opts?: ApplyOptions): SplitResult; export {}; //# sourceMappingURL=runtime.d.ts.map