import { autoAcceptConfirm } from './internal.js'; import type { LoadedSqlfuProject } from '../config.js'; import type { SqlfuHost } from '../host.js'; import type { SqlfuProjectConfig } from '../types.js'; export type Confirm = (params: { title: string; body: string; bodyType?: 'markdown' | 'sql' | 'typescript'; editable?: boolean; }) => string | null | Promise; export { autoAcceptConfirm }; export type CreateSqlfuApiInput = { projectRoot?: string; configPath?: string; config?: SqlfuProjectConfig; loadProjectState?: () => Promise; host: SqlfuHost; }; export type InitOptions = { confirm: Confirm; }; export type ConfigOptions = object; export type SyncOptions = { confirm: Confirm; }; export type DraftOptions = { name?: string; confirm: Confirm; }; export type MigrateOptions = { confirm: Confirm; }; export type PendingOptions = object; export type AppliedOptions = object; export type FindOptions = { text: string; }; export type BaselineOptions = { target: string; confirm: Confirm; }; export type GotoOptions = { target: string; confirm: Confirm; }; export type CheckOptions = object; export interface SqlfuApi { init(input: InitOptions): Promise; config(input?: ConfigOptions): Promise; sync(input: SyncOptions): Promise; draft(input: DraftOptions): Promise<{ path: string; } | null>; migrate(input: MigrateOptions): Promise; pending(input?: PendingOptions): Promise; applied(input?: AppliedOptions): Promise; find(input: FindOptions): Promise<{ name: string; applied: boolean; }[]>; baseline(input: BaselineOptions): Promise; goto(input: GotoOptions): Promise; check(input?: CheckOptions): Promise; checkMigrationsMatchDefinitions(input?: CheckOptions): Promise; } export declare function createSqlfuApi(input: CreateSqlfuApiInput): SqlfuApi;