import type { Data } from "../../util/data.js";
import type { Identifier } from "../../util/item.js";
import type { Collection } from "../collection/Collection.js";
import type { SQLProvider } from "../provider/SQLProvider.js";
import { SQLMigrator, type SQLTable, type SQLTableColumn } from "./SQLMigrator.js";
/** SQLite and D1 migrator using sqlite_master as the schema source of truth. */
export declare class SQLiteMigrator<T extends SQLProvider = SQLProvider> extends SQLMigrator<T> {
    protected getTables(): Promise<readonly string[]>;
    protected getTable(name: string): Promise<SQLTable | undefined>;
    protected getCreateTableSuffix<TData extends Data>(_collection: Collection<string, Identifier, TData>): string;
    protected getDataColumnDefinition(): string;
    protected getGeneratedColumnDefinition(_columnName: string, path: string, definition: string): string;
    protected getIDColumnDefinition<TData extends Data>(collection: Collection<string, Identifier, TData>): string;
    protected getAlterColumnQueries(tableName: string, from: SQLTableColumn, to: SQLTableColumn): readonly string[];
}
