import { ActionType, DiffMeta, DiffType } from 'api-smart-diff'; export declare const metaKey = "$diff"; export declare const diffTypes: DiffType[]; export type TokenTag = "before" | "after" | "empty" | "collapsed" | "expanded"; export type TokenType = "key" | "index" | "value" | "spec" | DiffType; export type LineDiff = { type: DiffType; action: ActionType; }; export declare class Token { tags: TokenTag[]; type: TokenType; value: string; constructor(type: TokenType, value: string, tags?: TokenTag[] | TokenTag); static Key(value: string, tags?: TokenTag | TokenTag[]): Token; static Index(value: string, tags?: TokenTag | TokenTag[]): Token; static Value(value: string, tags?: TokenTag | TokenTag[]): Token; /** Token pool for common spec tokens to reduce GC pressure */ private static readonly _pool; static Spec(value: string, tags?: TokenTag | TokenTag[]): Token; static Change(count: number, changeIndex: number, tags?: TokenTag | TokenTag[]): Token; cond(value: TokenTag | TokenTag[], cond?: boolean): Token; } export declare class DiffLineData { index: number; indent: number; tokens: Token[]; diff?: DiffMeta; constructor(index: number, indent: number, tokens: Token[], diff?: DiffMeta); } export declare class DiffBlockData extends DiffLineData { id: string; children: DiffBlockData[]; diffs: number[]; lines: number; get nextLine(): number; constructor(index: number, indent: number, tokens: Token[], diff?: DiffMeta, id?: string); addDiff(diff: DiffMeta): void; addBlock(block: DiffBlockData): void; }