/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import type { IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
import type { IIdCompressor } from "@fluidframework/id-compressor";
import type { IExperimentalIncrementalSummaryContext, ISummaryTreeWithStats, ITelemetryContext } from "@fluidframework/runtime-definitions/internal";
import type { CodecWriteOptions } from "../../codec/index.js";
import { type IEditableForest, type RevisionTagCodec } from "../../core/index.js";
import type { Summarizable, SummaryElementParser, SummaryElementStringifier } from "../../shared-tree-core/index.js";
import type { FieldBatchCodec, FieldBatchEncodingContext } from "../chunked-forest/index.js";
/**
 * The storage key for the blob in the summary containing tree data
 */
export declare const treeBlobKey = "ForestTree";
/**
 * Provides methods for summarizing and loading a forest.
 */
export declare class ForestSummarizer implements Summarizable {
    private readonly forest;
    private readonly revisionTagCodec;
    private readonly encoderContext;
    private readonly idCompressor;
    readonly key = "Forest";
    private readonly codec;
    /**
     * @param encoderContext - The schema if provided here must be mutated by the caller to keep it up to date.
     */
    constructor(forest: IEditableForest, revisionTagCodec: RevisionTagCodec, fieldBatchCodec: FieldBatchCodec, encoderContext: FieldBatchEncodingContext, options: CodecWriteOptions, idCompressor: IIdCompressor);
    /**
     * Synchronous monolithic summarization of tree content.
     *
     * TODO: when perf matters, this should be replaced with a chunked async version using a binary format.
     *
     * @returns a snapshot of the forest's tree as a string.
     */
    private getTreeString;
    summarize(props: {
        stringify: SummaryElementStringifier;
        fullTree?: boolean;
        trackState?: boolean;
        telemetryContext?: ITelemetryContext;
        incrementalSummaryContext?: IExperimentalIncrementalSummaryContext;
    }): ISummaryTreeWithStats;
    load(services: IChannelStorageService, parse: SummaryElementParser): Promise<void>;
}
//# sourceMappingURL=forestSummarizer.d.ts.map