import { ISqlAdapter } from "@trong-orm/sql"; import { IBaseToken, TokenType } from "../../types"; import { ICompoundState } from "../compounds"; import { ICTEState } from "../cte"; import { IFromState } from "../from"; import { IJoinState } from "../join"; import { ILimitOffsetState } from "../limitOffset"; import { IOrderState } from "../order"; import { IWhereState } from "../where"; import { IValuesStatement } from "./values"; export declare const isSelect: (val: unknown) => val is ISelectStatement; export interface ISelectStatement extends IBaseToken, IOrderState, ICompoundState, ILimitOffsetState, ICTEState, IWhereState, IFromState, IJoinState { _distinctValue: boolean; _selectValues: { toSelect: "*" | string | ISelectStatement | IBaseToken; alias?: string; }[]; _groupByValues: (IBaseToken | string)[]; _havingValue?: IBaseToken; distinct(val: boolean): ISelectStatement; select(...args: ISelectArgType[]): ISelectStatement; groupBy(...values: (IBaseToken | ISqlAdapter | string)[]): ISelectStatement; having(val: IBaseToken | ISqlAdapter): ISelectStatement; } declare type ISelectArgType = "*" | string | ISqlAdapter | ISelectStatement | IValuesStatement | { [key: string]: ISqlAdapter | string | ISelectStatement; } | IBaseToken; export declare const select: (...selectArgs: ISelectArgType[]) => ISelectStatement; export {};