* @implements Enumerable */ class Collection implements \ArrayAccess, Enumerable { /** * @param callable|null $callback * @param mixed $default * @return TValue|null */ public function first(callable $callback = null, $default = null){} /** * @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() {} /** * @param callable(TValue, TKey): (void|bool) $callable * @return static */ public function each($callable) {} /** * @template TReturn * @param callable(TValue, TKey): TReturn $callable * @return static */ public function map($callable) {} /** * Run a grouping map over the items. * * The callback should return an associative array with a single key/value pair. * * @template TMapToGroupsKey of array-key * @template TMapToGroupsValue * * @param callable(TValue, TKey): array $callback * @return static> */ public function mapToGroups(callable $callback) {} /** * @param array|string|callable(TValue, TKey): mixed $groupBy * @param bool $preserveKeys * @return static> */ public function groupBy($groupBy, $preserveKeys = false); /** * @template TClass * @param class-string $class * @return static */ public function mapInto($class); /** * @template TReturn * @param callable(TValue, TKey): (array|\Illuminate\Support\Enumerable) $callback * @return static */ public function flatMap(callable $callback) {} /** * @template TReturn * @param callable(TValue ...$values): TReturn $callback * @return static */ public function mapSpread(callable $callback) {} /** * @param int $number * @param null|callable(int, int): mixed $callback * @return static */ public static function times($number, callable $callback = null) {} /** * @param string|array $value * @param string|null $key * @return static */ public function pluck($value, $key = null) {} /** * @return TValue */ public function pop() {} /** * Push one or more items onto the end of the collection. * * @param TValue ...$values * @return static */ public function push(...$values) {} /** * Put an item in the collection by key. * * @param TKey $key * @param TValue $value * @return static */ public function put($key, $value) {} }