/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { ValueSchema } from "../core";
/**
 * Built-in {@link LeafNodeSchema}.
 * @alpha
 */
export declare const leaf: {
    /**
     * {@link LeafNodeSchema} for holding a JavaScript `number`.
     *
     * @remarks
     * The number is a [double-precision 64-bit binary format IEEE 754](https://en.wikipedia.org/wiki/Double-precision_floating-point_format) value, however there are some exceptions:
     * - `NaN`, and the infinities should not be used.
     * - `-0` may be converted to `0` in some cases.
     *
     * These limitations match the limitations of JSON.
     * @privateRemarks
     * TODO:
     * We should be much more clear about what happens if you use problematic values.
     * We should validate and/or normalize them when inserting content.
     */
    number: import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.number", ValueSchema.Number>;
    /**
     * {@link LeafNodeSchema} for holding a boolean.
     */
    boolean: import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.boolean", ValueSchema.Boolean>;
    /**
     * {@link LeafNodeSchema} for holding a JavaScript `string`.
     *
     * @remarks
     * Strings containing unpaired UTF-16 surrogate pair code units may not be handled correctly.
     *
     * These limitations come from the use of UTF-8 encoding of the strings, which requires them to be valid unicode.
     * JavaScript does not make this requirement for its strings so not all possible JavaScript strings are supported.
     * @privateRemarks
     * TODO:
     * We should be much more clear about what happens if you use problematic values.
     * We should validate and/or normalize them when inserting content.
     */
    string: import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.string", ValueSchema.String>;
    /**
     * {@link LeafNodeSchema} for holding an {@link @fluidframework/core-interfaces#IFluidHandle}.
     */
    handle: import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.handle", ValueSchema.FluidHandle>;
    /**
     * {@link LeafNodeSchema} for JavaScript `null`.
     *
     * @remarks
     * There are good [reasons to avoid using null](https://www.npmjs.com/package/%40rushstack/eslint-plugin#rushstackno-new-null) in JavaScript, however sometimes it is desired.
     * This {@link LeafNodeSchema} node provide the option to include nulls in trees when desired.
     * Unless directly inter-operating with existing data using null, consider other approaches, like wrapping the value in an optional field, or using a more specifically named empty object node.
     */
    null: import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.null", ValueSchema.Null>;
    /**
     * The set of {@link LeafNodeSchema} which correspond to JavaScript primitive (non-object) types.
     */
    primitives: readonly [import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.number", ValueSchema.Number>, import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.boolean", ValueSchema.Boolean>, import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.string", ValueSchema.String>];
    /**
     * All {@link LeafNodeSchema} defined in this library..
     */
    all: readonly [import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.handle", ValueSchema.FluidHandle>, import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.null", ValueSchema.Null>, import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.number", ValueSchema.Number>, import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.boolean", ValueSchema.Boolean>, import("../feature-libraries").LeafNodeSchema<"com.fluidframework.leaf.string", ValueSchema.String>];
    /**
     * {@link SchemaLibrary} of the {@link LeafNodeSchema}.
     *
     * @privateRemarks
     * This is included by default in schema produced with {@link SchemaBuilder}.
     */
    library: import("../feature-libraries").SchemaLibrary;
};
//# sourceMappingURL=leafDomain.d.ts.map