export interface BaseCompareOptions { compare: (left: TLeft, right: TRight) => number; onMissingInLeft?: (right: TRight) => void; onMissingInRight?: (left: TLeft) => void; onMatch?: (left: TLeft, right: TRight) => void; } export interface CompareListsOptions extends BaseCompareOptions { left: Iterable; right: Iterable; } export interface CompareListsReport { missingInLeft: TRight[]; missingInRight: TLeft[]; matches: [TLeft, TRight][]; } export declare function compareLists(options: CompareListsOptions): void; export declare function compareLists(options: CompareListsOptions & { returnReport: true; }): CompareListsReport; export interface CompareIteratorsOptions extends BaseCompareOptions { left: Iterator; right: Iterator; } export declare function compareIterators(options: CompareIteratorsOptions): void; export declare function compareIterators(options: CompareIteratorsOptions & { returnReport: true; }): CompareListsReport;