import { IQueryLimit } from "../Data/Interface/IQueryLimit"; import { IQuery } from "./IQuery"; import { IQueryExpression } from "../Queryable/QueryExpression/IQueryExpression"; import { IExpression } from "../ExpressionBuilder/Expression/IExpression"; import { IQueryParameterMap } from "./IQueryParameter"; import { NamingStrategy } from "./NamingStrategy"; import { IColumnMetaData } from "../MetaData/Interface/IColumnMetaData"; import { IQueryBuilderParameter } from "./IQueryBuilderParameter"; import { ValueType } from "../Common/Type"; import { IQueryOption } from "./IQueryOption"; import { ICompleteColumnType } from "../Common/ICompleteColumnType"; import { IEnumerable } from "../Enumerable/IEnumerable"; export interface IQueryBuilder { queryLimit: IQueryLimit; namingStrategy: NamingStrategy; toQuery(queryExp: IQueryExpression, parameters?: IQueryParameterMap, option?: IQueryOption): IQuery[]; toString(exp: IExpression, param: IQueryBuilderParameter): string; toOperandString(exp: IExpression, param: IQueryBuilderParameter): string; toLogicalString(exp: IExpression, param: IQueryBuilderParameter): string; valueString(value: ValueType): string; lastInsertIdQuery: string; columnTypeString(columnType: ICompleteColumnType): string; newLine(indent?: number, isAdd?: boolean): string; mergeQueries(queries: IEnumerable): IQuery[]; toPropertyValue(input: any, column: IColumnMetaData): T; toParameterValue(input: any, column: IColumnMetaData): any; }