/// import { GatsbyIterable } from "../../common/iterable"; import { DbQuery } from "../../common/query"; import { IDataStore, ILmdbDatabases, NodeId } from "../../types"; import { IIndexMetadata, IndexFieldValue, IndexKey, undefinedSymbol } from "./create-index"; export declare const BinaryInfinityNegative: Buffer; export declare const BinaryInfinityPositive: string; type RangeEdgeAfter = [IndexFieldValue, typeof BinaryInfinityPositive]; type RangeEdgeBefore = [typeof undefinedSymbol, IndexFieldValue]; type RangeValue = IndexFieldValue | RangeEdgeAfter | RangeEdgeBefore | typeof BinaryInfinityPositive | typeof BinaryInfinityNegative; type RangeBoundary = Array; export interface IIndexEntry { key: IndexKey; value: NodeId; } interface IIndexRange { start: RangeBoundary; end: RangeBoundary; } export interface IFilterArgs { datastore: IDataStore; databases: ILmdbDatabases; dbQueries: Array; indexMetadata: IIndexMetadata; limit?: number; skip?: number; reverse?: boolean; } interface IFilterContext extends IFilterArgs { usedLimit: number | undefined; usedSkip: number; usedQueries: Set; } export interface IFilterResult { entries: GatsbyIterable; usedQueries: Set; usedLimit: number | undefined; usedSkip: number; } export declare function filterUsingIndex(args: IFilterArgs): IFilterResult; export declare function countUsingIndexOnly(args: IFilterArgs): number; export declare function getIndexRanges(context: IFilterContext): Array; export {};