/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import * as ops from "./ops";
export interface MapLike<T> {
    [index: string]: T;
}
export declare type PropertySet = MapLike<any>;
export interface IConsensusValue {
    seq: number;
    value: any;
}
export declare function combine(combiningInfo: ops.ICombiningOp, currentValue: any, newValue: any, seq?: number): any;
export declare function matchProperties(a: PropertySet | undefined, b: PropertySet | undefined): boolean;
export declare function extend<T>(base: MapLike<T>, extension: MapLike<T> | undefined, combiningOp?: ops.ICombiningOp, seq?: number): MapLike<T>;
export declare function clone<T>(extension: MapLike<T> | undefined): MapLike<T> | undefined;
export declare function addProperties(oldProps: PropertySet | undefined, newProps: PropertySet, op?: ops.ICombiningOp, seq?: number): PropertySet;
export declare function extendIfUndefined<T>(base: MapLike<T>, extension: MapLike<T> | undefined): MapLike<T>;
export declare function createMap<T>(): MapLike<T>;
//# sourceMappingURL=properties.d.ts.map