/**
 * The type of object we want to compare
 */
export declare type SimilarObject = Record<string, any>;
/**
 * The configuration object for comparing
 *
 * @example
 * const config = { price: 2, rooms: 3, area: 1 }
 */
export declare type SimilarConfig<T> = {
    [K in T as string]: number;
};
/**
 *
 * @param a current item
 * @param b item to compare to
 * @param config an object containing all the keys you want to compare and their weights
 * @returns a number that is the sum of each comparison
 *
 * @example
 *   const unit1: Unit = { price: 1000, rooms: 3, area: 100 };
 *   const unit2: Unit = { price: 1000, rooms: 5, area: 50 };
 *   const config: SimilarConfig<Unit> = { price: 1, rooms: 2 };
 *   const score = similarObject(unit1, unit2, config);
 *
 *
 */
export declare function similarObject<T extends SimilarObject, C extends SimilarConfig<T>>(a: T, b: T, config: C): number;
