/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { IFluidHandle } from "@fluidframework/core-interfaces";
import { IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
import { ISummaryTreeWithStats } from "@fluidframework/runtime-definitions/internal";
import { IFluidSerializer } from "@fluidframework/shared-object-base/internal";
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
import { MergeTree } from "./mergeTree.js";
import { PropertySet } from "./properties.js";
import { JsonSegmentSpecs, MergeTreeChunkV1 } from "./snapshotChunks.js";
export declare class SnapshotV1 {
    mergeTree: MergeTree;
    private readonly getLongClientId;
    filename?: string | undefined;
    onCompletion?: (() => void) | undefined;
    static readonly chunkSize: number;
    private readonly header;
    private readonly segments;
    private readonly segmentLengths;
    private readonly attributionCollections;
    private readonly logger;
    private readonly chunkSize;
    constructor(mergeTree: MergeTree, logger: ITelemetryLoggerExt, getLongClientId: (id: number) => string, filename?: string | undefined, onCompletion?: (() => void) | undefined);
    private getSeqLengthSegs;
    /**
     * Emits the snapshot to an ISummarizeResult. If provided the optional IFluidSerializer will be used when
     * serializing the summary data rather than JSON.stringify.
     */
    emit(serializer: IFluidSerializer, bind: IFluidHandle): ISummaryTreeWithStats;
    extractSync(): JsonSegmentSpecs[];
    static loadChunk(storage: IChannelStorageService, path: string, logger: ITelemetryLoggerExt, options: PropertySet | undefined, serializer?: IFluidSerializer): Promise<MergeTreeChunkV1>;
    static processChunk(path: string, chunk: string, logger: ITelemetryLoggerExt, options: PropertySet | undefined, serializer?: IFluidSerializer): MergeTreeChunkV1;
}
//# sourceMappingURL=snapshotV1.d.ts.map