/// <reference path="../pxtlib.d.ts" />
import * as Blockly from "blockly";
import { BlocksRenderOptions } from "./render";
export interface DiffOptions {
    hideDeletedTopBlocks?: boolean;
    hideDeletedBlocks?: boolean;
    renderOptions?: BlocksRenderOptions;
    statementsOnly?: boolean;
}
export interface DiffResult {
    ws?: Blockly.WorkspaceSvg;
    message?: string;
    error?: any;
    svg?: Element;
    deleted: number;
    added: number;
    modified: number;
}
export declare function needsDecompiledDiff(oldXml: string, newXml: string): boolean;
export declare function diffXml(oldXml: string, newXml: string, options?: DiffOptions): DiffResult;
export declare function mergeXml(xmlA: string, xmlO: string, xmlB: string): string;
export declare function decompiledDiffAsync(oldTs: string, oldResp: pxtc.CompileResult, newTs: string, newResp: pxtc.CompileResult, options?: DiffOptions): DiffResult;
