/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { Adapters, TreeSchemaIdentifier } from "../../core";
import { FullSchemaPolicy, SchemaCollection } from "../modular-schema";
import { SchemaLibraryData } from "./schemaBuilder";
import { FieldSchema, TreeSchema } from "./typedTreeSchema";
/**
 * Build and validate a SchemaCollection.
 *
 * As much as possible tries to detect anything that might be a mistake made by the schema author.
 * This will error on some valid but probably never intended to be used patterns
 * (like libraries with the same name, nodes which are impossible to create etc).
 */
export declare function buildViewSchemaCollection(libraries: Iterable<SchemaLibraryData>): SchemaCollection;
export interface ViewSchemaCollection2 {
    readonly rootFieldSchema?: FieldSchema;
    readonly treeSchema: ReadonlyMap<TreeSchemaIdentifier, TreeSchema>;
    readonly policy: FullSchemaPolicy;
    readonly adapters: Adapters;
}
/**
 * Returns an array of descriptions of errors in the collection.
 *
 * As much as possible tries to detect anything that might be a mistake made by the schema author.
 * This will error on some valid but probably never intended to be used patterns (like never nodes).
 */
export declare function validateViewSchemaCollection(collection: ViewSchemaCollection2): string[];
export declare function validateRootField(collection: ViewSchemaCollection2, field: FieldSchema, errors: string[]): void;
export declare function validateField(collection: ViewSchemaCollection2, field: FieldSchema, describeField: () => string, errors: string[]): void;
//# sourceMappingURL=buildViewSchemaCollection.d.ts.map