import type { StateVersion } from './types.js'; import type { FileSystem } from '../types.js'; import Logger from '@matrixai/logger'; import { createDestroyStartStop } from '@matrixai/async-init'; import { RWLockWriter } from '@matrixai/async-locks'; interface Schema extends createDestroyStartStop.CreateDestroyStartStop { } declare class Schema { static createSchema({ statePath, stateVersion, fs, logger, fresh, }: { statePath: string; stateVersion?: StateVersion; fs?: FileSystem; logger?: Logger; fresh?: boolean; }): Promise; readonly statePath: string; readonly stateVersionPath: string; readonly stateVersion: StateVersion; protected lock: RWLockWriter; protected fs: FileSystem; protected logger: Logger; constructor({ statePath, stateVersion, fs, logger, }: { statePath: string; stateVersion?: StateVersion; fs: FileSystem; logger?: Logger; }); start({ fresh, }?: { fresh?: boolean; }): Promise; stop(): Promise; destroy(): Promise; readVersion(): Promise; protected writeVersion(stateVersion: StateVersion): Promise; /** * This is only called when the version is older. */ protected upgradeVersion(_stateVersion: StateVersion): Promise; } export default Schema;