import { ECSqlQueryDef, ECSqlQueryExecutor, ECSqlQueryReaderOptions } from "@itwin/presentation-shared";
/**
 * An interface for something that knows how to create a limiting ECSQL query reader.
 * @public
 */
export interface LimitingECSqlQueryExecutor {
    /**
     * Creates a query reader for given query, but makes sure it doesn't return more than the configured
     * limit of rows.
     * @throws `RowsLimitExceededError` when the query returns more than configured limit of rows.
     */
    createQueryReader(query: ECSqlQueryDef, config?: ECSqlQueryReaderOptions & {
        limit?: number | "unbounded";
    }): ReturnType<ECSqlQueryExecutor["createQueryReader"]>;
}
/**
 * Creates an `LimitingECSqlQueryExecutor` that throws `RowsLimitExceededError` if the query exceeds given amount of rows.
 * @public
 */
export declare function createLimitingECSqlQueryExecutor(baseExecutor: ECSqlQueryExecutor, defaultLimit: number | "unbounded"): LimitingECSqlQueryExecutor;
//# sourceMappingURL=LimitingECSqlQueryExecutor.d.ts.map