import { n as Type, t as Infer } from "./schema-BNke0iHR.cjs"; import { n as TableColumns, r as TableShape, t as Column } from "./table-IkLXirT-.cjs"; import { t as Expr } from "./expr-yYgSeBZ3.cjs"; //#region src/common/schema/sql/select.d.ts type RowFromTable = T extends TableColumns ? { [K in keyof S]: Infer } : never; type RowFromSelection = { [K in keyof S]: S[K] extends Column ? T : never }; interface QueryDependencies { readonly table: string; readonly select: readonly string[]; readonly where: readonly string[]; readonly orderBy: readonly string[]; readonly all: readonly string[]; } interface CompiledQuery { readonly sql: string; readonly params: readonly unknown[]; readonly dependencies: readonly QueryDependencies[]; readonly __row?: Row; } interface OrderByEntry { col: Column; dir: 'ASC' | 'DESC'; } interface SelectState { selection?: Record; from?: TableColumns; where?: Expr; orderBy: OrderByEntry[]; limit?: number; offset?: number; } type ShapeRow = { [K in keyof S]: S[K] extends Type ? T : never }; declare class SelectBuilder { private _state; constructor(state: SelectState); from(t: TableColumns): SelectBuilder : Row, S>; pick>(...keys: K[]): SelectBuilder<{ [P in K]: Shape[P] extends Type ? T : never }, Shape>; where(expr: Expr): this; orderBy(col: Column, dir?: 'ASC' | 'DESC'): this; limit(n: number): this; offset(n: number): this; toSQL(): CompiledQuery; dependencies(): readonly QueryDependencies[]; } declare function select(): SelectBuilder; declare function select>>(selection: S): SelectBuilder>; declare function from(t: TableColumns): SelectBuilder, S>; type InferRow = Q extends SelectBuilder ? R : Q extends CompiledQuery ? R : never; //#endregion export { RowFromTable as a, select as c, RowFromSelection as i, InferRow as n, SelectBuilder as o, QueryDependencies as r, from as s, CompiledQuery as t }; //# sourceMappingURL=select-DrciHdk_.d.cts.map