import type { TableData, ColumnName, Value } from './data'; import type { Select, ColumnEvaluate, ColumnConfig } from './select'; import type { WhereFilterNode, HavingFilterNode } from './filter'; export interface Query { from: TableData; select: Select; where?: WhereFilterNode; groupBy?: (ColumnName | ColumnEvaluate)[]; having?: HavingFilterNode; orderBy?: OrderColumn[]; limit?: number; } export type OrderColumn = ColumnConfig & Ordering; export type Ordering = { type?: OrderType.Asc | OrderType.Desc; } | { type: OrderType.Manual; manualList: Value[]; }; export declare enum OrderType { Asc = "Asc", Desc = "Desc", Manual = "Manual" }