export interface BaseDiff {
    diff: boolean;
    error?: string;
}
export interface ValueDiff extends BaseDiff {
    value: any;
}
export interface ExpectedDiff extends ValueDiff {
    diff: true;
    expected: any;
}
export interface ExtraValueDiff extends BaseDiff {
    diff: true;
    extra: any;
}
export interface MissingValueDiff extends BaseDiff {
    diff: true;
    missing: any;
}
export interface ObjectDiff extends ValueDiff {
    diff: boolean;
    props?: Record<string, Diff>;
    values?: Diff[];
    mappings?: [any, Diff][];
}
export type Diff = ValueDiff | ExpectedDiff | ObjectDiff | ExtraValueDiff | MissingValueDiff;
export declare function diff(actual: any, expected: any, strict?: boolean): Diff;
