/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { AsyncReducer } from "@fluid-private/stochastic-test-utils";
import { DDSFuzzTestState } from "@fluid-private/test-dds-utils";
import { ISharedTree, SharedTreeFactory } from "../../../shared-tree/index.js";
import { Revertible } from "../../../core/index.js";
import { FieldEdit, FuzzTransactionType, FuzzUndoRedoType, Operation } from "./operationTypes.js";
import { FuzzTestState, FuzzView } from "./fuzzEditGenerators.js";
export declare const fuzzReducer: AsyncReducer<Operation, DDSFuzzTestState<SharedTreeFactory>>;
export declare function checkTreesAreSynchronized(trees: readonly ISharedTree[]): void;
export declare function applySynchronizationOp(state: DDSFuzzTestState<SharedTreeFactory>): void;
/**
 * Assumes tree is using the fuzzSchema.
 * TODO: Maybe take in a schema aware strongly typed Tree node or field.
 */
export declare function applyFieldEdit(tree: FuzzView, fieldEdit: FieldEdit): void;
export declare function applyTransactionEdit(state: FuzzTestState, contents: FuzzTransactionType): void;
export declare function applyUndoRedoEdit(undoStack: Revertible[], redoStack: Revertible[], contents: FuzzUndoRedoType): void;
//# sourceMappingURL=fuzzEditReducers.d.ts.map