import { QueryCtx } from "../_generated/server.js";
import { Interval } from "../lib/interval.js";
import { Logger } from "../lib/logging.js";
import { TupleKey } from "../lib/tupleKey.js";
import { PointSet, Stats } from "./zigzag.js";
export declare abstract class DatabaseRange implements PointSet {
    protected ctx: QueryCtx;
    protected logger: Logger;
    protected cursor: TupleKey | undefined;
    protected interval: Interval;
    protected prefetchSize: number;
    protected stats: Stats;
    private state;
    constructor(ctx: QueryCtx, logger: Logger, cursor: TupleKey | undefined, interval: Interval, prefetchSize: number, stats: Stats);
    abstract initialQuery(): Promise<TupleKey[]>;
    abstract advanceQuery(lastKey: TupleKey): Promise<TupleKey[]>;
    abstract seekQuery(tuple: TupleKey): Promise<TupleKey[]>;
    abstract getCounterKey(): string;
    current(): Promise<TupleKey | null>;
    advance(): Promise<TupleKey | null>;
    seek(tuple: TupleKey): Promise<void>;
    sizeHint(): Promise<number>;
    setPrefetch(prefetch: number): void;
    protected applyInterval(q: any): any;
}
//# sourceMappingURL=databaseRange.d.ts.map