Libraries v5.0.0
    Preparing search index...

    Interface TableEntityQuery<TEntity, TResult, Writable, P>

    Table query with ORM identity tracking and primary-key lookup helpers.

    interface TableEntityQuery<
        TEntity extends Entity<any, any, any>,
        TResult,
        Writable extends boolean = true,
        P extends ParameterState = [],
    > {
        "[PARAMETER_READER]": EntityParameterReader;
        "[PARAMETER_STATE]": P;
        "[READ_QUERY]": true;
        bulkInsert: Writable extends true
            ? (
                ...args: [
                    rows: InsertType<EntitySchema<TEntity>>[],
                    opts?: {
                        chunkSize?: number;
                        conflictColumns?: ColumnRef<EntitySchema<TEntity>>[];
                        onConflict?: "ignore" | "merge";
                    },
                ],
            ) => Promise
            : never;
        bulkUpdate: Writable extends true
            ? (
                ...args: [
                    updates: readonly {
                        set: Partial<
                            | (
                                undefined extends TResult
                                    ? Id<
                                        RespectPropsOptionality<
                                            { -readonly [K in (...) as (...)]-?: (...) },
                                        >,
                                    >
                                    : TResult
                            )
                            | InsertType<EntitySchema<TEntity>>,
                        >;
                        where: Partial<InferType<Row>>;
                    }[],
                ],
            ) => Promise
            : never;
        bulkUpsert: Writable extends true
            ? (
                ...args: [
                    rows: InsertType<EntitySchema<TEntity>>[],
                    opts: {
                        chunkSize?: number;
                        conflictColumns: ColumnRef<EntitySchema<TEntity>>[];
                    },
                ],
            ) => Promise
            : never;
        delete: Writable extends true ? (...args: []) => Promise : never;
        forVariant: (
            ReadVariantMetadata<EntitySchema<TEntity>> extends {
                discriminator: string;
                variants: Record<string, unknown>;
            }
                ? PolymorphicQueryBuilder<
                    EntitySchema<TEntity>,
                    VariantReadSchemas<EntitySchema<TEntity>>,
                    [],
                    true,
                >
                : SchemaQueryBuilder<
                    EntitySchema<TEntity>,
                    ObjectReadSchema<
                        EntitySchema<TEntity>,
                        keyof ReadRelations<EntitySchema<TEntity>>,
                    >,
                    ReadRelations<EntitySchema<TEntity>>,
                    true,
                    [],
                    true,
                >
        ) extends { forVariant: F }
            ? F
            : never;
        hardDelete: Writable extends true ? (...args: []) => Promise : never;
        insert: Writable extends true
            ? (...args: [data: InsertType<EntitySchema<TEntity>>]) => Promise
            : never;
        insertMany: Writable extends true
            ? (...args: [data: InsertType<EntitySchema<TEntity>>[]]) => Promise
            : never;
        limit: (
            ...args: [count: number],
        ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>;
        offset: (
            ...args: [count: number],
        ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>;
        onConflict: Writable extends true
            ? (...args: ColumnRef<EntitySchema<TEntity>>[]) => R
            : never;
        onlyDeleted: (
            ...args: [],
        ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>;
        orderBy: (
            ...args: [
                column: ReadPredicateSelector<
                    ReadColumns<
                        EntitySchema<TEntity>,
                        keyof ReadRelations<EntitySchema<TEntity>>,
                    >,
                >,
                direction?: "desc" | "asc",
            ],
        ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>;
        orderByRaw: (
            ...args: [
                sql: string,
                bindings?: readonly RawBinding[] & {
                    "[unscopables]": {
                        "[iterator]"?: boolean;
                        "[unscopables]"?: boolean;
                        at?: boolean;
                        concat?: boolean;
                        entries?: boolean;
                        every?: boolean;
                        filter?: boolean;
                        find?: boolean;
                        findIndex?: boolean;
                        flat?: boolean;
                        flatMap?: boolean;
                        forEach?: boolean;
                        includes?: boolean;
                        indexOf?: boolean;
                        join?: boolean;
                        keys?: boolean;
                        lastIndexOf?: boolean;
                        length?: boolean;
                        map?: boolean;
                        reduce?: boolean;
                        reduceRight?: boolean;
                        slice?: boolean;
                        some?: boolean;
                        toLocaleString?: boolean;
                        toString?: boolean;
                        values?: boolean;
                        readonly [key: number]: boolean
                        | undefined;
                    };
                    length: number;
                    "[iterator]"(): ArrayIterator<
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                    >;
                    at(
                        index: number,
                    ):
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null
                        | undefined;
                    concat(
                        ...items: ConcatArray<
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        >[],
                    ): (
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null
                    )[];
                    concat(
                        ...items: (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | ConcatArray<
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<(...)>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            >
                            | null
                        )[],
                    ): (
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null
                    )[];
                    entries(): ArrayIterator<
                        [
                            number,
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        ],
                    >;
                    every<
                        S extends
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                    >(
                        predicate: (
                            value:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            index: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => value is S,
                        thisArg?: any,
                    ): this is readonly S[];
                    every(
                        predicate: (
                            value:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            index: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => unknown,
                        thisArg?: any,
                    ): boolean;
                    filter<
                        S extends
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                    >(
                        predicate: (
                            value:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            index: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => value is S,
                        thisArg?: any,
                    ): S[];
                    filter(
                        predicate: (
                            value:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            index: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => unknown,
                        thisArg?: any,
                    ): (
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null
                    )[];
                    find<
                        S extends
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                    >(
                        predicate: (
                            value:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            index: number,
                            obj: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => value is S,
                        thisArg?: any,
                    ): S | undefined;
                    find(
                        predicate: (
                            value:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            index: number,
                            obj: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => unknown,
                        thisArg?: any,
                    ):
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null
                        | undefined;
                    findIndex(
                        predicate: (
                            value:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            index: number,
                            obj: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => unknown,
                        thisArg?: any,
                    ): number;
                    flat<A, D extends number = 1>(this: A, depth?: D): FlatArray<A, D>[];
                    flatMap<U, This = undefined>(
                        callback: (
                            this: This,
                            value:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            index: number,
                            array: (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => U | readonly U[],
                        thisArg?: This,
                    ): U[];
                    forEach(
                        callbackfn: (
                            value:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            index: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => void,
                        thisArg?: any,
                    ): void;
                    includes(
                        searchElement:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        fromIndex?: number,
                    ): boolean;
                    indexOf(
                        searchElement:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        fromIndex?: number,
                    ): number;
                    join(separator?: string): string;
                    keys(): ArrayIterator<number>;
                    lastIndexOf(
                        searchElement:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        fromIndex?: number,
                    ): number;
                    map<U>(
                        callbackfn: (
                            value:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            index: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => U,
                        thisArg?: any,
                    ): U[];
                    reduce(
                        callbackfn: (
                            previousValue:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            currentValue:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            currentIndex: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) =>
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                    ):
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null;
                    reduce(
                        callbackfn: (
                            previousValue:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            currentValue:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            currentIndex: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) =>
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        initialValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                    ):
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null;
                    reduce<U>(
                        callbackfn: (
                            previousValue: U,
                            currentValue:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            currentIndex: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => U,
                        initialValue: U,
                    ): U;
                    reduceRight(
                        callbackfn: (
                            previousValue:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            currentValue:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            currentIndex: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) =>
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                    ):
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null;
                    reduceRight(
                        callbackfn: (
                            previousValue:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            currentValue:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            currentIndex: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) =>
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        initialValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                    ):
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null;
                    reduceRight<U>(
                        callbackfn: (
                            previousValue: U,
                            currentValue:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            currentIndex: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => U,
                        initialValue: U,
                    ): U;
                    slice(
                        start?: number,
                        end?: number,
                    ): (
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null
                    )[];
                    some(
                        predicate: (
                            value:
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null,
                            index: number,
                            array: readonly (
                                | string
                                | number
                                | boolean
                                | string[]
                                | number[]
                                | Date
                                | boolean[]
                                | Date[]
                                | Buffer<ArrayBufferLike>
                                | Buffer<ArrayBufferLike>[]
                                | Raw<any>
                                | QueryBuilder<any, any>
                                | { [key: string]: unknown }
                                | null
                            )[],
                        ) => unknown,
                        thisArg?: any,
                    ): boolean;
                    toLocaleString(): string;
                    toLocaleString(
                        locales: string | string[],
                        options?: NumberFormatOptions & DateTimeFormatOptions,
                    ): string;
                    toString(): string;
                    values(): ArrayIterator<
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                    >;
                    readonly [n: number]:
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null;
                },
            ],
        ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>;
        restore: Writable extends true ? (...args: []) => Promise : never;
        returnsEntityRows: boolean;
        rowSchema: EntityRowSchema;
        scoped: (
            ...args: [name: ScopesOf<EntitySchema<TEntity>>],
        ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>;
        selectVariants: (
            ReadVariantMetadata<EntitySchema<TEntity>> extends {
                discriminator: string;
                variants: Record<string, unknown>;
            }
                ? PolymorphicQueryBuilder<
                    EntitySchema<TEntity>,
                    VariantReadSchemas<EntitySchema<TEntity>>,
                    [],
                    true,
                >
                : SchemaQueryBuilder<
                    EntitySchema<TEntity>,
                    ObjectReadSchema<
                        EntitySchema<TEntity>,
                        keyof ReadRelations<EntitySchema<TEntity>>,
                    >,
                    ReadRelations<EntitySchema<TEntity>>,
                    true,
                    [],
                    true,
                >
        ) extends { selectVariants: F }
            ? F
            : never;
        transacting: (
            ...args: [trx: Transaction<any, any[]>],
        ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>;
        unscoped: (
            ...args: [],
        ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>;
        update: Writable extends true
            ? (
                ...args: [
                    data: Partial<
                        | (
                            undefined extends TResult
                                ? Id<
                                    RespectPropsOptionality<
                                        {
                                            -readonly [K in string
                                            | number
                                            | symbol as K extends string ? K : never]-?: SchemaForValue<
                                                (...)[(...)],
                                            >
                                        },
                                    >,
                                >
                                : TResult
                        )
                        | InsertType<EntitySchema<TEntity>>,
                    >,
                ],
            ) => Promise
            : never;
        upsert: Writable extends true
            ? (
                ...args: [
                    data: InsertType<EntitySchema<TEntity>>,
                    opts: {
                        conflictColumns: ColumnRef<EntitySchema<TEntity>>[];
                        updateColumns?: ColumnRef<EntitySchema<TEntity>>[];
                    },
                ],
            ) => Promise
            : never;
        withDeleted: (
            ...args: [],
        ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>;
        "[COMPILED_READER]"(): CompiledReader;
        andWhere<
            G extends
                ReadPredicateBuilder<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    any,
                >,
        >(
            group: ReadPredicateGroup<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                G & CheckParameterState<
                    AppendOrigins<P, ParametersOf<NoInfer<G>>, "root">,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                AppendOrigins<P, ParametersOf<G>, "root"> extends ParameterState
                    ? ParameterState & AppendOrigins<P, ParametersOf<G>, "root">
                    : never,
            >,
            true,
        >;
        andWhere<
            const V extends
                Partial<
                    Record<
                        keyof ReadColumns<
                            EntitySchema<TEntity>,
                            keyof EntityRelations<TEntity>,
                        >,
                        unknown,
                    >,
                >,
        >(
            values: V & WithoutParameters<NoInfer<V>>,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        andWhere<S extends string | ((columns: C) => AliasedColumn<any>), const A>(
            column: S,
            value: A & CheckScalarParameter<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        andWhere<S extends string | ((columns: C) => AliasedColumn<any>), const A>(
            column: S,
            operator: string,
            value: A & CheckScalarParameter<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        apply<O extends ReadObject>(
            configure: (query: QueryBuilder) => QueryBuilder<any, any> | undefined,
            options: QueryOutput<O>,
        ): OpaqueQuery<O>;
        assertWritable(): void;
        avg(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ReadProjection<{ avg: AggregateExpression<string | null> }>,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        avgValue<O extends OutputSchema<any> | undefined = undefined>(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
            options?: AggregateOptions<O>,
        ): Promise<AggregateResult<O, string | null>>;
        compile(
            correlate?: ReadCorrelation,
            mode?: typeof COMPILE_PARAMETERS,
        ): QueryBuilder;
        count(
            column?: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ReadProjection<{ count: AggregateExpression<number> }>,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        countDistinct(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ReadProjection<{ countDistinct: AggregateExpression<number> }>,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        countDistinctValue<O extends OutputSchema<any> | undefined = undefined>(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
            options?: AggregateOptions<O>,
        ): Promise<AggregateResult<O, number>>;
        countValue<O extends OutputSchema<any> | undefined = undefined>(
            options?: AggregateOptions<O>,
        ): Promise<AggregateResult<O, number>>;
        countValue<O extends OutputSchema<any> | undefined = undefined>(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
            options?: AggregateOptions<O>,
        ): Promise<AggregateResult<O, number>>;
        decode(row: any, path?: string): any;
        distinct(): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                EntityRowSchema<TResult>,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        distinct<K extends string>(
            ...columns: (
                K
                | ((columns: ReadColumns<S, keyof Relations>) => ReadColumn<any, K>)
            )[],
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ObjectSchemaBuilder<
                    Pick<SchemaProps<ObjectReadSchema<EntitySchema<TEntity>, never>>, K>,
                    true,
                    false,
                    undefined,
                    false,
                    {},
                    [],
                >,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        execute(): Promise<
            (
                undefined extends TResult
                    ? Id<
                        RespectPropsOptionality<
                            {
                                -readonly [K in string
                                | number
                                | symbol as K extends string ? K : never]-?: SchemaForValue<
                                    TResult[K],
                                >
                            },
                        >,
                    >
                    : TResult
            )[],
        >;
        find(
            pk: PrimaryKeyValueOf<EntitySchema<TEntity>>,
        ): Promise<TResult | undefined>;
        findMany(
            pks: readonly PrimaryKeyValueOf<EntitySchema<TEntity>>[],
        ): Promise<TResult[]>;
        findOrFail(pk: PrimaryKeyValueOf<EntitySchema<TEntity>>): Promise<TResult>;
        first(): Promise<
            | (
                undefined extends TResult
                    ? Id<
                        RespectPropsOptionality<
                            {
                                -readonly [K in string
                                | number
                                | symbol as K extends string ? K : never]-?: SchemaForValue<
                                    TResult[K],
                                >
                            },
                        >,
                    >
                    : TResult
            )
            | undefined,
        >;
        groupBy(
            ...columns: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >[],
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                EntityRowSchema<TResult>,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        groupByRaw<const A extends readonly RawBinding[]>(
            sql: string,
            bindings?: A & WithoutParameters<NoInfer<A>>,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                EntityRowSchema<TResult>,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        having<V>(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
            operator: string,
            value: V & WithoutParameters<NoInfer<V>>,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                EntityRowSchema<TResult>,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        havingRaw(
            sql: string,
            bindings?: readonly RawBinding[],
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                EntityRowSchema<TResult>,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        include<
            K extends string,
            Child extends
                ReadQueryShape<ReadSchema> = ReadVariantMetadata<
                RelatedSchema<TEntity, K>,
            > extends { discriminator: string; variants: Record<string, unknown> }
                ? PolymorphicQueryBuilder<
                    RelatedSchema<TEntity, K>,
                    VariantReadSchemas<RelatedSchema<TEntity, K>>,
                    [],
                    true,
                >
                : SchemaQueryBuilder<
                    RelatedSchema<TEntity, K>,
                    ObjectReadSchema<
                        RelatedSchema<TEntity, K>,
                        keyof ReadRelations<RelatedSchema<TEntity, K>>,
                    >,
                    ReadRelations<RelatedSchema<TEntity, K>>,
                    true,
                    [],
                    true,
                >,
        >(
            sel: (t: RelKeyTree<TEntity>) => K,
            customize?: (
                query: ReadVariantMetadata<RelatedSchema<TEntity, K>> extends {
                    discriminator: string;
                    variants: Record<string, unknown>;
                }
                    ? PolymorphicQueryBuilder<
                        RelatedSchema<TEntity, K>,
                        VariantReadSchemas<RelatedSchema<TEntity, K>>,
                        [],
                        true,
                    >
                    : SchemaQueryBuilder<
                        RelatedSchema<TEntity, K>,
                        ObjectReadSchema<
                            RelatedSchema<TEntity, K>,
                            keyof ReadRelations<RelatedSchema<TEntity, K>>,
                        >,
                        ReadRelations<RelatedSchema<TEntity, K>>,
                        true,
                        [],
                        true,
                    >,
            ) => Child & CheckParameterState<
                MergeParameters<P, ParametersOf<NoInfer<Child>>>,
            >,
        ): QueryView<
            EntityQuery<
                TEntity,
                TResult & {
                    -readonly [P in string]-?: EntityRelations<TEntity>[K] extends {
                        kind: "hasMany" | "belongsToMany";
                    }
                        ? InferType<Child["rowSchema"]>[]
                        : InferType<Child["rowSchema"]> | null
                },
                false,
                AttachParameters<P, ParametersOf<Child>, `relation:${K}`>,
            >,
        >;
        includeFrom(
            name: string,
            prepared: SchemaQueryBuilder<any, any, any, any, any, any>,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                EntityRowSchema<TResult>,
                EntityRelations<TEntity>,
                Writable,
                P,
                true,
            >,
            true,
        >;
        includeVariant<TVariant extends string, TRel extends string>(
            variantKey: TVariant,
            relationName: TRel,
            customize?: (
                q: TRel extends keyof EntityRelations<TEntity>
                    ? SchemaQueryBuilder<
                        RelatedSchema<TEntity, TRel>,
                        EntityRowSchema<InferType<RelatedSchema<TEntity, TRel>>>,
                        ReadRelations<RelatedSchema<TEntity, TRel>>,
                        true,
                        [],
                        true,
                    >
                    : SchemaQueryBuilder<
                        any,
                        any,
                        | {}
                        | Record<
                            string,
                            RelationInfo<
                                any,
                                ObjectSchemaBuilder<any, any, any, any, any, any, any>,
                            >,
                        >,
                        true,
                        [],
                        true,
                    >,
            ) => ReadQueryShape,
        ): EntityQuery<
            TEntity,
            TRel extends keyof EntityRelations<TEntity> & string
                ? WithVariantIncluded<TEntity, TResult, TVariant, TRel>
                : TResult,
        >;
        joinMany<
            F extends ReadObject,
            K extends string,
            Child extends
                ReadQueryShape<ReadSchema> = ReadVariantMetadata<F> extends {
                discriminator: string;
                variants: Record<string, unknown>;
            }
                ? PolymorphicQueryBuilder<F, VariantReadSchemas<F>, [], true>
                : SchemaQueryBuilder<
                    F,
                    ObjectReadSchema<F, keyof ReadRelations<F>>,
                    ReadRelations<F>,
                    true,
                    [],
                    true,
                >,
        >(
            spec: Omit<
                JoinManySpec<S, F, K>,
                "orderBy" | "foreignQuery" | "mappers",
            >,
            customize?: (
                query: ReadVariantMetadata<F> extends {
                    discriminator: string;
                    variants: Record<string, unknown>;
                }
                    ? PolymorphicQueryBuilder<F, VariantReadSchemas<F>, [], true>
                    : SchemaQueryBuilder<
                        F,
                        ObjectReadSchema<F, keyof ReadRelations<F>>,
                        ReadRelations<F>,
                        true,
                        [],
                        true,
                    >,
            ) => Child & CheckParameterState<
                AppendOrigins<
                    ReplaceOrigins<P, ParametersOf<NoInfer<Child>>, `relation:${K}`>,
                    ParametersOf<NoInfer<Child>>,
                    `relation:${K}`,
                >,
            >,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                AddField<
                    EntityRowSchema<TResult>,
                    K,
                    ArraySchemaBuilder<
                        Child["rowSchema"],
                        true,
                        false,
                        undefined,
                        false,
                        {},
                        Child["rowSchema"] extends undefined
                            ? any[]
                            : Child["rowSchema"] extends SchemaBuilder<T1, T2, false, false, {}>
                                ? (T2 extends true ? T1 : T1 | undefined)[]
                                : never,
                    >,
                    {
                        -readonly [K in string | number | symbol as K extends string
                            ? K
                            : never]-?: SchemaForValue<TResult[K]>
                    },
                >,
                EntityRelations<TEntity> & Record<K, RelationInfo<"hasMany", F>>,
                false,
                AppendOrigins<
                    ReplaceOrigins<P, ParametersOf<Child>, `relation:${K}`>,
                    ParametersOf<Child>,
                    `relation:${K}`,
                >,
                true,
            >,
            true,
        >;
        joinOne<
            F extends ReadObject,
            K extends string,
            Required extends boolean = true,
            Child extends
                ReadQueryShape<ReadSchema> = ReadVariantMetadata<F> extends {
                discriminator: string;
                variants: Record<string, unknown>;
            }
                ? PolymorphicQueryBuilder<F, VariantReadSchemas<F>, [], true>
                : SchemaQueryBuilder<
                    F,
                    ObjectReadSchema<F, keyof ReadRelations<F>>,
                    ReadRelations<F>,
                    true,
                    [],
                    true,
                >,
        >(
            spec: Omit<JoinOneSpec<S, F, K, Required>, "foreignQuery" | "mappers">,
            customize?: (
                query: ReadVariantMetadata<F> extends {
                    discriminator: string;
                    variants: Record<string, unknown>;
                }
                    ? PolymorphicQueryBuilder<F, VariantReadSchemas<F>, [], true>
                    : SchemaQueryBuilder<
                        F,
                        ObjectReadSchema<F, keyof ReadRelations<F>>,
                        ReadRelations<F>,
                        true,
                        [],
                        true,
                    >,
            ) => Child & CheckParameterState<
                AppendOrigins<
                    ReplaceOrigins<P, ParametersOf<NoInfer<Child>>, `relation:${K}`>,
                    ParametersOf<NoInfer<Child>>,
                    `relation:${K}`,
                >,
            >,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                AddField<
                    EntityRowSchema<TResult>,
                    K,
                    Required extends true
                        ? Child["rowSchema"]
                        : SchemaForValue<InferType<Child["rowSchema"]> | null>,
                    {
                        -readonly [K in string | number | symbol as K extends string
                            ? K
                            : never]-?: SchemaForValue<TResult[K]>
                    },
                >,
                EntityRelations<TEntity> & Record<K, RelationInfo<"hasOne", F>>,
                false,
                AppendOrigins<
                    ReplaceOrigins<P, ParametersOf<Child>, `relation:${K}`>,
                    ParametersOf<Child>,
                    `relation:${K}`,
                >,
                true,
            >,
            true,
        >;
        max<C extends string | ((columns: C) => AliasedColumn<any>)>(
            column: C,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ReadProjection<
                    {
                        max: AggregateExpression<
                            SelectedValue<
                                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                                C,
                            >,
                        >;
                    },
                >,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        maxValue<
            C extends string
            | ((columns: C) => AliasedColumn<any>),
            O extends OutputSchema<any> | undefined = undefined,
        >(
            column: C,
            options?: AggregateOptions<O>,
        ): Promise<
            AggregateResult<
                O,
                SelectedValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    C,
                >,
            >,
        >;
        min<C extends string | ((columns: C) => AliasedColumn<any>)>(
            column: C,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ReadProjection<
                    {
                        min: AggregateExpression<
                            SelectedValue<
                                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                                C,
                            >,
                        >;
                    },
                >,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        minValue<
            C extends string
            | ((columns: C) => AliasedColumn<any>),
            O extends OutputSchema<any> | undefined = undefined,
        >(
            column: C,
            options?: AggregateOptions<O>,
        ): Promise<
            AggregateResult<
                O,
                SelectedValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    C,
                >,
            >,
        >;
        orWhere<
            G extends
                ReadPredicateBuilder<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    any,
                >,
        >(
            group: ReadPredicateGroup<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                G & CheckParameterState<
                    AppendOrigins<P, ParametersOf<NoInfer<G>>, "root">,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                AppendOrigins<P, ParametersOf<G>, "root"> extends ParameterState
                    ? ParameterState & AppendOrigins<P, ParametersOf<G>, "root">
                    : never,
            >,
            true,
        >;
        orWhere<
            const V extends
                Partial<
                    Record<
                        keyof ReadColumns<
                            EntitySchema<TEntity>,
                            keyof EntityRelations<TEntity>,
                        >,
                        unknown,
                    >,
                >,
        >(
            values: V & WithoutParameters<NoInfer<V>>,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        orWhere<S extends string | ((columns: C) => AliasedColumn<any>), const A>(
            column: S,
            value: A & CheckScalarParameter<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        orWhere<S extends string | ((columns: C) => AliasedColumn<any>), const A>(
            column: S,
            operator: string,
            value: A & CheckScalarParameter<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        orWhereExists(
            query: QueryBuilder,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        orWhereIn<
            S extends string
            | ((columns: C) => AliasedColumn<any>),
            const A extends ReadMembership,
        >(
            column: S,
            values: A & CheckParameterValue<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        orWhereNotExists(
            query: QueryBuilder,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        orWhereNotIn<
            S extends string
            | ((columns: C) => AliasedColumn<any>),
            const A extends ReadMembership,
        >(
            column: S,
            values: A & CheckParameterValue<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        orWhereNotNull(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        orWhereNull(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        orWhereRaw<const A extends readonly RawBinding[]>(
            sql: string,
            bindings: A & WithoutParameters<NoInfer<A>>,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        orWhereRaw(
            sql: string,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        paginate(
            options: { page: number; pageSize: number },
        ): Promise<
            PaginationResult<
                undefined extends TResult
                    ? Id<
                        RespectPropsOptionality<
                            {
                                -readonly [K in string
                                | number
                                | symbol as K extends string ? K : never]-?: SchemaForValue<
                                    TResult[K],
                                >
                            },
                        >,
                    >
                    : TResult,
            >,
        >;
        paginateAfter(
            options: CompositeCursorOptions<EntitySchema<TEntity>>,
        ): Promise<
            CursorPaginationResult<
                undefined extends TResult
                    ? Id<
                        RespectPropsOptionality<
                            {
                                -readonly [K in string
                                | number
                                | symbol as K extends string ? K : never]-?: SchemaForValue<
                                    TResult[K],
                                >
                            },
                        >,
                    >
                    : TResult,
            >,
        >;
        paginateAfter(
            options: {
                column?: ColumnRef<EntitySchema<TEntity>>;
                cursor?: unknown;
                direction?: "desc" | "asc";
                limit: number;
            },
        ): Promise<
            CursorPaginationResult<
                undefined extends TResult
                    ? Id<
                        RespectPropsOptionality<
                            {
                                -readonly [K in string
                                | number
                                | symbol as K extends string ? K : never]-?: SchemaForValue<
                                    TResult[K],
                                >
                            },
                        >,
                    >
                    : TResult,
            >,
        >;
        pluck<K extends string>(
            key: K,
        ): Promise<
            InferType<
                {
                    -readonly [K in string
                    | number
                    | symbol as K extends string ? K : never]-?: SchemaForValue<TResult[K]>
                }[K],
            >[],
        >;
        projected<K extends string>(
            name: K,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ObjectSchemaBuilder<
                    Pick<
                        SchemaProps<ObjectReadSchema<EntitySchema<TEntity>, never>>,
                        Extract<
                            NamedKeys<EntitySchema<TEntity>, K>,
                            keyof SchemaProps<ObjectReadSchema<EntitySchema<TEntity>, never>>,
                        >,
                    > & Pick<
                        {
                            -readonly [K in string
                            | number
                            | symbol as K extends string ? K : never]-?: SchemaForValue<
                                TResult[K],
                            >
                        },
                        Extract<
                            keyof {
                                -readonly [K in string
                                | number
                                | symbol as K extends string ? K : never]-?: SchemaForValue<
                                    TResult[K],
                                >
                            },
                            keyof EntityRelations<TEntity>,
                        >,
                    >,
                    true,
                    false,
                    undefined,
                    false,
                    {},
                    [],
                >,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        ref(
            selector: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
        ): Raw<any> | Ref<string, {}>;
        sameSource(other: unknown): boolean;
        select<K extends string>(
            ...columns: (
                K
                | ((columns: ReadColumns<S, keyof Relations>) => ReadColumn<any, K>)
            )[],
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ObjectSchemaBuilder<
                    Pick<SchemaProps<ObjectReadSchema<EntitySchema<TEntity>, never>>, K>,
                    true,
                    false,
                    undefined,
                    false,
                    {},
                    [],
                >,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        select<Selected extends Selection>(
            selector: (columns: ReadColumns<S, keyof Relations>) => Selected,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ObjectSchemaBuilder<
                    MergeProps<
                        {
                            -readonly [K in string
                            | number
                            | symbol as K extends string ? K : never]-?: Selected[K] extends ReadColumn<
                                R,
                                string,
                            >
                                ? R
                                : Selected[K] extends AggregateExpression<T>
                                    ? SchemaForValue<T>
                                    : never
                        },
                        Pick<
                            {
                                -readonly [K in string
                                | number
                                | symbol as K extends string ? K : never]-?: SchemaForValue<
                                    TResult[K],
                                >
                            },
                            Extract<
                                keyof {
                                    -readonly [K in string
                                    | number
                                    | symbol as K extends string ? K : never]-?: SchemaForValue<
                                        TResult[K],
                                    >
                                },
                                keyof EntityRelations<TEntity>,
                            >,
                        >,
                    >,
                    true,
                    false,
                    undefined,
                    false,
                    {},
                    [],
                >,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        selectRaw<O extends ReadObject>(
            sql: string,
            bindings: readonly RawBinding[],
            options: QueryOutput<O>,
        ): OpaqueQuery<O>;
        storageQuery(): QueryBuilder;
        sum(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ReadProjection<{ sum: AggregateExpression<string | null> }>,
                EntityRelations<TEntity>,
                false,
                P,
                true,
            >,
            true,
        >;
        sumValue<O extends OutputSchema<any> | undefined = undefined>(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
            options?: AggregateOptions<O>,
        ): Promise<AggregateResult<O, string | null>>;
        then<
            T = (
                undefined extends TResult
                    ? Id<
                        RespectPropsOptionality<
                            {
                                -readonly [K in string
                                | number
                                | symbol as K extends string ? K : never]-?: SchemaForValue<
                                    TResult[K],
                                >
                            },
                        >,
                    >
                    : TResult
            )[],
            E = never,
        >(
            resolve?:
                | (
                    (
                        rows: (
                            undefined extends TResult
                                ? Id<
                                    RespectPropsOptionality<
                                        {
                                            -readonly [K in string
                                            | number
                                            | symbol as K extends string ? K : never]-?: SchemaForValue<
                                                TResult[K],
                                            >
                                        },
                                    >,
                                >
                                : TResult
                        )[],
                    ) => T
                    | PromiseLike<T>
                )
                | null,
            reject?: ((error: any) => E | PromiseLike<E>) | null,
        ): Promise<T | E>;
        toKnexQuery(): QueryBuilder;
        toQuery(): string;
        where<
            G extends
                ReadPredicateBuilder<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    any,
                >,
        >(
            group: ReadPredicateGroup<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                G & CheckParameterState<
                    AppendOrigins<P, ParametersOf<NoInfer<G>>, "root">,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                AppendOrigins<P, ParametersOf<G>, "root"> extends ParameterState
                    ? ParameterState & AppendOrigins<P, ParametersOf<G>, "root">
                    : never,
            >,
            true,
        >;
        where<
            const V extends
                Partial<
                    Record<
                        keyof ReadColumns<
                            EntitySchema<TEntity>,
                            keyof EntityRelations<TEntity>,
                        >,
                        unknown,
                    >,
                >,
        >(
            values: V & WithoutParameters<NoInfer<V>>,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        where<S extends string | ((columns: C) => AliasedColumn<any>), const A>(
            column: S,
            value: A & CheckScalarParameter<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        where<S extends string | ((columns: C) => AliasedColumn<any>), const A>(
            column: S,
            operator: string,
            value: A & CheckScalarParameter<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        whereBetween<
            S extends string
            | ((columns: C) => AliasedColumn<any>),
            const A extends readonly [unknown, unknown],
        >(
            column: S,
            range: A & CheckParameterValue<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        whereExists(
            query: QueryBuilder,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        whereILike<
            S extends string
            | ((columns: C) => AliasedColumn<any>),
            const A,
        >(
            column: S,
            value: A & (
                A extends QueryParameter<string>
                    ? CheckParameterValue<
                        P,
                        NoInfer<A>,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : string
            ),
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        whereIn<
            S extends string
            | ((columns: C) => AliasedColumn<any>),
            const A extends ReadMembership,
        >(
            column: S,
            values: A & CheckParameterValue<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        whereJsonPath<A>(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
            path: string,
            operator?: string,
            value?: A & WithoutParameters<NoInfer<A>>,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        whereLike<S extends string | ((columns: C) => AliasedColumn<any>), const A>(
            column: S,
            value: A & (
                A extends QueryParameter<string>
                    ? CheckParameterValue<
                        P,
                        NoInfer<A>,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : string
            ),
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        whereNot<S extends string | ((columns: C) => AliasedColumn<any>), const A>(
            column: S,
            value: A & CheckScalarParameter<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        whereNotBetween<
            S extends string
            | ((columns: C) => AliasedColumn<any>),
            const A extends readonly [unknown, unknown],
        >(
            column: S,
            range: A & CheckParameterValue<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        whereNotExists(
            query: QueryBuilder,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        whereNotIn<
            S extends string
            | ((columns: C) => AliasedColumn<any>),
            const A extends ReadMembership,
        >(
            column: S,
            values: A & CheckParameterValue<
                P,
                NoInfer<A>,
                PredicateValue<
                    ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                    S,
                >,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                ValueParameters<
                    P,
                    A,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                > extends ParameterState
                    ? ParameterState & ValueParameters<
                        P,
                        A,
                        PredicateValue<
                            ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                            S,
                        >,
                    >
                    : never,
            >,
            true,
        >;
        whereNotNull(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        whereNull(
            column: ReadPredicateSelector<
                ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
            >,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        whereRaw<const A extends readonly RawBinding[]>(
            sql: string,
            bindings: A & WithoutParameters<NoInfer<A>>,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        whereRaw(
            sql: string,
        ): QueryView<
            TableEntityQuery<
                TEntity,
                TResult,
                Writable,
                P extends ParameterState ? P : never,
            >,
            true,
        >;
        withPredicate(
            predicate: ReadPredicate,
        ): QueryView<
            SchemaQueryBuilder<
                EntitySchema<TEntity>,
                EntityRowSchema<TResult>,
                EntityRelations<TEntity>,
                Writable,
                P,
                true,
            >,
            true,
        >;
    }

    Type Parameters

    • TEntity extends Entity<any, any, any>
    • TResult
    • Writable extends boolean = true
    • P extends ParameterState = []

    Hierarchy (View Summary)

    Index
    "[PARAMETER_READER]": EntityParameterReader

    Type-only fluent return constructor.

    "[PARAMETER_STATE]": P

    Type-only ordered argument contract.

    "[READ_QUERY]": true

    Nominal identity for typed child-query customizers.

    bulkInsert: Writable extends true
        ? (
            ...args: [
                rows: InsertType<EntitySchema<TEntity>>[],
                opts?: {
                    chunkSize?: number;
                    conflictColumns?: ColumnRef<EntitySchema<TEntity>>[];
                    onConflict?: "ignore" | "merge";
                },
            ],
        ) => Promise
        : never
    bulkUpdate: Writable extends true
        ? (
            ...args: [
                updates: readonly {
                    set: Partial<
                        | (
                            undefined extends TResult
                                ? Id<
                                    RespectPropsOptionality<
                                        { -readonly [K in (...) as (...)]-?: (...) },
                                    >,
                                >
                                : TResult
                        )
                        | InsertType<EntitySchema<TEntity>>,
                    >;
                    where: Partial<InferType<Row>>;
                }[],
            ],
        ) => Promise
        : never
    bulkUpsert: Writable extends true
        ? (
            ...args: [
                rows: InsertType<EntitySchema<TEntity>>[],
                opts: {
                    chunkSize?: number;
                    conflictColumns: ColumnRef<EntitySchema<TEntity>>[];
                },
            ],
        ) => Promise
        : never
    delete: Writable extends true ? (...args: []) => Promise : never
    forVariant: (
        ReadVariantMetadata<EntitySchema<TEntity>> extends {
            discriminator: string;
            variants: Record<string, unknown>;
        }
            ? PolymorphicQueryBuilder<
                EntitySchema<TEntity>,
                VariantReadSchemas<EntitySchema<TEntity>>,
                [],
                true,
            >
            : SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ObjectReadSchema<
                    EntitySchema<TEntity>,
                    keyof ReadRelations<EntitySchema<TEntity>>,
                >,
                ReadRelations<EntitySchema<TEntity>>,
                true,
                [],
                true,
            >
    ) extends { forVariant: F }
        ? F
        : never

    Configure a discriminator branch with the canonical strongly typed query API.

    hardDelete: Writable extends true ? (...args: []) => Promise : never
    insert: Writable extends true
        ? (...args: [data: InsertType<EntitySchema<TEntity>>]) => Promise
        : never
    insertMany: Writable extends true
        ? (...args: [data: InsertType<EntitySchema<TEntity>>[]]) => Promise
        : never
    limit: (
        ...args: [count: number],
    ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>
    offset: (
        ...args: [count: number],
    ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>
    onConflict: Writable extends true
        ? (...args: ColumnRef<EntitySchema<TEntity>>[]) => R
        : never
    onlyDeleted: (
        ...args: [],
    ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>
    orderBy: (
        ...args: [
            column: ReadPredicateSelector<
                ReadColumns<
                    EntitySchema<TEntity>,
                    keyof ReadRelations<EntitySchema<TEntity>>,
                >,
            >,
            direction?: "desc" | "asc",
        ],
    ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>
    orderByRaw: (
        ...args: [
            sql: string,
            bindings?: readonly RawBinding[] & {
                "[unscopables]": {
                    "[iterator]"?: boolean;
                    "[unscopables]"?: boolean;
                    at?: boolean;
                    concat?: boolean;
                    entries?: boolean;
                    every?: boolean;
                    filter?: boolean;
                    find?: boolean;
                    findIndex?: boolean;
                    flat?: boolean;
                    flatMap?: boolean;
                    forEach?: boolean;
                    includes?: boolean;
                    indexOf?: boolean;
                    join?: boolean;
                    keys?: boolean;
                    lastIndexOf?: boolean;
                    length?: boolean;
                    map?: boolean;
                    reduce?: boolean;
                    reduceRight?: boolean;
                    slice?: boolean;
                    some?: boolean;
                    toLocaleString?: boolean;
                    toString?: boolean;
                    values?: boolean;
                    readonly [key: number]: boolean
                    | undefined;
                };
                length: number;
                "[iterator]"(): ArrayIterator<
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null,
                >;
                at(
                    index: number,
                ):
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null
                    | undefined;
                concat(
                    ...items: ConcatArray<
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                    >[],
                ): (
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null
                )[];
                concat(
                    ...items: (
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | ConcatArray<
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<(...)>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        >
                        | null
                    )[],
                ): (
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null
                )[];
                entries(): ArrayIterator<
                    [
                        number,
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                    ],
                >;
                every<
                    S extends
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                >(
                    predicate: (
                        value:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        index: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => value is S,
                    thisArg?: any,
                ): this is readonly S[];
                every(
                    predicate: (
                        value:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        index: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => unknown,
                    thisArg?: any,
                ): boolean;
                filter<
                    S extends
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                >(
                    predicate: (
                        value:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        index: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => value is S,
                    thisArg?: any,
                ): S[];
                filter(
                    predicate: (
                        value:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        index: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => unknown,
                    thisArg?: any,
                ): (
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null
                )[];
                find<
                    S extends
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                >(
                    predicate: (
                        value:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        index: number,
                        obj: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => value is S,
                    thisArg?: any,
                ): S | undefined;
                find(
                    predicate: (
                        value:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        index: number,
                        obj: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => unknown,
                    thisArg?: any,
                ):
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null
                    | undefined;
                findIndex(
                    predicate: (
                        value:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        index: number,
                        obj: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => unknown,
                    thisArg?: any,
                ): number;
                flat<A, D extends number = 1>(this: A, depth?: D): FlatArray<A, D>[];
                flatMap<U, This = undefined>(
                    callback: (
                        this: This,
                        value:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        index: number,
                        array: (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => U | readonly U[],
                    thisArg?: This,
                ): U[];
                forEach(
                    callbackfn: (
                        value:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        index: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => void,
                    thisArg?: any,
                ): void;
                includes(
                    searchElement:
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                    fromIndex?: number,
                ): boolean;
                indexOf(
                    searchElement:
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                    fromIndex?: number,
                ): number;
                join(separator?: string): string;
                keys(): ArrayIterator<number>;
                lastIndexOf(
                    searchElement:
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                    fromIndex?: number,
                ): number;
                map<U>(
                    callbackfn: (
                        value:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        index: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => U,
                    thisArg?: any,
                ): U[];
                reduce(
                    callbackfn: (
                        previousValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        currentValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        currentIndex: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) =>
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                ):
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null;
                reduce(
                    callbackfn: (
                        previousValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        currentValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        currentIndex: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) =>
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                    initialValue:
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                ):
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null;
                reduce<U>(
                    callbackfn: (
                        previousValue: U,
                        currentValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        currentIndex: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => U,
                    initialValue: U,
                ): U;
                reduceRight(
                    callbackfn: (
                        previousValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        currentValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        currentIndex: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) =>
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                ):
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null;
                reduceRight(
                    callbackfn: (
                        previousValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        currentValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        currentIndex: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) =>
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                    initialValue:
                        | string
                        | number
                        | boolean
                        | string[]
                        | number[]
                        | Date
                        | boolean[]
                        | Date[]
                        | Buffer<ArrayBufferLike>
                        | Buffer<ArrayBufferLike>[]
                        | Raw<any>
                        | QueryBuilder<any, any>
                        | { [key: string]: unknown }
                        | null,
                ):
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null;
                reduceRight<U>(
                    callbackfn: (
                        previousValue: U,
                        currentValue:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        currentIndex: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => U,
                    initialValue: U,
                ): U;
                slice(
                    start?: number,
                    end?: number,
                ): (
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null
                )[];
                some(
                    predicate: (
                        value:
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null,
                        index: number,
                        array: readonly (
                            | string
                            | number
                            | boolean
                            | string[]
                            | number[]
                            | Date
                            | boolean[]
                            | Date[]
                            | Buffer<ArrayBufferLike>
                            | Buffer<ArrayBufferLike>[]
                            | Raw<any>
                            | QueryBuilder<any, any>
                            | { [key: string]: unknown }
                            | null
                        )[],
                    ) => unknown,
                    thisArg?: any,
                ): boolean;
                toLocaleString(): string;
                toLocaleString(
                    locales: string | string[],
                    options?: NumberFormatOptions & DateTimeFormatOptions,
                ): string;
                toString(): string;
                values(): ArrayIterator<
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null,
                >;
                readonly [n: number]:
                    | string
                    | number
                    | boolean
                    | string[]
                    | number[]
                    | Date
                    | boolean[]
                    | Date[]
                    | Buffer<ArrayBufferLike>
                    | Buffer<ArrayBufferLike>[]
                    | Raw<any>
                    | QueryBuilder<any, any>
                    | { [key: string]: unknown }
                    | null;
            },
        ],
    ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>
    restore: Writable extends true ? (...args: []) => Promise : never
    returnsEntityRows: boolean
    rowSchema: EntityRowSchema

    Runtime structural schema; stable across filters, pagination and transaction clones.

    scoped: (
        ...args: [name: ScopesOf<EntitySchema<TEntity>>],
    ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>
    selectVariants: (
        ReadVariantMetadata<EntitySchema<TEntity>> extends {
            discriminator: string;
            variants: Record<string, unknown>;
        }
            ? PolymorphicQueryBuilder<
                EntitySchema<TEntity>,
                VariantReadSchemas<EntitySchema<TEntity>>,
                [],
                true,
            >
            : SchemaQueryBuilder<
                EntitySchema<TEntity>,
                ObjectReadSchema<
                    EntitySchema<TEntity>,
                    keyof ReadRelations<EntitySchema<TEntity>>,
                >,
                ReadRelations<EntitySchema<TEntity>>,
                true,
                [],
                true,
            >
    ) extends { selectVariants: F }
        ? F
        : never

    Restrict a polymorphic query to declared variants and narrow its row schema.

    transacting: (
        ...args: [trx: Transaction<any, any[]>],
    ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>
    unscoped: (
        ...args: [],
    ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>
    update: Writable extends true
        ? (
            ...args: [
                data: Partial<
                    | (
                        undefined extends TResult
                            ? Id<
                                RespectPropsOptionality<
                                    {
                                        -readonly [K in string
                                        | number
                                        | symbol as K extends string ? K : never]-?: SchemaForValue<
                                            (...)[(...)],
                                        >
                                    },
                                >,
                            >
                            : TResult
                    )
                    | InsertType<EntitySchema<TEntity>>,
                >,
            ],
        ) => Promise
        : never
    upsert: Writable extends true
        ? (
            ...args: [
                data: InsertType<EntitySchema<TEntity>>,
                opts: {
                    conflictColumns: ColumnRef<EntitySchema<TEntity>>[];
                    updateColumns?: ColumnRef<EntitySchema<TEntity>>[];
                },
            ],
        ) => Promise
        : never
    withDeleted: (
        ...args: [],
    ) => QueryView<TableEntityQuery<TEntity, TResult, Writable, P>>
    • Internal

      Compiled SELECT protocol; never replays consumer callbacks.

      Returns CompiledReader

    • Configure an isolated Knex SELECT once, declaring the complete raw row output.

      Type Parameters

      Parameters

      • configure: (query: QueryBuilder) => QueryBuilder<any, any> | undefined
      • options: QueryOutput<O>

      Returns OpaqueQuery<O>

    • Internal

      Reject writes through projections or loaded relations.

      Returns void

    • Internal

      Compile a bound SQL statement; callers never receive the mutable builder.

      Parameters

      • Optionalcorrelate: ReadCorrelation
      • Optionalmode: typeof COMPILE_PARAMETERS

      Returns QueryBuilder

    • Count matching rows, or non-null column values, without mutating this query. Ignores source ordering/limits/offsets while retaining filters and transactions.

      Type Parameters

      Parameters

      • Optionaloptions: AggregateOptions<O>

        Optional output parser; receives the raw driver value.

      Returns Promise<AggregateResult<O, number>>

      A safe integer by default, including zero for an empty source.

      If the default count overflows, the source is grouped/distinct, or parsing fails.

    • Count non-null column values without mutating the source query. Source paging/order is ignored; filters, scopes and transactions remain.

      Type Parameters

      Parameters

      Returns Promise<AggregateResult<O, number>>

      If the default result overflows or the source is grouped/distinct.

    • Internal

      Decode a SQL/JSON row using the same metadata exposed to consumers.

      Parameters

      • row: any
      • Optionalpath: string

      Returns any

    • Execute one statement and decode its selected row graph.

      Returns Promise<
          (
              undefined extends TResult
                  ? Id<
                      RespectPropsOptionality<
                          {
                              -readonly [K in string
                              | number
                              | symbol as K extends string ? K : never]-?: SchemaForValue<
                                  TResult[K],
                              >
                          },
                      >,
                  >
                  : TResult
          )[],
      >

    • Look up a single entity by primary key. Returns undefined when no row matches.

      The PK column(s) are resolved automatically from the entity's schema via the primaryKey / hasPrimaryKey extensions. Composite PKs are passed as a tuple in declaration order:

      await db.todos.find(42);                 // single PK
      await db.userRoles.find([userId, role]); // composite PK

      Any chained .include() / .includeVariant() calls on this query are honoured by the underlying SELECT.

      Returns Promise<TResult | undefined>

    • Execute a limited copy, returning undefined when no row matches.

      Returns Promise<
          | (
              undefined extends TResult
                  ? Id<
                      RespectPropsOptionality<
                          {
                              -readonly [K in string
                              | number
                              | symbol as K extends string ? K : never]-?: SchemaForValue<
                                  TResult[K],
                              >
                          },
                      >,
                  >
                  : TResult
          )
          | undefined,
      >

    • Group using trusted SQL without changing the explicit projection.

      Type Parameters

      • const A extends readonly RawBinding[]

      Parameters

      • sql: string
      • Optionalbindings: A & WithoutParameters<NoInfer<A>>

      Returns QueryView<
          SchemaQueryBuilder<
              EntitySchema<TEntity>,
              EntityRowSchema<TResult>,
              EntityRelations<TEntity>,
              false,
              P,
              true,
          >,
          true,
      >

    • Filter grouped results using trusted SQL and captured bindings.

      Parameters

      • sql: string
      • Optionalbindings: readonly RawBinding[]

      Returns QueryView<
          SchemaQueryBuilder<
              EntitySchema<TEntity>,
              EntityRowSchema<TResult>,
              EntityRelations<TEntity>,
              false,
              P,
              true,
          >,
          true,
      >

    • Eager-load a relation declared inside a polymorphic variant (CTI/STI). The relation is only populated on rows whose discriminator matches variantKey. Type-level: when relationName is a key of the entity's relations, it appears only on the matching branch of the discriminated-union result; otherwise the result type is unchanged.

      Type Parameters

      • TVariant extends string
      • TRel extends string

      Parameters

      • variantKey: TVariant
      • relationName: TRel
      • Optionalcustomize: (
            q: TRel extends keyof EntityRelations<TEntity>
                ? SchemaQueryBuilder<
                    RelatedSchema<TEntity, TRel>,
                    EntityRowSchema<InferType<RelatedSchema<TEntity, TRel>>>,
                    ReadRelations<RelatedSchema<TEntity, TRel>>,
                    true,
                    [],
                    true,
                >
                : SchemaQueryBuilder<
                    any,
                    any,
                    | {}
                    | Record<
                        string,
                        RelationInfo<
                            any,
                            ObjectSchemaBuilder<any, any, any, any, any, any, any>,
                        >,
                    >,
                    true,
                    [],
                    true,
                >,
        ) => ReadQueryShape

      Returns EntityQuery<
          TEntity,
          TRel extends keyof EntityRelations<TEntity> & string
              ? WithVariantIncluded<TEntity, TResult, TVariant, TRel>
              : TResult,
      >

    • Join a typed collection, applying child projection and pagination independently per parent.

      Type Parameters

      Parameters

      Returns QueryView<
          SchemaQueryBuilder<
              EntitySchema<TEntity>,
              AddField<
                  EntityRowSchema<TResult>,
                  K,
                  ArraySchemaBuilder<
                      Child["rowSchema"],
                      true,
                      false,
                      undefined,
                      false,
                      {},
                      Child["rowSchema"] extends undefined
                          ? any[]
                          : Child["rowSchema"] extends SchemaBuilder<T1, T2, false, false, {}>
                              ? (T2 extends true ? T1 : T1 | undefined)[]
                              : never,
                  >,
                  {
                      -readonly [K in string | number | symbol as K extends string
                          ? K
                          : never]-?: SchemaForValue<TResult[K]>
                  },
              >,
              EntityRelations<TEntity> & Record<K, RelationInfo<"hasMany", F>>,
              false,
              AppendOrigins<
                  ReplaceOrigins<P, ParametersOf<Child>, `relation:${K}`>,
                  ParametersOf<Child>,
                  `relation:${K}`,
              >,
              true,
          >,
          true,
      >

    • Find the largest non-null column value without retaining source paging.

      Type Parameters

      Parameters

      • column: C

        Schema property to aggregate.

      • Optionaloptions: AggregateOptions<O>

        Optional parser replacing default decoding, including null handling.

      Returns Promise<
          AggregateResult<
              O,
              SelectedValue<
                  ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                  C,
              >,
          >,
      >

      Null for empty/all-null input; otherwise the column representation. Dates return Date; numeric SQL overrides may return exact strings.

    • Find the smallest non-null column value without retaining source paging.

      Type Parameters

      Parameters

      • column: C

        Schema property to aggregate.

      • Optionaloptions: AggregateOptions<O>

        Optional parser replacing default decoding, including null handling.

      Returns Promise<
          AggregateResult<
              O,
              SelectedValue<
                  ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                  C,
              >,
          >,
      >

      Null for empty/all-null input; otherwise the column representation. Dates return Date; numeric SQL overrides may return exact strings.

    • Fetch a numbered page and a count without mutating the source query.

      Parameters

      • options: { page: number; pageSize: number }

      Returns Promise<
          PaginationResult<
              undefined extends TResult
                  ? Id<
                      RespectPropsOptionality<
                          {
                              -readonly [K in string
                              | number
                              | symbol as K extends string ? K : never]-?: SchemaForValue<
                                  TResult[K],
                              >
                          },
                      >,
                  >
                  : TResult,
          >,
      >

    • Read a lossless composite cursor page using native SQL ordering. Cursor sort values remain private text columns, independent of projections and Date decoding. Requires non-null scalar order columns containing a declared unique key.

      Returns Promise<
          CursorPaginationResult<
              undefined extends TResult
                  ? Id<
                      RespectPropsOptionality<
                          {
                              -readonly [K in string
                              | number
                              | symbol as K extends string ? K : never]-?: SchemaForValue<
                                  TResult[K],
                              >
                          },
                      >,
                  >
                  : TResult,
          >,
      >

    • Read a page using a single raw cursor value; choose a unique, non-null sort column.

      Parameters

      • options: {
            column?: ColumnRef<EntitySchema<TEntity>>;
            cursor?: unknown;
            direction?: "desc" | "asc";
            limit: number;
        }

      Returns Promise<
          CursorPaginationResult<
              undefined extends TResult
                  ? Id<
                      RespectPropsOptionality<
                          {
                              -readonly [K in string
                              | number
                              | symbol as K extends string ? K : never]-?: SchemaForValue<
                                  TResult[K],
                              >
                          },
                      >,
                  >
                  : TResult,
          >,
      >

    • Read values of one selected property without altering this query.

      Type Parameters

      • K extends string

      Parameters

      • key: K

      Returns Promise<
          InferType<
              {
                  -readonly [K in string
                  | number
                  | symbol as K extends string ? K : never]-?: SchemaForValue<TResult[K]>
              }[K],
          >[],
      >

    • Apply a named schema projection with the same exact row-schema guarantees.

      Type Parameters

      • K extends string

      Parameters

      • name: K

      Returns QueryView<
          SchemaQueryBuilder<
              EntitySchema<TEntity>,
              ObjectSchemaBuilder<
                  Pick<
                      SchemaProps<ObjectReadSchema<EntitySchema<TEntity>, never>>,
                      Extract<
                          NamedKeys<EntitySchema<TEntity>, K>,
                          keyof SchemaProps<ObjectReadSchema<EntitySchema<TEntity>, never>>,
                      >,
                  > & Pick<
                      {
                          -readonly [K in string
                          | number
                          | symbol as K extends string ? K : never]-?: SchemaForValue<TResult[K]>
                      },
                      Extract<
                          keyof {
                              -readonly [K in string
                              | number
                              | symbol as K extends string ? K : never]-?: SchemaForValue<
                                  TResult[K],
                              >
                          },
                          keyof EntityRelations<TEntity>,
                      >,
                  >,
                  true,
                  false,
                  undefined,
                  false,
                  {},
                  [],
              >,
              EntityRelations<TEntity>,
              false,
              P,
              true,
          >,
          true,
      >

    • Internal

      Prevent customizers from substituting an unrelated query source.

      Parameters

      • other: unknown

      Returns boolean

    • Select an exact flat row shape, retaining per-field runtime schemas.

      Type Parameters

      • K extends string

      Parameters

      Returns QueryView<
          SchemaQueryBuilder<
              EntitySchema<TEntity>,
              ObjectSchemaBuilder<
                  Pick<SchemaProps<ObjectReadSchema<EntitySchema<TEntity>, never>>, K>,
                  true,
                  false,
                  undefined,
                  false,
                  {},
                  [],
              >,
              EntityRelations<TEntity>,
              false,
              P,
              true,
          >,
          true,
      >

    • Select named output fields and aggregates, replacing the previous scalar projection.

      Type Parameters

      • Selected extends Selection

      Parameters

      Returns QueryView<
          SchemaQueryBuilder<
              EntitySchema<TEntity>,
              ObjectSchemaBuilder<
                  MergeProps<
                      {
                          -readonly [K in string
                          | number
                          | symbol as K extends string ? K : never]-?: Selected[K] extends ReadColumn<
                              R,
                              string,
                          >
                              ? R
                              : Selected[K] extends AggregateExpression<T>
                                  ? SchemaForValue<T>
                                  : never
                      },
                      Pick<
                          {
                              -readonly [K in string
                              | number
                              | symbol as K extends string ? K : never]-?: SchemaForValue<
                                  TResult[K],
                              >
                          },
                          Extract<
                              keyof {
                                  -readonly [K in string
                                  | number
                                  | symbol as K extends string ? K : never]-?: SchemaForValue<
                                      TResult[K],
                                  >
                              },
                              keyof EntityRelations<TEntity>,
                          >,
                      >,
                  >,
                  true,
                  false,
                  undefined,
                  false,
                  {},
                  [],
              >,
              EntityRelations<TEntity>,
              false,
              P,
              true,
          >,
          true,
      >

    • Replace the projection with trusted raw SQL and an explicit output schema.

      Type Parameters

      Parameters

      • sql: string
      • bindings: readonly RawBinding[]
      • options: QueryOutput<O>

      Returns OpaqueQuery<O>

    • Internal

      Native storage columns for composing CTI table sources.

      Returns QueryBuilder

    • Awaiting executes the query; repeated awaits deliberately execute again.

      Type Parameters

      • T = (
            undefined extends TResult
                ? Id<
                    RespectPropsOptionality<
                        {
                            -readonly [K in string
                            | number
                            | symbol as K extends string ? K : never]-?: SchemaForValue<TResult[K]>
                        },
                    >,
                >
                : TResult
        )[]
      • E = never

      Parameters

      • Optionalresolve:
            | (
                (
                    rows: (
                        undefined extends TResult
                            ? Id<
                                RespectPropsOptionality<
                                    {
                                        -readonly [K in string
                                        | number
                                        | symbol as K extends string ? K : never]-?: SchemaForValue<
                                            TResult[K],
                                        >
                                    },
                                >,
                            >
                            : TResult
                    )[],
                ) => T
                | PromiseLike<T>
            )
            | null
      • Optionalreject: ((error: any) => E | PromiseLike<E>) | null

      Returns Promise<T | E>

    • Return an independent mutable Knex snapshot, never the query's owned state.

      Returns QueryBuilder

    • Render debugging SQL without execution; bound values may be sensitive.

      Returns string

    • Type Parameters

      • S extends string | ((columns: C) => AliasedColumn<any>)
      • const A extends readonly [unknown, unknown]

      Parameters

      Returns QueryView<
          TableEntityQuery<
              TEntity,
              TResult,
              Writable,
              ValueParameters<
                  P,
                  A,
                  PredicateValue<
                      ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                      S,
                  >,
              > extends ParameterState
                  ? ParameterState & ValueParameters<
                      P,
                      A,
                      PredicateValue<
                          ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                          S,
                      >,
                  >
                  : never,
          >,
          true,
      >

    • Type Parameters

      Parameters

      • column: S
      • value: A & (
            A extends QueryParameter<string>
                ? CheckParameterValue<
                    P,
                    NoInfer<A>,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                >
                : string
        )

      Returns QueryView<
          TableEntityQuery<
              TEntity,
              TResult,
              Writable,
              ValueParameters<
                  P,
                  A,
                  PredicateValue<
                      ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                      S,
                  >,
              > extends ParameterState
                  ? ParameterState & ValueParameters<
                      P,
                      A,
                      PredicateValue<
                          ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                          S,
                      >,
                  >
                  : never,
          >,
          true,
      >

    • Type Parameters

      Parameters

      • column: S
      • value: A & (
            A extends QueryParameter<string>
                ? CheckParameterValue<
                    P,
                    NoInfer<A>,
                    PredicateValue<
                        ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                        S,
                    >,
                >
                : string
        )

      Returns QueryView<
          TableEntityQuery<
              TEntity,
              TResult,
              Writable,
              ValueParameters<
                  P,
                  A,
                  PredicateValue<
                      ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                      S,
                  >,
              > extends ParameterState
                  ? ParameterState & ValueParameters<
                      P,
                      A,
                      PredicateValue<
                          ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                          S,
                      >,
                  >
                  : never,
          >,
          true,
      >

    • Type Parameters

      • S extends string | ((columns: C) => AliasedColumn<any>)
      • const A extends readonly [unknown, unknown]

      Parameters

      Returns QueryView<
          TableEntityQuery<
              TEntity,
              TResult,
              Writable,
              ValueParameters<
                  P,
                  A,
                  PredicateValue<
                      ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                      S,
                  >,
              > extends ParameterState
                  ? ParameterState & ValueParameters<
                      P,
                      A,
                      PredicateValue<
                          ReadColumns<EntitySchema<TEntity>, keyof EntityRelations<TEntity>>,
                          S,
                      >,
                  >
                  : never,
          >,
          true,
      >

    • Trusted SQL with concrete bindings; use a typed predicate for placeholders.

      Type Parameters

      • const A extends readonly RawBinding[]

      Parameters

      • sql: string
      • bindings: A & WithoutParameters<NoInfer<A>>

      Returns QueryView<
          TableEntityQuery<
              TEntity,
              TResult,
              Writable,
              P extends ParameterState ? P : never,
          >,
          true,
      >

    • Trusted SQL with concrete bindings; use a typed predicate for placeholders.

      Parameters

      • sql: string

      Returns QueryView<
          TableEntityQuery<
              TEntity,
              TResult,
              Writable,
              P extends ParameterState ? P : never,
          >,
          true,
      >