/**
 * SQLクエリビルダー
 */
export interface QueryCondition {
    field: string;
    operator: 'eq' | 'ne' | 'gt' | 'lt' | 'gte' | 'lte' | 'like' | 'in' | 'between';
    value: any;
}
export interface QueryOrder {
    field: string;
    direction: 'ASC' | 'DESC';
}
export declare class QueryBuilder {
    private conditions;
    private orders;
    private limitValue?;
    private offsetValue?;
    private selectFields;
    private tableName?;
    /**
     * テーブルを指定
     */
    from(table: string): QueryBuilder;
    /**
     * 選択フィールドを指定
     */
    select(...fields: string[]): QueryBuilder;
    /**
     * 条件を追加
     */
    where(field: string, operator: QueryCondition['operator'], value: any): QueryBuilder;
    /**
     * 等価条件を追加
     */
    whereEquals(field: string, value: any): QueryBuilder;
    /**
     * ソート条件を追加
     */
    orderBy(field: string, direction?: 'ASC' | 'DESC'): QueryBuilder;
    /**
     * 取得数制限
     */
    limit(count: number): QueryBuilder;
    /**
     * オフセット
     */
    offset(count: number): QueryBuilder;
    /**
     * SQLクエリを構築
     */
    toSQL(): string;
    /**
     * 条件を構築
     */
    private buildCondition;
    /**
     * 値をエスケープ
     */
    private escapeValue;
    /**
     * クエリビルダーをリセット
     */
    reset(): QueryBuilder;
    /**
     * クエリビルダーを複製
     */
    clone(): QueryBuilder;
}
