/*!
 * 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, ITelemetryContext, MinimumVersionForCollab } from "@fluidframework/runtime-definitions/internal";
import type { SummaryTreeBuilder } from "@fluidframework/runtime-utils/internal";
import type { IJsonCodec } from "../../codec/index.js";
import { type MutableTreeStoredSchema, type TreeStoredSchema } from "../../core/index.js";
import { VersionedSummarizer, type Summarizable, type SummaryElementParser, type SummaryElementStringifier } from "../../shared-tree-core/index.js";
import type { CollabWindow } from "../incrementalSummarizationUtils.js";
export declare const schemaStringKey = "SchemaString";
/**
 * The versions for the schema summary format.
 */
export declare const enum SchemaSummaryFormatVersion {
    /**
     * This version represents summary format before summary versioning was introduced.
     */
    v1 = 1,
    /**
     * This version adds metadata to the summary. This is backward compatible with version 1.
     */
    v2 = 2,
    /**
     * The latest version of the summary. Must be updated when a new version is added.
     */
    vLatest = 2
}
/**
 * Provides methods for summarizing and loading a schema repository.
 */
export declare class SchemaSummarizer extends VersionedSummarizer<SchemaSummaryFormatVersion> implements Summarizable {
    private readonly schema;
    private readonly codec;
    private schemaIndexLastChangedSeq;
    constructor(schema: MutableTreeStoredSchema, collabWindow: CollabWindow, codec: IJsonCodec<TreeStoredSchema>, minVersionForCollab: MinimumVersionForCollab);
    protected summarizeInternal(props: {
        stringify: SummaryElementStringifier;
        fullTree?: boolean;
        trackState?: boolean;
        telemetryContext?: ITelemetryContext;
        incrementalSummaryContext?: IExperimentalIncrementalSummaryContext;
        builder: SummaryTreeBuilder;
    }): void;
    protected loadInternal(services: IChannelStorageService, parse: SummaryElementParser): Promise<void>;
}
//# sourceMappingURL=schemaSummarizer.d.ts.map