import { IQueryBuilder, IDatabaseAdapter, IQueryResult } from '../interfaces'; /** * Base query builder implementation * Provides common functionality for all SQL dialects * @template T - Type of entity being queried */ export declare abstract class BaseQueryBuilder implements IQueryBuilder { protected _select: string[]; protected _from: string; protected _where: string[]; protected _params: any[]; protected _orderBy: string[]; protected _limit?: number; protected _offset?: number; protected _joins: string[]; /** * Select specific columns */ select(...columns: string[]): IQueryBuilder; /** * Specify table to query from */ from(table: string): IQueryBuilder; /** * Add WHERE condition with parameters */ where(condition: string, params?: readonly unknown[]): IQueryBuilder; /** * Add WHERE IN condition */ whereIn(column: string, values: readonly unknown[]): IQueryBuilder; /** * Add ORDER BY clause */ orderBy(column: string, direction?: 'ASC' | 'DESC'): IQueryBuilder; /** * Limit number of results */ limit(count: number): IQueryBuilder; /** * Offset results (skip rows) */ offset(count: number): IQueryBuilder; /** * Add INNER JOIN */ join(table: string, condition: string): IQueryBuilder; /** * Add LEFT JOIN */ leftJoin(table: string, condition: string): IQueryBuilder; /** * Execute the query using provided adapter */ execute(adapter: IDatabaseAdapter): Promise>; /** * Abstract methods - MUST be implemented by dialect-specific builders */ abstract insert(data: Partial): IQueryBuilder; abstract insertMany(data: Partial[]): IQueryBuilder; abstract update(data: Partial): IQueryBuilder; abstract delete(): IQueryBuilder; abstract build(): { sql: string; params: any[]; }; } //# sourceMappingURL=BaseQueryBuilder.d.ts.map