import { Connection } from "mysql"; import { Type } from "../Utils.js"; export default abstract class Migration { readonly version: number; private currentConnection?; constructor(version: number); shouldRun(currentVersion: number): Promise; abstract install(): Promise; abstract rollback(): Promise; registerModels?(): void; protected query(queryString: string): Promise; protected getCurrentConnection(): Connection; setCurrentConnection(connection: Connection | null): void; } export interface MigrationType extends Type { new (version: number): M; }