import { AbstractCommand } from '../AbstractCommand';
import { Document } from '../../core/models/Document';
import { NodePath } from '../../core/models/NodePath';
/**
 * A command used to modify the simple property of a node.  Should not be used
 * to modify complex (object) properties, only simple property types like
 * string, boolean, number, etc.
 *
 * @author eric.wittmann@gmail.com
 * @extends AbstractCommand
 * @class
 */
export declare class ChangePropertyCommand<T> extends AbstractCommand {
    _nodePath: NodePath;
    _property: string;
    _newValue: T;
    _oldValue: T;
    constructor(node?: any, property?: any, newValue?: any);
    /**
     * @see io.apicurio.datamodels.cmd.ICommand#execute(io.apicurio.datamodels.core.models.Document)
     * @param {Document} document
     */
    execute(document: Document): void;
    /**
     *
     * @param {Document} document
     */
    undo(document: Document): void;
}
