import { createIdCompressor, SerializedIdCompressorWithNoSession, SessionId } from "@fluidframework/id-compressor";
import { Anchor, UpPath, Value, Revertible } from "../../../core/index.js";
import { FlexFieldSchema, FlexTreeObjectNodeTyped } from "../../../feature-libraries/index.js";
import { SharedTree, ITreeCheckout } from "../../../shared-tree/index.js";
export declare const fuzzNode: import("../../../feature-libraries/index.js").FlexObjectNodeSchema<"tree2fuzz.node", {
    readonly requiredChild: FlexFieldSchema<import("../../../feature-libraries/index.js").Required, readonly [() => import("../../../feature-libraries/index.js").FlexObjectNodeSchema<"tree2fuzz.node", any>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.number", import("../../../core/index.js").ValueSchema.Number>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.boolean", import("../../../core/index.js").ValueSchema.Boolean>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.string", import("../../../core/index.js").ValueSchema.String>]>;
    readonly optionalChild: FlexFieldSchema<import("../../../feature-libraries/index.js").Optional, readonly [() => import("../../../feature-libraries/index.js").FlexObjectNodeSchema<"tree2fuzz.node", any>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.number", import("../../../core/index.js").ValueSchema.Number>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.boolean", import("../../../core/index.js").ValueSchema.Boolean>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.string", import("../../../core/index.js").ValueSchema.String>]>;
    readonly sequenceChildren: FlexFieldSchema<import("../../../feature-libraries/index.js").Sequence, readonly [() => import("../../../feature-libraries/index.js").FlexObjectNodeSchema<"tree2fuzz.node", any>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.number", import("../../../core/index.js").ValueSchema.Number>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.boolean", import("../../../core/index.js").ValueSchema.Boolean>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.string", import("../../../core/index.js").ValueSchema.String>]>;
}>;
export type FuzzNodeSchema = typeof fuzzNode;
export type FuzzNode = FlexTreeObjectNodeTyped<FuzzNodeSchema>;
export declare const fuzzSchema: import("../../../feature-libraries/index.js").FlexTreeSchema<FlexFieldSchema<import("../../../feature-libraries/index.js").Optional, readonly [() => import("../../../feature-libraries/index.js").FlexObjectNodeSchema<"tree2fuzz.node", {
    readonly requiredChild: FlexFieldSchema<import("../../../feature-libraries/index.js").Required, readonly [() => import("../../../feature-libraries/index.js").FlexObjectNodeSchema<"tree2fuzz.node", any>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.number", import("../../../core/index.js").ValueSchema.Number>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.boolean", import("../../../core/index.js").ValueSchema.Boolean>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.string", import("../../../core/index.js").ValueSchema.String>]>;
    readonly optionalChild: FlexFieldSchema<import("../../../feature-libraries/index.js").Optional, readonly [any, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.number", import("../../../core/index.js").ValueSchema.Number>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.boolean", import("../../../core/index.js").ValueSchema.Boolean>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.string", import("../../../core/index.js").ValueSchema.String>]>;
    readonly sequenceChildren: FlexFieldSchema<import("../../../feature-libraries/index.js").Sequence, readonly [() => import("../../../feature-libraries/index.js").FlexObjectNodeSchema<"tree2fuzz.node", any>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.number", import("../../../core/index.js").ValueSchema.Number>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.boolean", import("../../../core/index.js").ValueSchema.Boolean>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.string", import("../../../core/index.js").ValueSchema.String>]>;
}>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.number", import("../../../core/index.js").ValueSchema.Number>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.boolean", import("../../../core/index.js").ValueSchema.Boolean>, import("../../../feature-libraries/index.js").LeafNodeSchema<"com.fluidframework.leaf.string", import("../../../core/index.js").ValueSchema.String>]>>;
export declare const onCreate: (tree: SharedTree) => void;
/**
 * Asserts that each anchor in `anchors` points to a node in `view` holding the provided value.
 * If `checkPaths` is provided, also asserts the located node has the provided path.
 */
export declare function validateAnchors(view: ITreeCheckout, anchors: ReadonlyMap<Anchor, [UpPath, Value]>, checkPaths: boolean): void;
export declare function createAnchors(tree: ITreeCheckout): Map<Anchor, [UpPath, Value]>;
export type RevertibleSharedTreeView = ITreeCheckout & {
    undoStack: Revertible[];
    redoStack: Revertible[];
    unsubscribe: () => void;
};
export declare function isRevertibleSharedTreeView(s: ITreeCheckout): s is RevertibleSharedTreeView;
export declare const failureDirectory: string;
export declare const createOrDeserializeCompressor: (sessionId: SessionId, summary?: SerializedIdCompressorWithNoSession) => import("@fluidframework/id-compressor").IIdCompressor & import("@fluidframework/id-compressor").IIdCompressorCore;
export declare const deterministicIdCompressorFactory: (seed: number) => (summary?: SerializedIdCompressorWithNoSession) => ReturnType<typeof createIdCompressor>;
//# sourceMappingURL=fuzzUtils.d.ts.map