import { ISql } from "@trong-orm/sql"; import { IBaseToken, TokenType } from "../types"; import { ISelectStatement } from "./statements/select"; import { IValuesStatement } from "./statements/values"; export interface ICTETerm extends IBaseToken { _recursive: boolean; _values: { table: string; columns: string[]; select: ISelectStatement | IValuesStatement | IBaseToken; }[]; } export interface ICTEState { _cteValue?: ICTETerm; with: typeof With; withRecursive: typeof withRecursive; withoutWith: typeof withoutWith; } export declare function With(this: T, args: { table: string; columns: string[]; select: ISelectStatement | IValuesStatement | ISql; }): T; export declare function withRecursive(this: T, args: { table: string; columns: string[]; select: ISelectStatement | IValuesStatement | ISql; }): T; export declare function withoutWith(this: T): T;