/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { Deferred } from "@fluidframework/core-utils/internal";
import { SubmitSummaryFailureData, SubmitSummaryResult, SummarizeResultPart, type IRetriableFailureError } from "../index.js";
import type { IAckSummaryResult, IBroadcastSummaryResult, INackSummaryResult, ISummarizeResults } from "./summaryResultTypes.js";
export declare class SummarizeResultBuilder {
    readonly summarySubmitted: Deferred<SummarizeResultPart<SubmitSummaryResult, SubmitSummaryFailureData>>;
    readonly summaryOpBroadcasted: Deferred<SummarizeResultPart<IBroadcastSummaryResult>>;
    readonly receivedSummaryAckOrNack: Deferred<SummarizeResultPart<IAckSummaryResult, INackSummaryResult>>;
    /**
     * Fails one or more of the three results as per the passed params.
     * If submit fails, all three results fail.
     * If op broadcast fails, only op broadcast result and ack nack result fails.
     * If ack nack fails, only ack nack result fails.
     */
    fail(message: string, error: IRetriableFailureError, submitFailureResult?: SubmitSummaryFailureData, nackSummaryResult?: INackSummaryResult): void;
    build(): ISummarizeResults;
}
//# sourceMappingURL=summaryResultBuilder.d.ts.map