import * as plugins from '../dist_ts/plugins.js'; import type { IAGLHomeOptions, IAGLHomePaths } from '../dist_ts/classes.aglhome.js'; import { type IControllerDataDirectoryOptions } from '../dist_ts/classes.config.js'; import type { IControllerDatabaseConfig } from '../dist_ts/interfaces.config.js'; import { type IControllerDataRootMigrationResult, type IControllerDataWriterProcessRecord } from './v2_controllerdataroot.js'; export declare const legacyEmbeddedDatabaseSocketPath: (dataDirectoryArg: string) => string; export interface IAGLLegacyPaths { development: boolean; legacySourceEnabled: boolean; activeDataRoot: string; legacyConfigRoot?: string; legacyStateRoot?: string; v2JournalPath?: string; v2LockPath?: string; } export declare const resolveAGLLegacyPaths: (optionsArg?: IAGLHomeOptions) => IAGLLegacyPaths; export declare const readLegacyV2DatabaseConfig: (optionsArg?: IAGLHomeOptions) => IControllerDatabaseConfig; export interface IAGLHomeMigrationOptions { paths: IAGLHomePaths; legacyPaths: IAGLLegacyPaths; databaseConfig: IControllerDatabaseConfig; invokerPid: number; listDataWriterProcesses: () => Promise; isSocketListening?: (socketPathArg: string) => Promise; relocateStoppedDatabaseRoot?: (inputArg: Readonly, signalArg?: AbortSignal) => Promise; relocateCredentialStore?: (inputArg: { controllerHash: string; sourceDirectory: string; destinationDirectory: string; }, signalArg?: AbortSignal) => Promise; legacyUploadTempDirectory?: string; signal?: AbortSignal; } export interface IAGLHomeMigrationPreflightOptions { allowDataWriters?: boolean; } export interface IAGLHomeMigrationResult { directoryPath: string; databaseConfig: IControllerDatabaseConfig; } export declare class AGLHomeMigrationRunner { private readonly options; private readonly journalPath; private readonly lockPath; private readonly socketCheck; private readonly relocateDatabase; private readonly relocateCredentials; private readonly legacyUploadTempDirectory; constructor(options: IAGLHomeMigrationOptions); isCommitted(): Promise; hasStarted(): Promise; /** Performs no writes and is safe to invoke before logs or admission state exist. */ preflight(optionsArg?: IAGLHomeMigrationPreflightOptions): Promise; run(): Promise; private usesDefaultEmbeddedDatabase; private isConfiguredDatabaseSource; private assertJournalBinding; private assertJournalRootIdentity; private inspectTargetInventory; private inspectSourceInventories; private listLegacyLogNames; private assertNoConflictingWriters; private assertGitStateRelocatable; private runLocked; private migrateDatabase; private migrateCredentials; private migrateLogs; private moveLegacyMetadata; private legacyUploadTombstonePath; private scanLegacyUploadRoots; private assertNoLegacyUploadRoots; private processLegacyUploadRootBinding; private cleanupLegacyUploadRoots; private moveDirect; private markOperation; private cleanupLegacyRoots; private removeEmptyDirectory; private writeJournal; private cleanupJournalTemporaryFiles; private unlinkExactFile; private cleanupStaleLockTemporaries; private acquireLock; private releaseLock; } export interface IAGLHomeDataRootMigrationOptions extends IControllerDataDirectoryOptions { listDataWriterProcesses?: () => Promise; legacyUploadTempDirectory?: string; signal?: AbortSignal; } export declare const preflightAGLHomeDataRootMigration: (optionsArg?: IAGLHomeDataRootMigrationOptions) => Promise; export declare const ensureAGLHomeDataRoot: (optionsArg?: IAGLHomeDataRootMigrationOptions) => Promise;