<?php //5f3f054cb5e1b4a9f50d6b6e12e1c300b3f11ce215ef10e628182aea8ac5eb29
/** @noinspection all */

namespace LaravelIdea\Helper {

    use Illuminate\Contracts\Support\Arrayable;
    use Illuminate\Database\Concerns\BuildsQueries;
    use Illuminate\Database\ConnectionInterface;
    use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Database\Query\Builder;
    use Illuminate\Database\Query\Expression;
    
    /**
     * @method $this select(array|mixed $columns = ['*'], ...$arguments)
     * @method $this addSelect(array|mixed $column, ...$arguments)
     * @method $this whereIn(string $column, $values, string $boolean = 'and', bool $not = false)
     * @method $this whereJsonLength(string $column, $operator, $value = null, string $boolean = 'and')
     * @method $this orWhereExists(\Closure $callback, bool $not = false)
     * @method $this orWhereNotIn(string $column, $values)
     * @method $this truncate()
     * @method $this selectRaw(string $expression, array $bindings = [])
     * @method int insertOrIgnore(array $values)
     * @method $this lock(bool|string $value = true)
     * @method $this join(string $table, \Closure|string $first, null|string $operator = null, null|string $second = null, string $type = 'inner', bool $where = false)
     * @method $this unionAll(\Closure|Builder $query)
     * @method $this whereMonth(string $column, string $operator, \DateTimeInterface|null|string $value = null, string $boolean = 'and')
     * @method $this having(string $column, null|string $operator = null, null|string $value = null, string $boolean = 'and')
     * @method $this orWhereNull(string $column)
     * @method $this whereNested(\Closure $callback, string $boolean = 'and')
     * @method $this joinWhere(string $table, \Closure|string $first, string $operator, string $second, string $type = 'inner')
     * @method $this orWhereJsonContains(string $column, $value)
     * @method $this orderBy(string $column, string $direction = 'asc')
     * @method Expression raw($value)
     * @method $this orWhereRowValues(array $columns, string $operator, array $values)
     * @method $this each(callable $callback, int $count = 1000)
     * @method $this setBindings(array $bindings, string $type = 'where')
     * @method $this orWhereJsonLength(string $column, $operator, $value = null)
     * @method $this whereRowValues(array $columns, string $operator, array $values, string $boolean = 'and')
     * @method $this useWritePdo()
     * @method $this orWhereNotExists(\Closure $callback)
     * @method $this orWhereIn(string $column, $values)
     * @method $this newQuery()
     * @method $this rightJoinSub(\Closure|Builder|string $query, string $as, \Closure|string $first, null|string $operator = null, null|string $second = null)
     * @method $this crossJoin(string $table, \Closure|null|string $first = null, null|string $operator = null, null|string $second = null)
     * @method $this orderByDesc(string $column)
     * @method mixed average(string $column)
     * @method $this orWhereNotNull(string $column)
     * @method $this getProcessor()
     * @method $this skip(int $value)
     * @method int|mixed sum(string $column)
     * @method $this havingRaw(string $sql, array $bindings = [], string $boolean = 'and')
     * @method $this leftJoinWhere(string $table, \Closure|string $first, string $operator, string $second)
     * @method $this getRawBindings()
     * @method $this orWhereColumn(array|string $first, null|string $operator = null, null|string $second = null)
     * @method mixed min(string $column)
     * @method $this hasMacro(string $name)
     * @method $this whereNotExists(\Closure $callback, string $boolean = 'and')
     * @method $this whereIntegerInRaw(string $column, array|Arrayable $values, string $boolean = 'and', bool $not = false)
     * @method $this whereDay(string $column, string $operator, \DateTimeInterface|null|string $value = null, string $boolean = 'and')
     * @method $this whereNotIn(string $column, $values, string $boolean = 'and')
     * @method $this whereTime(string $column, string $operator, \DateTimeInterface|null|string $value = null, string $boolean = 'and')
     * @method $this forNestedWhere()
     * @method bool insertUsing(array $columns, \Closure|Builder|string $query)
     * @method $this rightJoinWhere(string $table, \Closure|string $first, string $operator, string $second)
     * @method mixed max(string $column)
     * @method $this whereExists(\Closure $callback, string $boolean = 'and', bool $not = false)
     * @method $this inRandomOrder(string $seed = '')
     * @method $this havingBetween(string $column, array $values, string $boolean = 'and', bool $not = false)
     * @method $this union(\Closure|Builder $query, bool $all = false)
     * @method $this groupBy(...$groups)
     * @method $this orWhereYear(string $column, string $operator, \DateTimeInterface|int|null|string $value = null)
     * @method $this orWhereDay(string $column, string $operator, \DateTimeInterface|null|string $value = null)
     * @method $this joinSub(\Closure|Builder|string $query, string $as, \Closure|string $first, null|string $operator = null, null|string $second = null, string $type = 'inner', bool $where = false)
     * @method $this whereDate(string $column, string $operator, \DateTimeInterface|null|string $value = null, string $boolean = 'and')
     * @method $this whereJsonDoesntContain(string $column, $value, string $boolean = 'and')
     * @method $this forPageAfterId(int $perPage = 15, int|null $lastId = 0, string $column = 'id')
     * @method $this forPage(int $page, int $perPage = 15)
     * @method bool exists()
     * @method $this macroCall(string $method, array $parameters)
     * @method $this selectSub(\Closure|Builder|string $query, string $as)
     * @method BuildsQueries|Model|null|object first(array $columns = ['*'])
     * @method void dd()
     * @method $this whereColumn(array|string $first, null|string $operator = null, null|string $second = null, null|string $boolean = 'and')
     * @method $this numericAggregate(string $function, array $columns = ['*'])
     * @method $this whereNull(array|string $columns, string $boolean = 'and', bool $not = false)
     * @method $this prepareValueAndOperator(string $value, string $operator, bool $useDefault = false)
     * @method $this whereNotBetween(string $column, array $values, string $boolean = 'and')
     * @method ConnectionInterface getConnection()
     * @method $this mergeBindings(Builder $query)
     * @method $this whereIntegerNotInRaw(string $column, array|Arrayable $values, string $boolean = 'and')
     * @method $this orWhereJsonDoesntContain(string $column, $value)
     * @method $this orWhereRaw(string $sql, $bindings = [])
     * @method $this leftJoinSub(\Closure|Builder|string $query, string $as, \Closure|string $first, null|string $operator = null, null|string $second = null)
     * @method $this limit(int $value)
     * @method $this whereJsonContains(string $column, $value, string $boolean = 'and', bool $not = false)
     * @method $this from(string $table)
     * @method int insertGetId(array $values, null|string $sequence = null)
     * @method $this whereBetween(string $column, array $values, string $boolean = 'and', bool $not = false)
     * @method $this mergeWheres(array $wheres, array $bindings)
     * @method $this sharedLock()
     * @method $this orderByRaw(string $sql, array $bindings = [])
     * @method $this tap(callable $callback)
     * @method bool doesntExist()
     * @method $this offset(int $value)
     * @method $this orWhereMonth(string $column, string $operator, \DateTimeInterface|null|string $value = null)
     * @method $this whereNotNull(string $column, string $boolean = 'and')
     * @method int count(string $columns = '*')
     * @method $this orWhereNotBetween(string $column, array $values)
     * @method $this fromRaw(string $expression, $bindings = [])
     * @method $this mixin(object $mixin, bool $replace = true)
     * @method $this take(int $value)
     * @method $this updateOrInsert(array $attributes, array $values = [])
     * @method $this addNestedWhereQuery(Builder $query, string $boolean = 'and')
     * @method $this cloneWithout(array $properties)
     * @method $this rightJoin(string $table, \Closure|string $first, null|string $operator = null, null|string $second = null)
     * @method $this fromSub(\Closure|Builder|string $query, string $as)
     * @method $this leftJoin(string $table, \Closure|string $first, null|string $operator = null, null|string $second = null)
     * @method bool insert(array $values)
     * @method $this distinct(...$arguments)
     * @method $this chunk(int $count, callable $callback)
     * @method $this whereYear(string $column, string $operator, \DateTimeInterface|int|null|string $value = null, string $boolean = 'and')
     * @method $this getCountForPagination(array $columns = ['*'])
     * @method $this aggregate(string $function, array $columns = ['*'])
     * @method $this orWhereDate(string $column, string $operator, \DateTimeInterface|null|string $value = null)
     * @method mixed avg(string $column)
     * @method $this addBinding($value, string $type = 'where')
     * @method $this getGrammar()
     * @method $this lockForUpdate()
     * @method Builder dump()
     * @method string implode(string $column, string $glue = '')
     * @method $this cloneWithoutBindings(array $except)
     * @method $this addWhereExistsQuery(Builder $query, string $boolean = 'and', bool $not = false)
     * @method $this macro(string $name, callable|object $macro)
     * @method $this whereRaw(string $sql, $bindings = [], string $boolean = 'and')
     * @method string toSql()
     * @method $this orHaving(string $column, null|string $operator = null, null|string $value = null)
     * @method $this orHavingRaw(string $sql, array $bindings = [])
     * @method array getBindings()
     * @method $this forPageBeforeId(int $perPage = 15, int|null $lastId = 0, string $column = 'id')
     * @method $this orWhereTime(string $column, string $operator, \DateTimeInterface|null|string $value = null)
     * @method $this orWhereBetween(string $column, array $values)
     * @method $this dynamicWhere(string $method, array $parameters)
     */
    class _BaseBuilder extends EloquentBuilder {}
    
    /**
     * @method \Illuminate\Support\Collection mapSpread(callable $callback)
     * @method \Illuminate\Support\Collection mapWithKeys(callable $callback)
     * @method \Illuminate\Support\Collection zip(array $items)
     * @method \Illuminate\Support\Collection partition(callable|string $key, $operator = null, $value = null)
     * @method \Illuminate\Support\Collection mapInto(string $class)
     * @method \Illuminate\Support\Collection mapToGroups(callable $callback)
     * @method \Illuminate\Support\Collection map(callable $callback)
     * @method \Illuminate\Support\Collection groupBy(array|callable|string $groupBy, bool $preserveKeys = false)
     * @method \Illuminate\Support\Collection pluck(string $value, null|string $key = null)
     * @method \Illuminate\Support\Collection pad(int $size, $value)
     * @method \Illuminate\Support\Collection split(int $numberOfGroups)
     * @method \Illuminate\Support\Collection combine($values)
     * @method \Illuminate\Support\Collection countBy(callable|null $callback = null)
     * @method \Illuminate\Support\Collection mapToDictionary(callable $callback)
     * @method \Illuminate\Support\Collection keys()
     * @method \Illuminate\Support\Collection transform(callable $callback)
     * @method \Illuminate\Support\Collection flatMap(callable $callback)
     * @method \Illuminate\Support\Collection collapse()
     */
    class _BaseCollection extends \Illuminate\Database\Eloquent\Collection {}
}