import { Geometry } from 'geojson'; import { Observable } from 'rxjs'; import { Location } from '../datatypes/location'; import { ColumnType } from '../soql-query/clauses/column-types'; import { DataSetColumn } from './dataset-column'; import { IGeometryFilter } from './filters/igeometry-filter'; import { ILocationFilter } from './filters/ilocation-filter'; import { IWhereFilter } from './filters/where-filter'; export interface IQueryable { select(column: DataSetColumn): IQueryable; where(column: DataSetColumn): IWhereFilter; location(column: (type: TEntity) => Location): ILocationFilter; geometry(column: (type: TEntity) => Geometry): IGeometryFilter; limit(records: number): IQueryable; offset(records: number): IQueryable; orderBy(column: DataSetColumn, descending?: boolean): IQueryable; observable(): Observable; toString(): string; }