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