import type { QueryRunner } from '@n8n/typeorm'; import { TableForeignKey } from '@n8n/typeorm'; import LazyPromise from 'p-lazy'; import { Column } from './column'; declare abstract class TableOperation extends LazyPromise { protected tableName: string; protected prefix: string; abstract execute(queryRunner: QueryRunner): Promise; constructor(tableName: string, prefix: string, queryRunner: QueryRunner); } export declare class CreateTable extends TableOperation { private columns; private indices; private uniqueConstraints; private foreignKeys; private checks; withColumns(...columns: Column[]): this; get withTimestamps(): this; get withCreatedAt(): this; withIndexOn(columnName: string | string[], isUnique?: boolean): this; withUniqueConstraintOn(columnName: string | string[]): this; withCheck(name: string, expression: string): this; withForeignKey(columnName: string, ref: { tableName: string; columnName: string; onDelete?: 'RESTRICT' | 'CASCADE' | 'NO ACTION' | 'SET NULL'; onUpdate?: 'RESTRICT' | 'CASCADE' | 'NO ACTION' | 'SET NULL'; name?: string; }): this; execute(queryRunner: QueryRunner): Promise; } export declare class DropTable extends TableOperation { execute(queryRunner: QueryRunner): Promise; } export declare class AddColumns extends TableOperation { protected columns: Column[]; constructor(tableName: string, columns: Column[], prefix: string, queryRunner: QueryRunner); execute(queryRunner: QueryRunner): Promise; } export declare class DropColumns extends TableOperation { protected columnNames: string[]; constructor(tableName: string, columnNames: string[], prefix: string, queryRunner: QueryRunner); execute(queryRunner: QueryRunner): Promise; } declare abstract class ForeignKeyOperation extends TableOperation { protected foreignKey: TableForeignKey; constructor(tableName: string, columnName: string, [referencedTableName, referencedColumnName]: [string, string], prefix: string, queryRunner: QueryRunner, customConstraintName?: string, onDelete?: string); } export declare class AddForeignKey extends ForeignKeyOperation { execute(queryRunner: QueryRunner): Promise; } export declare class DropForeignKey extends ForeignKeyOperation { execute(queryRunner: QueryRunner): Promise; } declare class ModifyNotNull extends TableOperation { protected columnName: string; protected isNullable: boolean; constructor(tableName: string, columnName: string, isNullable: boolean, prefix: string, queryRunner: QueryRunner); execute(queryRunner: QueryRunner): Promise; } export declare class AddNotNull extends ModifyNotNull { protected columnName: string; constructor(tableName: string, columnName: string, prefix: string, queryRunner: QueryRunner); } export declare class DropNotNull extends ModifyNotNull { protected columnName: string; constructor(tableName: string, columnName: string, prefix: string, queryRunner: QueryRunner); } export declare class DropEnumCheck extends TableOperation { protected columnName: string; constructor(tableName: string, columnName: string, prefix: string, queryRunner: QueryRunner); execute(queryRunner: QueryRunner): Promise; } export declare class AddEnumCheck extends TableOperation { protected columnName: string; protected values: string[]; constructor(tableName: string, columnName: string, values: string[], prefix: string, queryRunner: QueryRunner); execute(queryRunner: QueryRunner): Promise; } export {};