import type { MigrationDatabase } from "../migrations/types.ts"; import { Blueprint } from "./blueprint.ts"; import type { DatabaseDriver } from "./driver.ts"; import { resolveDatabaseDriver } from "./driver.ts"; type BlueprintCallback = (table: Blueprint) => void; declare class SchemaBuilder { #private; constructor(driver: DatabaseDriver); create(table: string, callback: BlueprintCallback): this; table(table: string, callback: BlueprintCallback): this; drop(table: string): this; toSql(): string[]; execute(db: MigrationDatabase): Promise; } declare class Schema { static builder(driver?: DatabaseDriver): SchemaBuilder; static run(db: MigrationDatabase, driver: DatabaseDriver, callback: (schema: SchemaBuilder) => void | Promise): Promise; } declare function createSchemaBuilder(db: MigrationDatabase, driver?: DatabaseDriver): SchemaBuilder; export type { BlueprintCallback }; export { createSchemaBuilder, resolveDatabaseDriver, Schema, SchemaBuilder };