/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { IPromiseTimer } from "@fluidframework/core-utils/internal";
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
import type { IRefreshSummaryAckOptions, ISubmitSummaryOptions, ISummarizeHeuristicData, SubmitSummaryResult } from "../summarizerTypes.js";
import type { IClientSummaryWatcher } from "../summaryCollection.js";
import { SummarizeResultBuilder } from "./summaryResultBuilder.js";
import { type ISummarizeResults } from "./summaryResultTypes.js";
/**
 * This class generates and tracks a summary attempt.
 */
export declare class SummaryGenerator {
    private readonly pendingAckTimer;
    private readonly heuristicData;
    private readonly submitSummaryCallback;
    private readonly successfulSummaryCallback;
    private readonly refreshLatestSummaryCallback;
    private readonly summaryWatcher;
    private readonly logger;
    private readonly summarizeTimer;
    constructor(pendingAckTimer: IPromiseTimer, heuristicData: ISummarizeHeuristicData, submitSummaryCallback: (options: ISubmitSummaryOptions) => Promise<SubmitSummaryResult>, successfulSummaryCallback: () => void, refreshLatestSummaryCallback: (options: IRefreshSummaryAckOptions) => Promise<void>, summaryWatcher: Pick<IClientSummaryWatcher, "watchSummary">, logger: ITelemetryLoggerExt);
    /**
     * Generates summary and listens for broadcast and ack/nack.
     * Returns true for ack, false for nack, and undefined for failure or timeout.
     * @param summaryOptions - options controlling how the summary is generated or submitted.
     * @param resultsBuilder - optional, result builder to use to build pass or fail result.
     */
    summarize(summaryOptions: ISubmitSummaryOptions, resultsBuilder?: SummarizeResultBuilder): ISummarizeResults;
    private summarizeCore;
    private addSummaryDataToTelemetryProps;
    private summarizeTimerHandler;
    dispose(): void;
}
//# sourceMappingURL=summaryGenerator.d.ts.map