import {MemoryBranchNode} from "../MemoryBranchNode"; import {BranchData, BranchNode, StateBranchNode} from "../StateBranchNode"; import {GroveExporter} from "./GroveExporter"; export interface StoreExporter { export(target: ExportImportTarget): Format; } /** * This is an internal exporter, that is, one that exports internal data, no data to export is passed to its arguments. */ export interface DataExporter { exportData(target: ExportImportTarget, groveExporter?: GroveExporter): Out } export interface BranchExporter { canExport(branch: BranchNode): boolean; export = Record, ChildrenType = any>(branch: BranchNode): BranchData; } export type ExportImportTarget = 'preset' | 'server' | 'clone-tier'