export default class Model extends Disposable {
    /**
     * @param {string[]} propertyNames
     * @param {object=} propertyObservers
     * @param {object=} equalityPredicates
     */
    constructor(propertyNames: string[], propertyObservers?: object | undefined, equalityPredicates?: object | undefined);
    /**
     * @public
     */
    public beginTransaction(): void;
    /**
     * @public
     */
    public endTransaction(): void;
    /**
     * @protected
     * @param {object} transactionData
     */
    protected _formatTransactionData(transactionData: object): void;
    /**
     * @public
     * @param {Function} processor
     */
    public executeTransaction(processor: Function): void;
    /**
     * @public
     * @param {Function} observer
     * @returns {*}
     */
    public onTransactionCommitted(observer: Function): any;
    /**
     * @public
     */
    public startTracker(): void;
    /**
     * @public
     * @returns {object|null}
     */
    public resetTracker(): object | null;
    /**
     * @public
     */
    public stopTracking(): void;
    /**
     * @public
     * @returns {object}
     */
    public getSnapshot(): object;
    #private;
}
import Disposable from './../lang/Disposable.js';
