import { Action } from './action';
import { Match } from './match';
import { Operation } from './operation';
import { Token } from './tokenizer';
import type { Marker, Options } from './types';
export declare class Diffblazer {
    private oldText;
    private newText;
    private content;
    private specialTagDiffStack;
    private newTokens;
    private oldTokens;
    private matchGranularity;
    private options;
    constructor(oldText: string, newText: string, options?: Partial<Options>);
    build(): string;
    tokenizeInputs(): void;
    performOperation(opp: Operation): void;
    processReplaceOperation(opp: Operation): void;
    processInsertOperation(opp: Operation, marker: Marker): void;
    processDeleteOperation(opp: Operation, marker: Marker): void;
    processEqualOperation(opp: Operation): void;
    markDifference(marker: Marker, tokens: Token[], action: Action): void;
    extractConsecutiveTokens(tokens: Token[], condition: (value: Token) => boolean): Token[];
    operations(): Operation[];
    removeOrphans(matches: Match[]): Generator<Match | null, void, unknown>;
    matchingBlocks(): Match[];
    findMatchingBlocks(startInOld: number, endInOld: number, startInNew: number, endInNew: number, matchingBlocks: Match[]): void;
    findMatch(startInOld: number, endInOld: number, startInNew: number, endInNew: number): Match | null;
}
export declare function diff(oldHtml: string, newHtml: string, options?: Partial<Options>): string;
