<?php



/*

 * This file is part of the Prophecy.

 * (c) Konstantin Kudryashov <ever.zet@gmail.com>

 *     Marcello Duarte <marcello.duarte@gmail.com>

 *

 * For the full copyright and license information, please view the LICENSE

 * file that was distributed with this source code.

 */



namespace Prophecy\Promise;



use Prophecy\Prophecy\ObjectProphecy;

use Prophecy\Prophecy\MethodProphecy;



/**

 * Promise interface.

 * Promises are logical blocks, tied to `will...` keyword.

 *

 * @author Konstantin Kudryashov <ever.zet@gmail.com>

 */

interface PromiseInterface

{

    /**

     * Evaluates promise.

     *

     * @param array          $args

     * @param ObjectProphecy $object

     * @param MethodProphecy $method

     *

     * @return mixed

     */

    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method);

}

