import { AgentProject } from '../agent-project/agent-project.js';
import { type Credentials } from '../auth/index.js';
import { LocalTable, RemoteTable, TableSyncOptions, TableSyncPlan, TableSyncResult } from './types.js';
export interface TableManagerOptions {
    project: AgentProject;
    botId?: string;
    credentials?: Credentials;
}
export declare class TableManager {
    private client?;
    private botId?;
    private project;
    private credentials?;
    constructor(options: TableManagerOptions);
    private getClient;
    private assertBotId;
    private getSchemaType;
    /** Remove automatically generated properties that we can ignore when comparing changes */
    private calculateRenameScore;
    private cleanSchemaForComparison;
    private analyzeColumnChanges;
    private createSchemaForUpdate;
    getLocalTables(): Promise<LocalTable[]>;
    getRemoteTables(): Promise<RemoteTable[]>;
    createSyncPlan(): Promise<TableSyncPlan>;
    executeSync(plan: TableSyncPlan, options?: TableSyncOptions): Promise<TableSyncResult>;
}
//# sourceMappingURL=table-manager.d.ts.map