1:  2:  3:  4:  5:  6:  7:  8:  9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 
<?php
namespace LeanCloud\Operation;
/**
 * Operation Interface
 */
interface IOperation {
    /**
     * Encode to JSON represented operation
     *
     * @return array
     */
    public function encode();
    /**
     * Apply this operation on an old value
     *
     * @param mixed $oldval
     * @return mixed
     */
    public function applyOn($oldval);
    /**
     * Merge this operation into a (previous) operation
     *
     * @param IOperation $prevOp
     * @return IOperation
     */
    public function mergeWith($prevOp);
}