import { QueryRange } from "../../routing/QueryRange.js";
import type { QueryRangeMapping } from "../../queryExecutionContext/queryRangeMapping.js";
/**
 * @hidden
 */
export interface RangeBoundary {
    /**
     * Minimum boundary (inclusive)
     */
    min: string;
    /**
     * Maximum boundary (exclusive)
     */
    max: string;
}
/**
 * @hidden
 * Base interface for all continuation tokens containing common fields
 */
export interface BaseContinuationToken {
    /**
     * Resource ID of the container for which the continuation token is issued
     */
    rid: string;
    /**
     * List of query ranges with their continuation tokens
     */
    rangeMappings: QueryRangeWithContinuationToken[];
    /**
     * Current offset value for OFFSET/LIMIT queries
     */
    offset?: number;
    /**
     * Current limit value for OFFSET/LIMIT queries
     */
    limit?: number;
}
/**
 * @hidden
 * Composite continuation token for parallel query execution across multiple partition ranges
 */
export interface CompositeQueryContinuationToken extends BaseContinuationToken {
}
/**
 * Creates a new CompositeQueryContinuationToken
 * @hidden
 */
export declare function createCompositeQueryContinuationToken(rid: string, rangeMappings: QueryRangeWithContinuationToken[], offset?: number, limit?: number): CompositeQueryContinuationToken;
/**
 * Serializes the composite continuation token to a JSON string
 * @hidden
 */
export declare function serializeCompositeToken(token: CompositeQueryContinuationToken): string;
/**
 * Deserializes a JSON string to a CompositeQueryContinuationToken
 * @hidden
 */
export declare function parseCompositeQueryContinuationToken(tokenString: string): CompositeQueryContinuationToken;
/**
 * Deserializes a JSON string to a CompositeQueryContinuationToken
 * @hidden
 */
export declare function parseBaseContinuationToken(tokenString: string): BaseContinuationToken;
/**
 * @hidden
 * Represents a query range with its associated continuation token
 */
export interface QueryRangeWithContinuationToken {
    /**
     * The simplified query range containing min/max boundaries
     */
    queryRange: RangeBoundary;
    /**
     * The continuation token for this specific range
     */
    continuationToken: string | undefined;
}
/**
 * Converts QueryRangeMapping to QueryRangeWithContinuationToken using simplified range format
 * @param rangeMapping - The QueryRangeMapping to convert
 * @returns QueryRangeWithContinuationToken with simplified boundaries and continuation token
 * @hidden
 */
export declare function convertRangeMappingToQueryRange(rangeMapping: QueryRangeMapping): QueryRangeWithContinuationToken;
/**
 * Converts an array of QueryRangeMapping to an array of QueryRangeWithContinuationToken
 * @param rangeMappings - Array of QueryRangeMapping to convert
 * @returns Array of QueryRangeWithContinuationToken with simplified boundaries and continuation tokens
 * @hidden
 */
export declare function convertRangeMappingsToQueryRangesWithTokens(rangeMappings: QueryRangeMapping[]): QueryRangeWithContinuationToken[];
/**
 * Converts a SimplifiedQueryRange back to a QueryRange for internal use
 * @param simplifiedRange - The simplified range to convert
 * @returns QueryRange with standard assumptions (min inclusive, max exclusive)
 * @hidden
 */
export declare function convertSimplifiedRangeToQueryRange(simplifiedRange: RangeBoundary): QueryRange;
//# sourceMappingURL=CompositeQueryContinuationToken.d.ts.map