<?php //29e2446f254b51be68889481e7f7bb4e96af9c28cd145059e96f059e659a77be
/** @noinspection all */

namespace LaravelIdea\Helper {

    use Illuminate\Contracts\Database\Query\Expression;
    use Illuminate\Contracts\Support\Arrayable;
    use Illuminate\Database\ConnectionInterface;
    use Illuminate\Database\Eloquent\Builder;
    use Illuminate\Database\Query\Builder as QueryBuilder;
    use Illuminate\Support\Collection;

    /**
     * @method $this useIndex(string $index)
     * @method $this whereJsonContainsKey(string $column, string $boolean = 'and', bool $not = false)
     * @method $this whereTodayOrAfter(array|string $columns)
     * @method $this whereIn(Expression|string $column, $values, string $boolean = 'and', bool $not = false)
     * @method $this whereVectorDistanceLessThan(Expression|string $column, float[]|Arrayable|Collection|string $vector, float $maxDistance, string $boolean = 'and')
     * @method $this orWhereNotIn(Expression|string $column, $values)
     * @method $this selectRaw(string $expression, array $bindings = [])
     * @method $this havingNotNull(array|string $columns, string $boolean = 'and')
     * @method int insertOrIgnore(array $values)
     * @method $this whereBeforeToday(array|string $columns)
     * @method $this orHavingNull(string $column)
     * @method $this selectVectorDistance(Expression|string $column, float[]|Arrayable|Collection|string $vector, null|string $as = null)
     * @method $this unionAll(\Closure|Builder|QueryBuilder $query)
     * @method $this orWhereNull(array|Expression|string $column)
     * @method $this joinWhere(Expression|string $table, \Closure|Expression|string $first, string $operator, Expression|string $second, string $type = 'inner')
     * @method $this orWhereJsonContains(string $column, $value)
     * @method $this whereValueBetween($value, array $columns, string $boolean = 'and', bool $not = false)
     * @method $this orderBy(\Closure|Expression|Builder|QueryBuilder|string $column, string $direction = 'asc')
     * @method Expression raw($value)
     * @method $this each(callable $callback, int $count = 1000)
     * @method $this setBindings(array $bindings, string $type = 'where')
     * @method $this dumpRawSql()
     * @method $this orWhereJsonLength(string $column, $operator, $value = null)
     * @method $this whereRowValues(array $columns, string $operator, array $values, string $boolean = 'and')
     * @method $this whereAfterToday(array|string $columns)
     * @method $this orWhereNotExists(\Closure|Builder|QueryBuilder $callback)
     * @method $this orWhereIntegerInRaw(string $column, array|Arrayable $values)
     * @method $this orWhereLike(Expression|string $column, string $value, bool $caseSensitive = false)
     * @method $this crossJoin(Expression|string $table, \Closure|Expression|null|string $first = null, null|string $operator = null, Expression|null|string $second = null)
     * @method $this newQuery()
     * @method $this rightJoinSub(\Closure|Builder|QueryBuilder|string $query, string $as, \Closure|Expression|string $first, null|string $operator = null, Expression|null|string $second = null)
     * @method mixed average(Expression|string $column)
     * @method $this orWhereNowOrPast(array|string $columns)
     * @method $this whereFullText(string|string[] $columns, string $value, array $options = [], string $boolean = 'and')
     * @method $this existsOr(\Closure $callback)
     * @method $this orWhereNowOrFuture(array|string $columns)
     * @method int|mixed sum(Expression|string $column)
     * @method $this havingRaw(string $sql, array $bindings = [], string $boolean = 'and')
     * @method $this chunkMap(callable $callback, int $count = 1000)
     * @method $this getRawBindings()
     * @method $this orWhereColumn(array|Expression|string $first, null|string $operator = null, null|string $second = null)
     * @method mixed min(Expression|string $column)
     * @method $this orWhereNone(\Closure[]|Expression[]|string[] $columns, $operator = null, $value = null)
     * @method $this forceIndex(string $index)
     * @method $this whereNotIn(Expression|string $column, $values, string $boolean = 'and')
     * @method $this whereTime(Expression|string $column, \DateTimeInterface|null|string $operator, \DateTimeInterface|null|string $value = null, string $boolean = 'and')
     * @method $this lazyByIdDesc(int $chunkSize = 1000, null|string $column = null, null|string $alias = null)
     * @method int insertUsing(array $columns, \Closure|Builder|QueryBuilder|string $query)
     * @method $this lazyById(int $chunkSize = 1000, null|string $column = null, null|string $alias = null)
     * @method $this rightJoinWhere(Expression|string $table, \Closure|Expression|string $first, string $operator, Expression|string $second)
     * @method $this orWhereAll(\Closure[]|Expression[]|string[] $columns, $operator = null, $value = null)
     * @method $this groupBy(...$groups)
     * @method $this union(\Closure|Builder|QueryBuilder $query, bool $all = false)
     * @method $this orWhereDay(Expression|string $column, \DateTimeInterface|int|null|string $operator, \DateTimeInterface|int|null|string $value = null)
     * @method $this orWhereFullText(string|string[] $columns, string $value, array $options = [])
     * @method $this joinSub(\Closure|Builder|QueryBuilder|string $query, string $as, \Closure|Expression|string $first, null|string $operator = null, Expression|null|string $second = null, string $type = 'inner', bool $where = false)
     * @method $this orWhereNullSafeEquals(Expression|string $column, $value)
     * @method $this selectSub(\Closure|Builder|QueryBuilder|string $query, string $as)
     * @method $this ignoreIndex(string $index)
     * @method never dd()
     * @method $this whereNull(array|Expression|string $columns, string $boolean = 'and', bool $not = false)
     * @method $this prepareValueAndOperator(string $value, string $operator, bool $useDefault = false)
     * @method $this whereIntegerNotInRaw(string $column, array|Arrayable $values, string $boolean = 'and')
     * @method $this orWhereRaw(string $sql, $bindings = [])
     * @method $this whereNotLike(Expression|string $column, string $value, bool $caseSensitive = false, string $boolean = 'and')
     * @method $this orderedChunkById(int $count, callable $callback, null|string $column = null, null|string $alias = null, bool $descending = false)
     * @method $this whereLike(Expression|string $column, string $value, bool $caseSensitive = false, string $boolean = 'and', bool $not = false)
     * @method $this whereJsonContains(string $column, $value, string $boolean = 'and', bool $not = false)
     * @method $this orWhereBetweenColumns(Expression|string $column, array $values)
     * @method $this mergeWheres(array $wheres, array $bindings)
     * @method $this sharedLock()
     * @method $this applyBeforeQueryCallbacks()
     * @method $this orderByRaw(string $sql, array $bindings = [])
     * @method bool doesntExist()
     * @method $this addNestedHavingQuery(QueryBuilder $query, string $boolean = 'and')
     * @method $this orWhereMonth(Expression|string $column, \DateTimeInterface|int|null|string $operator, \DateTimeInterface|int|null|string $value = null)
     * @method $this whereNotNull(array|Expression|string $columns, string $boolean = 'and')
     * @method int count(Expression|string $columns = '*')
     * @method $this orWhereNotBetween(Expression|Builder|QueryBuilder|string $column, iterable $values)
     * @method $this fromRaw(string $expression, $bindings = [])
     * @method $this mixin(object $mixin, bool $replace = true)
     * @method $this take(int $value)
     * @method $this whereVectorSimilarTo(Expression|string $column, float[]|Arrayable|Collection|string $vector, float $minSimilarity = 0.6, bool $order = true)
     * @method $this orWhereNotBetweenColumns(Expression|string $column, array $values)
     * @method $this updateOrInsert(array $attributes, array|callable $values = [])
     * @method $this leftJoinLateral(\Closure|Builder|QueryBuilder|string $query, string $as)
     * @method $this havingNull(array|string $columns, string $boolean = 'and', bool $not = false)
     * @method $this flushMacros()
     * @method $this orWherePast(array|string $columns)
     * @method $this havingNested(\Closure $callback, string $boolean = 'and')
     * @method $this cloneWithout(array $properties)
     * @method $this whereBetweenColumns(Expression|string $column, array $values, string $boolean = 'and', bool $not = false)
     * @method $this fromSub(\Closure|Builder|QueryBuilder|string $query, string $as)
     * @method $this orWhereJsonContainsKey(string $column)
     * @method $this whereJsonDoesntOverlap(string $column, $value, string $boolean = 'and')
     * @method $this cleanBindings(array $bindings)
     * @method $this timeout(int|null $seconds)
     * @method $this orWhereDate(Expression|string $column, \DateTimeInterface|null|string $operator, \DateTimeInterface|null|string $value = null)
     * @method mixed avg(Expression|string $column)
     * @method $this addBinding($value, string $type = 'where')
     * @method $this getGrammar()
     * @method $this lockForUpdate()
     * @method $this eachById(callable $callback, int $count = 1000, null|string $column = null, null|string $alias = null)
     * @method $this orWhereAny(\Closure[]|Expression[]|string[] $columns, $operator = null, $value = null)
     * @method $this ddRawSql()
     * @method $this cloneWithoutBindings(array $except)
     * @method $this orHavingRaw(string $sql, array $bindings = [])
     * @method $this whereJsonDoesntContainKey(string $column, string $boolean = 'and')
     * @method $this orderByVectorDistance(Expression|string $column, float[]|Arrayable|Collection $vector)
     * @method $this castBinding($value)
     * @method $this whereNone(\Closure[]|Expression[]|string[] $columns, $operator = null, $value = null, string $boolean = 'and')
     * @method $this forPageBeforeId(int $perPage = 15, int|null $lastId = 0, string $column = 'id')
     * @method $this getColumns()
     * @method $this orWhereBetween(Expression|Builder|QueryBuilder|string $column, iterable $values)
     * @method $this explain()
     * @method $this select($columns = ['*'], ...$arguments)
     * @method $this whereJsonOverlaps(string $column, $value, string $boolean = 'and', bool $not = false)
     * @method $this addSelect($column, ...$arguments)
     * @method $this orWhereExists(\Closure|Builder|QueryBuilder $callback, bool $not = false)
     * @method $this whereJsonLength(string $column, $operator, $value = null, string $boolean = 'and')
     * @method $this toRawSql()
     * @method $this beforeQuery(callable $callback)
     * @method $this wherePast(array|string $columns)
     * @method $this truncate()
     * @method $this orWhereBeforeToday(array|string $columns)
     * @method $this lock(bool|string $value = true)
     * @method $this orWhereAfterToday(array|string $columns)
     * @method $this join(Expression|string $table, \Closure|Expression|string $first, null|string $operator = null, Expression|null|string $second = null, string $type = 'inner', bool $where = false)
     * @method $this orWhereValueNotBetween($value, array $columns)
     * @method $this whereMonth(Expression|string $column, \DateTimeInterface|int|null|string $operator, \DateTimeInterface|int|null|string $value = null, string $boolean = 'and')
     * @method $this having(\Closure|Expression|string $column, \DateTimeInterface|float|int|null|string $operator = null, \DateTimeInterface|float|Expression|int|null|string $value = null, string $boolean = 'and')
     * @method $this whereNested(\Closure $callback, string $boolean = 'and')
     * @method $this whereNullSafeEquals(Expression|string $column, $value, string $boolean = 'and')
     * @method $this orWhereRowValues(array $columns, string $operator, array $values)
     * @method $this useWritePdo()
     * @method $this orWhereIn(Expression|string $column, $values)
     * @method $this selectExpression(Expression|string $expression, string $as)
     * @method $this orderByDesc(\Closure|Expression|Builder|QueryBuilder|string $column)
     * @method $this orWhereNotNull(Expression|string $column)
     * @method $this whereTodayOrBefore(array|string $columns)
     * @method $this getProcessor()
     * @method $this lazy(int $chunkSize = 1000)
     * @method $this orWhereFuture(array|string $columns)
     * @method $this orWhereJsonDoesntContainKey(string $column)
     * @method $this skip(int $value)
     * @method $this leftJoinWhere(Expression|string $table, \Closure|Expression|string $first, string $operator, Expression|null|string $second)
     * @method $this doesntExistOr(\Closure $callback)
     * @method $this orHavingBetween(string $column, iterable $values)
     * @method $this orWhereTodayOrBefore(array|string $columns)
     * @method $this whereNotExists(\Closure|Builder|QueryBuilder $callback, string $boolean = 'and')
     * @method $this whereIntegerInRaw(string $column, array|Arrayable $values, string $boolean = 'and', bool $not = false)
     * @method $this whereValueNotBetween($value, array $columns, string $boolean = 'and')
     * @method $this whereDay(Expression|string $column, \DateTimeInterface|int|null|string $operator, \DateTimeInterface|int|null|string $value = null, string $boolean = 'and')
     * @method $this whereAll(\Closure[]|Expression[]|string[] $columns, $operator = null, $value = null, string $boolean = 'and')
     * @method $this whereNowOrFuture(array|string $columns)
     * @method $this forNestedWhere()
     * @method int insertOrIgnoreUsing(array $columns, \Closure|Builder|QueryBuilder|string $query)
     * @method mixed max(Expression|string $column)
     * @method $this whereExists(\Closure|Builder|QueryBuilder $callback, string $boolean = 'and', bool $not = false)
     * @method $this inRandomOrder(int|string $seed = '')
     * @method $this havingBetween(string $column, iterable $values, string $boolean = 'and', bool $not = false)
     * @method $this orWhereJsonDoesntOverlap(string $column, $value)
     * @method $this orHavingNotBetween(string $column, iterable $values)
     * @method $this orWhereYear(Expression|string $column, \DateTimeInterface|int|null|string $operator, \DateTimeInterface|int|null|string $value = null)
     * @method $this chunkById(int $count, callable $callback, null|string $column = null, null|string $alias = null)
     * @method $this whereDate(Expression|string $column, \DateTimeInterface|null|string $operator, \DateTimeInterface|null|string $value = null, string $boolean = 'and')
     * @method $this decrementEach(array $columns, array $extra = [])
     * @method $this whereJsonDoesntContain(string $column, $value, string $boolean = 'and')
     * @method $this rawValue(string $expression, array $bindings = [])
     * @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 mixed|null first(array|string $columns = ['*'])
     * @method $this whereColumn(array|Expression|string $first, null|string $operator = null, null|string $second = null, null|string $boolean = 'and')
     * @method $this numericAggregate(string $function, array $columns = ['*'])
     * @method $this whereNotBetween(Expression|Builder|QueryBuilder|string $column, iterable $values, string $boolean = 'and')
     * @method ConnectionInterface getConnection()
     * @method $this whereToday(array|string $columns, string $boolean = 'and')
     * @method $this mergeBindings(QueryBuilder $query)
     * @method $this reorderDesc(\Closure|Expression|QueryBuilder|null|string $column)
     * @method $this orWhereJsonDoesntContain(string $column, $value)
     * @method $this leftJoinSub(\Closure|Builder|QueryBuilder|string $query, string $as, \Closure|Expression|string $first, null|string $operator = null, Expression|null|string $second = null)
     * @method $this orWhereValueBetween($value, array $columns)
     * @method $this updateFrom(array $values)
     * @method $this orWhereVectorDistanceLessThan(Expression|string $column, float[]|Arrayable|Collection|string $vector, float $maxDistance)
     * @method $this crossJoinSub(\Closure|Builder|QueryBuilder|string $query, string $as)
     * @method $this limit(int $value)
     * @method $this from(\Closure|Expression|Builder|QueryBuilder|string $table, null|string $as = null)
     * @method $this pipe(callable $callback)
     * @method $this whereNotBetweenColumns(Expression|string $column, array $values, string $boolean = 'and')
     * @method int insertGetId(array $values, null|string $sequence = null)
     * @method $this whereBetween(Expression|Builder|QueryBuilder|string $column, iterable $values, string $boolean = 'and', bool $not = false)
     * @method $this whereFuture(array|string $columns)
     * @method $this tap(callable $callback)
     * @method $this offset(int $value)
     * @method $this whereAny(\Closure[]|Expression[]|string[] $columns, $operator = null, $value = null, string $boolean = 'and')
     * @method $this havingNotBetween(string $column, iterable $values, string $boolean = 'and')
     * @method $this orWhereNotLike(Expression|string $column, string $value, bool $caseSensitive = false)
     * @method $this addNestedWhereQuery(QueryBuilder $query, string $boolean = 'and')
     * @method $this groupLimit(int $value, string $column)
     * @method $this orWhereToday(array|string $columns)
     * @method $this incrementEach(array $columns, array $extra = [])
     * @method $this rightJoin(Expression|string $table, \Closure|string $first, null|string $operator = null, Expression|null|string $second = null)
     * @method $this leftJoin(Expression|string $table, \Closure|Expression|string $first, null|string $operator = null, Expression|null|string $second = null)
     * @method bool insert(array $values)
     * @method $this distinct(...$arguments)
     * @method $this chunk(int $count, callable $callback)
     * @method $this reorder(\Closure|Expression|QueryBuilder|null|string $column = null, string $direction = 'asc')
     * @method $this whereYear(Expression|string $column, \DateTimeInterface|int|null|string $operator, \DateTimeInterface|int|null|string $value = null, string $boolean = 'and')
     * @method $this getCountForPagination(Expression[]|string[] $columns = ['*'])
     * @method $this groupByRaw(string $sql, array $bindings = [])
     * @method $this aggregate(string $function, array $columns = ['*'])
     * @method $this orWhereIntegerNotInRaw(string $column, array|Arrayable $values)
     * @method $this chunkByIdDesc(int $count, callable $callback, null|string $column = null, null|string $alias = null)
     * @method $this joinLateral(\Closure|Builder|QueryBuilder|string $query, string $as, string $type = 'inner')
     * @method string implode(string $column, string $glue = '')
     * @method QueryBuilder dump(...$args)
     * @method $this addWhereExistsQuery(QueryBuilder $query, string $boolean = 'and', bool $not = false)
     * @method $this macro(string $name, callable|object $macro)
     * @method $this whereRaw(Expression|string $sql, $bindings = [], string $boolean = 'and')
     * @method string toSql()
     * @method $this orHaving(\Closure|Expression|string $column, \DateTimeInterface|float|int|null|string $operator = null, \DateTimeInterface|float|Expression|int|null|string $value = null)
     * @method $this whereNowOrPast(array|string $columns)
     * @method $this orWhereJsonOverlaps(string $column, $value)
     * @method mixed[] getBindings()
     * @method $this orWhereTodayOrAfter(array|string $columns)
     * @method $this orWhereTime(Expression|string $column, \DateTimeInterface|null|string $operator, \DateTimeInterface|null|string $value = null)
     * @method $this orHavingNotNull(string $column)
     * @method $this dynamicWhere(string $method, array $parameters)
     */
    class _BaseBuilder extends Builder {}

    /**
     * @method \Illuminate\Support\Collection mapWithKeys(callable $callback)
     * @method \Illuminate\Support\Collection partition($key, $operator = null, $value = null)
     * @method \Illuminate\Support\Collection mapInto(string $class)
     * @method \Illuminate\Support\Collection mapToGroups(callable $callback)
     * @method \Illuminate\Support\Collection groupBy(array|callable|string $groupBy, bool $preserveKeys = false)
     * @method \Illuminate\Support\Collection pluck($value, $key = null)
     * @method \Illuminate\Support\Collection pad($size, $value)
     * @method \Illuminate\Support\Collection countBy($countBy = null)
     * @method \Illuminate\Support\Collection flatMap(callable $callback)
     * @method \Illuminate\Support\Collection mapSpread(callable $callback)
     * @method \Illuminate\Support\Collection zip($items)
     * @method \Illuminate\Support\Collection map(callable $callback)
     * @method \Illuminate\Support\Collection split(int $numberOfGroups)
     * @method \Illuminate\Support\Collection combine(\Illuminate\Contracts\Support\Arrayable $values)
     * @method \Illuminate\Support\Collection mapToDictionary(callable $callback)
     * @method \Illuminate\Support\Collection keys()
     * @method \Illuminate\Support\Collection transform(callable $callback)
     * @method \Illuminate\Support\Collection collapse()
     */
    class _BaseCollection extends \Illuminate\Database\Eloquent\Collection {}
}
