import { MetadataMode } from "../Node.js";
import { Response } from "../Response.js";
import type { ServiceContext } from "../ServiceContext.js";
import { PromptMixin } from "../prompts/Mixin.js";
import type { ResponseBuilderPrompts } from "./builders.js";
import type { BaseSynthesizer, ResponseBuilder, SynthesizeParamsNonStreaming, SynthesizeParamsStreaming } from "./types.js";
/**
 * A ResponseSynthesizer is used to generate a response from a query and a list of nodes.
 */
export declare class ResponseSynthesizer extends PromptMixin implements BaseSynthesizer {
    responseBuilder: ResponseBuilder;
    metadataMode: MetadataMode;
    constructor({ responseBuilder, serviceContext, metadataMode, }?: {
        responseBuilder?: ResponseBuilder;
        serviceContext?: ServiceContext;
        metadataMode?: MetadataMode;
    });
    _getPromptModules(): {};
    protected _getPrompts(): {
        [x: string]: ResponseBuilderPrompts;
    };
    protected _updatePrompts(promptsDict: {
        [x: string]: ResponseBuilderPrompts;
    }): void;
    synthesize(params: SynthesizeParamsStreaming): Promise<AsyncIterable<Response>>;
    synthesize(params: SynthesizeParamsNonStreaming): Promise<Response>;
}
