import { JSONValue } from "../../values/index.js"; import { PaginationResult, PaginationOptions } from "../pagination.js"; import { Query, QueryInitializer } from "../query.js"; import { ExpressionOrValue, FilterBuilder } from "../filter_builder.js"; import { GenericTableInfo } from "../data_model.js"; import { IndexRangeBuilderImpl, SerializedRangeExpression } from "./index_range_builder_impl.js"; import { SearchFilterBuilderImpl, SerializedSearchFilter } from "./search_filter_builder_impl.js"; type QueryOperator = { filter: JSONValue; } | { limit: number; }; type Source = { type: "FullTableScan"; tableName: string; order: "asc" | "desc" | null; } | { type: "IndexRange"; indexName: string; range: ReadonlyArray; order: "asc" | "desc" | null; } | { type: "Search"; indexName: string; filters: ReadonlyArray; }; type SerializedQuery = { source: Source; operators: Array; }; export declare class QueryInitializerImpl implements QueryInitializer { private tableName; constructor(tableName: string); withIndex(indexName: string, indexRange?: (q: IndexRangeBuilderImpl) => IndexRangeBuilderImpl): QueryImpl; withSearchIndex(indexName: string, searchFilter: (q: SearchFilterBuilderImpl) => SearchFilterBuilderImpl): QueryImpl; fullTableScan(): QueryImpl; order(order: "asc" | "desc"): QueryImpl; count(): Promise; filter(predicate: (q: FilterBuilder) => ExpressionOrValue): any; limit(n: number): any; collect(): Promise; take(n: number): Promise>; paginate(paginationOpts: PaginationOptions): Promise>; first(): Promise; unique(): Promise; [Symbol.asyncIterator](): AsyncIterableIterator; } export declare class QueryImpl implements Query { private state; private tableNameForErrorMessages; constructor(query: SerializedQuery); private takeQuery; private startQuery; private closeQuery; order(order: "asc" | "desc"): QueryImpl; filter(predicate: (q: FilterBuilder) => ExpressionOrValue): any; limit(n: number): any; [Symbol.asyncIterator](): AsyncIterableIterator; next(): Promise>; return(): Promise<{ done: boolean; value: undefined; }>; paginate(paginationOpts: PaginationOptions): Promise>; collect(): Promise>; take(n: number): Promise>; first(): Promise; unique(): Promise; } export {}; //# sourceMappingURL=query_impl.d.ts.map