export type Change = {
    version: string;
    title: string;
    description: string;
    linkToGuide?: string;
};
export type BreakingChange = Change & {
    migrationFactory?: string;
};
export type MigrationChange = Change & {
    migrationFactory: string;
};
export type Changes = {
    breakingChanges?: BreakingChange[];
    migrations?: MigrationChange[];
};
/** This can be a breaking change or a migration change. */
export type ResolvedChange = Change & {
    isBreakingChange: boolean;
    migrationFactory?: string;
};
export type ResolvedChanges = {
    [key: string]: ResolvedChange[];
};
export type MigrationChanges = {
    [key: string]: MigrationChange[];
};
/** Package update reference */
export type UpdateReference = {
    /** The current version */
    current: string;
    /** The latest available version */
    latest: string;
};
/** Migration interface */
export type Migration = {
    /** Version that introduced the change where it should be migrated */
    version: string;
    /** User friendly description for the migration */
    description: string;
    /** The path to the javascript file that is responsible for the migration (relative from the `migrations.json` file) */
    factory: string;
};
