* @implements Enumerable */ class Collection implements \ArrayAccess, Enumerable { /** * The items contained in the collection. * * @var array */ protected $items = []; /** * Create a new collection. * * @param array $items * @return void */ public function __construct($items = []) {} /** * @param callable|null $callback * @param mixed $default * @return TValue|null */ public function first(callable $callback = null, $default = null){} /** * @return static */ public function flip(){} /** * @param callable|null $callback * @param mixed $default * @return TValue|null */ public function last(callable $callback = null, $default = null){} /** * @param mixed $key * @param mixed $default * @return TValue|null */ public function get($key, $default = null) {} /** * @return TValue|null */ public function pop() {} /** * @param mixed $key * @param mixed $default * @return TValue|null */ public function pull($key, $default = null) {} /** * @param mixed $value * @param bool $strict * @return TKey|false */ public function search($value, $strict = false) {} /** * @return TValue|null */ public function shift() {} /** * @return array */ public function all() {} /** * @param TKey $key * @param TValue $value * @return $this */ public function put($key, $value) {} }