/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import type { IFluidHandle } from "@fluidframework/core-interfaces";
import { type IIdCompressor } from "@fluidframework/id-compressor/internal";
import type { ICodecOptions } from "../codec/index.js";
import type { TreeViewConfiguration, ImplicitFieldSchema, TreeViewAlpha } from "../simple-tree/index.js";
import { type JsonCompatible } from "../util/index.js";
import { type ForestOptions } from "./sharedTree.js";
/**
 * Create an uninitialized {@link TreeView} that is not tied to any {@link ITree} instance.
 *
 * @remarks
 * Such a view can never experience collaboration or be persisted to to a Fluid Container.
 *
 * This can be useful for testing, as well as use-cases like working on local files instead of documents stored in some Fluid service.
 * @alpha
 */
export declare function independentView<const TSchema extends ImplicitFieldSchema>(config: TreeViewConfiguration<TSchema>, options: ForestOptions & {
    idCompressor?: IIdCompressor | undefined;
}): TreeViewAlpha<TSchema>;
/**
 * Create an initialized {@link TreeView} that is not tied to any {@link ITree} instance.
 *
 * @remarks
 * Such a view can never experience collaboration or be persisted to to a Fluid Container.
 *
 * This can be useful for testing, as well as use-cases like working on local files instead of documents stored in some Fluid service.
 * @alpha
 */
export declare function independentInitializedView<const TSchema extends ImplicitFieldSchema>(config: TreeViewConfiguration<TSchema>, options: ForestOptions & ICodecOptions, content: ViewContent): TreeViewAlpha<TSchema>;
/**
 * The portion of SharedTree data typically persisted by the container.
 * Usable with {@link independentInitializedView} to create a {@link TreeView}
 * without loading a container.
 * @alpha
 */
export interface ViewContent {
    /**
     * Compressed tree from {@link (TreeAlpha:interface).exportCompressed}.
     * @remarks
     * This is an owning reference:
     * consumers of this content might modify this data in place (for example when applying edits) to avoid copying.
     */
    readonly tree: JsonCompatible<IFluidHandle>;
    /**
     * Persisted schema from {@link extractPersistedSchema}.
     */
    readonly schema: JsonCompatible;
    /**
     * IIdCompressor which will be used to decompress any compressed identifiers in `tree`
     * as well as for any other identifiers added to the view.
     */
    readonly idCompressor: IIdCompressor;
}
//# sourceMappingURL=independentView.d.ts.map