import { TableSelection } from '../parsing/selection/selection_parsing'; import { Filter } from '../parsing/filtering/filter_parsing'; import { OrderExpression } from '../parsing/sorting/sorting_parsing'; import { JoinExpression } from '../parsing/join_parsing'; import { ColumnTypeRecord, ValueOrNestedValueRecord } from '../record'; import { Table } from '../queries/one/table'; export interface SelectStatement { tableName: string; columns: ColumnTypeRecord; filters: Filter[]; joins: JoinExpression[]; orders: OrderExpression[]; selection: TableSelection | null; distinct: boolean; limit: number | 'all'; offset: number; kind: 'select-statement'; } export declare function createEmptySelectStatement(tableName: string, columns: ColumnTypeRecord): SelectStatement; export declare function addParameterlessFilter(statement: SelectStatement, predicate: Function): SelectStatement; export declare function addParameterizedFilter

(statement: SelectStatement, predicate: Function, userProvided: P): SelectStatement; export declare function addAscendingOrder(statement: SelectStatement, sortBy: Function): SelectStatement; export declare function addDescendingOrder(statement: SelectStatement, sortBy: Function): SelectStatement; export declare function joinTable(statement: SelectStatement, otherTable: Table, left: Function, right: Function): SelectStatement;