import type { Response } from "../../Response.js";
import type { BaseRetriever } from "../../Retriever.js";
import type { BaseNodePostprocessor } from "../../postprocessors/index.js";
import { PromptMixin } from "../../prompts/Mixin.js";
import type { BaseSynthesizer } from "../../synthesizers/index.js";
import type { QueryEngine, QueryEngineParamsNonStreaming, QueryEngineParamsStreaming } from "../../types.js";
/**
 * A query engine that uses a retriever to query an index and then synthesizes the response.
 */
export declare class RetrieverQueryEngine extends PromptMixin implements QueryEngine {
    retriever: BaseRetriever;
    responseSynthesizer: BaseSynthesizer;
    nodePostprocessors: BaseNodePostprocessor[];
    preFilters?: unknown;
    constructor(retriever: BaseRetriever, responseSynthesizer?: BaseSynthesizer, preFilters?: unknown, nodePostprocessors?: BaseNodePostprocessor[]);
    _getPromptModules(): {
        responseSynthesizer: BaseSynthesizer;
    };
    private applyNodePostprocessors;
    private retrieve;
    query(params: QueryEngineParamsStreaming): Promise<AsyncIterable<Response>>;
    query(params: QueryEngineParamsNonStreaming): Promise<Response>;
}
