/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { AllowedUpdateType, ITreeCursor } from "../core";
import { TypedSchemaCollection, SchemaAware, FieldSchema } from "../feature-libraries";
import { ISharedTreeView } from "./sharedTreeView";
/**
 * See {@link ISharedTreeView.schematize} for more details.
 *
 * TODO:
 * - Support adapters for handling out of schema data.
 * - Handle initialization via an adapter.
 * - Support per adapter update policy.
 * - Support lazy schema updates.
 */
export declare function schematizeView(tree: ISharedTreeView, config: SchematizeConfiguration): ISharedTreeView;
/**
 * Options used to schematize a `SharedTree`.
 * See {@link ISharedTreeView.schematize}.
 *
 * @alpha
 */
export interface SchematizeConfiguration<TRoot extends FieldSchema = FieldSchema> {
    /**
     * The schema which the application wants to view the tree with.
     */
    readonly schema: TypedSchemaCollection<TRoot>;
    /**
     * Controls if and how schema from existing documents can be updated to accommodate the view schema.
     */
    readonly allowedSchemaModifications: AllowedUpdateType;
    /**
     * Default tree content to initialize the tree with iff the tree is uninitialized
     * (meaning it does not even have any schema set at all).
     */
    readonly initialTree: SchemaAware.TypedField<TRoot, SchemaAware.ApiMode.Simple> | readonly ITreeCursor[];
}
//# sourceMappingURL=schematizedTree.d.ts.map