import { MockFluidDataStoreRuntime } from "@fluidframework/test-runtime-utils";
import { SharedTreeCore } from "../../shared-tree-core/index.js";
import { typeboxValidator } from "../../external-utilities/index.js";
import { DefaultChangeFamily, TreeCompressionStrategy, defaultSchemaPolicy, makeFieldBatchCodec, } from "../../feature-libraries/index.js";
import { testRevisionTagCodec } from "../utils.js";
import { TreeStoredSchemaRepository } from "../../core/index.js";
/**
 * A `SharedTreeCore` with
 * - some protected methods exposed
 * - encoded data schema validation enabled
 */
export class TestSharedTreeCore extends SharedTreeCore {
    constructor(runtime = new MockFluidDataStoreRuntime(), id = "TestSharedTreeCore", summarizables = [], schema = new TreeStoredSchemaRepository(), chunkCompressionStrategy = TreeCompressionStrategy.Uncompressed) {
        const codecOptions = { jsonValidator: typeboxValidator };
        super(summarizables, new DefaultChangeFamily(testRevisionTagCodec, makeFieldBatchCodec(codecOptions), codecOptions, chunkCompressionStrategy), codecOptions, id, runtime, TestSharedTreeCore.attributes, id, { policy: defaultSchemaPolicy, schema });
    }
    getLocalBranch() {
        return super.getLocalBranch();
    }
}
TestSharedTreeCore.attributes = {
    type: "TestSharedTreeCore",
    snapshotFormatVersion: "0.0.0",
    packageVersion: "0.0.0",
};
//# sourceMappingURL=utils.js.map