/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import type { IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
import type { IExperimentalIncrementalSummaryContext, ISummaryTreeWithStats, ITelemetryContext } from "@fluidframework/runtime-definitions/internal";
import type { IJsonCodec } from "../../codec/index.js";
import { type MutableTreeStoredSchema, type TreeStoredSchema } from "../../core/index.js";
import type { Summarizable, SummaryElementParser, SummaryElementStringifier } from "../../shared-tree-core/index.js";
import type { JsonCompatible } from "../../util/index.js";
import type { CollabWindow } from "../incrementalSummarizationUtils.js";
/**
 * Provides methods for summarizing and loading a schema repository.
 */
export declare class SchemaSummarizer implements Summarizable {
    private readonly schema;
    private readonly codec;
    readonly key = "Schema";
    private schemaIndexLastChangedSeq;
    constructor(schema: MutableTreeStoredSchema, collabWindow: CollabWindow, codec: IJsonCodec<TreeStoredSchema>);
    summarize(props: {
        stringify: SummaryElementStringifier;
        fullTree?: boolean;
        trackState?: boolean;
        telemetryContext?: ITelemetryContext;
        incrementalSummaryContext?: IExperimentalIncrementalSummaryContext;
    }): ISummaryTreeWithStats;
    load(services: IChannelStorageService, parse: SummaryElementParser): Promise<void>;
}
/**
 * Dumps schema into a deterministic JSON compatible semi-human readable format.
 *
 * @remarks
 * This can be used to help inspect schema for debugging, and to save a snapshot of schema to help detect and review changes to an applications schema.
 */
export declare function encodeTreeSchema(schema: TreeStoredSchema, writeVersion: number): JsonCompatible;
//# sourceMappingURL=schemaSummarizer.d.ts.map