import { BaseAgent } from "../../agent/BaseAgent.js";
import { VersionString } from "../../utils/version.js";
import { updateV0_3ToV0_3_1 } from "./updates/0.3-0.3.1/index.js";
import { updateV0_3_1ToV0_4 } from "./updates/0.3.1-0.4/index.js";
import { updateV0_4ToV0_5 } from "./updates/0.4-0.5/index.js";

//#region src/storage/migration/updates.d.ts
interface UpdateConfig {
  v0_1ToV0_2: V0_1ToV0_2UpdateConfig;
}
interface Update {
  fromVersion: VersionString;
  toVersion: VersionString;
  doUpdate: <Agent extends BaseAgent>(agent: Agent, updateConfig: UpdateConfig) => Promise<void>;
}
interface V0_1ToV0_2UpdateConfig {
  mediationRoleUpdateStrategy: 'allMediator' | 'allRecipient' | 'recipientIfEndpoint' | 'doNotChange';
}
declare const supportedUpdates: readonly [{
  readonly fromVersion: "0.1";
  readonly toVersion: "0.2";
  readonly doUpdate: () => void;
}, {
  readonly fromVersion: "0.2";
  readonly toVersion: "0.3";
  readonly doUpdate: () => void;
}, {
  readonly fromVersion: "0.3";
  readonly toVersion: "0.3.1";
  readonly doUpdate: typeof updateV0_3ToV0_3_1;
}, {
  readonly fromVersion: "0.3.1";
  readonly toVersion: "0.4";
  readonly doUpdate: typeof updateV0_3_1ToV0_4;
}, {
  readonly fromVersion: "0.4";
  readonly toVersion: "0.5";
  readonly doUpdate: typeof updateV0_4ToV0_5;
}];
type UpdateToVersion = (typeof supportedUpdates)[number]['toVersion'];
//#endregion
export { Update, UpdateConfig, UpdateToVersion, V0_1ToV0_2UpdateConfig };
//# sourceMappingURL=updates.d.ts.map