export declare const SqlAnsiOperator: { readonly equal: "="; readonly notEqual: "<>"; readonly greaterThan: ">"; readonly greaterEqualThan: ">="; readonly lessThan: "<"; readonly lessEqualThan: "<="; readonly like: "like"; readonly notLike: "not like"; readonly in: "in"; readonly notIn: "not in"; readonly between: "between"; readonly notBetween: "not between"; readonly is: "is"; readonly isNot: "is not"; }; export type SqlAnsiOperator = typeof SqlAnsiOperator[keyof typeof SqlAnsiOperator]; export declare const SqlAnsiLogicOperator: { readonly and: "and"; readonly or: "or"; }; export type SqlAnsiLogicOperator = typeof SqlAnsiLogicOperator[keyof typeof SqlAnsiLogicOperator]; /***************************************** * Condition *****************************************/ export interface BaseSqlComponent { expression?: string; } export declare class BaseSqlComponent implements BaseSqlComponent { constructor(init?: any); } /***************************************** * Condition *****************************************/ export interface Column { name?: SelectQuery | UnionQuery | WithQuery | string | number; alias?: string; } export declare class Column extends BaseSqlComponent implements Column { constructor(init?: Partial | [SelectQuery | UnionQuery | WithQuery | string | number, string?] | SelectQuery | UnionQuery | WithQuery | string | number); } /***************************************** * Condition *****************************************/ export declare class Condition extends BaseSqlComponent { leftOperand?: any; operator?: SqlAnsiOperator; rightOperand?: any; constructor(init?: Partial | [any, SqlAnsiOperator, any] | string); } /***************************************** * Condition *****************************************/ export declare class LogicExpression extends BaseSqlComponent { and?: (Condition | LogicExpression | [any, SqlAnsiOperator, any] | string)[]; or?: (Condition | LogicExpression | [any, SqlAnsiOperator, any] | string)[]; not?: (Condition | LogicExpression | [any, SqlAnsiOperator, any] | string)[]; exists?: SelectQuery | UnionQuery | WithQuery | string; notExists?: SelectQuery | UnionQuery | WithQuery | string; constructor(init?: Partial | string); } /***************************************** * FromTable *****************************************/ export interface FromTable extends BaseSqlComponent { table?: SelectQuery | UnionQuery | WithQuery | string; alias?: string; } export declare class FromTable extends BaseSqlComponent implements FromTable { constructor(init?: Partial | [SelectQuery | UnionQuery | WithQuery | string, string?] | SelectQuery | UnionQuery | WithQuery | string); } /***************************************** * FromTable *****************************************/ export interface JoinTable extends FromTable { join?: 'inner' | 'left' | 'right' | 'cross' | undefined; on?: (Condition | LogicExpression | [any, SqlAnsiOperator, any] | string)[]; } export declare class JoinTable extends FromTable implements JoinTable { constructor(init?: Partial | [Partial | [SelectQuery | UnionQuery | WithQuery | string, string?] | SelectQuery | UnionQuery | WithQuery | string, 'inner' | 'left' | 'right' | 'cross', (Condition | LogicExpression | [any, SqlAnsiOperator, any] | string)[]] | Partial | [SelectQuery | UnionQuery | WithQuery | string, string?] | SelectQuery | UnionQuery | WithQuery | string); } /***************************************** * SelectQuery *****************************************/ export interface SelectQuery extends BaseSqlComponent { columns?: (Column | [SelectQuery | UnionQuery | WithQuery | string | number, string?] | SelectQuery | UnionQuery | WithQuery | string | number)[]; from?: (FromTable | JoinTable)[]; where?: (Condition | LogicExpression | [any, SqlAnsiOperator, any] | string)[]; groupBy?: (Column | [SelectQuery | UnionQuery | WithQuery | string | number, string?] | SelectQuery | UnionQuery | WithQuery | string | number)[]; having?: (Condition | LogicExpression | [any, SqlAnsiOperator, any] | string)[]; orderBy?: (Column | [SelectQuery | UnionQuery | WithQuery | string | number, string?] | SelectQuery | UnionQuery | WithQuery | string | number)[]; limit?: [number, number?]; } export declare class SelectQuery extends BaseSqlComponent implements SelectQuery { constructor(init?: Partial | string); } /***************************************** * UnionQuery *****************************************/ export interface UnionQuery extends BaseSqlComponent { all?: boolean; queries?: (SelectQuery | UnionQuery | WithQuery)[]; } export declare class UnionQuery extends BaseSqlComponent implements UnionQuery { constructor(init?: Partial | string); } /***************************************** * WithQuery *****************************************/ export interface WithQuery extends BaseSqlComponent { queries: { query: SelectQuery | UnionQuery | WithQuery | string; alias: string; }[]; mainQuery: SelectQuery | UnionQuery | WithQuery | string; } export declare class WithQuery extends BaseSqlComponent implements WithQuery { constructor(init?: Partial | string); }