import { TableSchema, UserContext, ActorPermission } from '../../schema/types';
import type { DatabaseAdapter } from '../types';
import { SQLConnection } from './connection';
import { SQLDialect } from './dialect';
import { SQLTableOperations } from './sqlTableOperations';
export interface SQLAdapterConfig {
    /** Column injected into every non-admin table to scope rows to a tenant. Default: 'tenant_id'. */
    tenantColumn?: string;
    permissions?: Record<string, ActorPermission>;
}
/**
 * Shared DatabaseAdapter implementation for the Postgres/MySQL adapters (Phase 16.2) —
 * withContext()/asActor()/table() mirror SheetAdapter's exactly (same actor/role and
 * targetActor/targetRole normalization), minus the Sheets-only schema-version-check
 * machinery, since SQL adapters never auto-sync schema at runtime (Phase 16 decision 5).
 */
export declare class SQLAdapterBase implements DatabaseAdapter {
    private connection;
    private dialect;
    private schemas;
    private context?;
    private tenantColumn;
    private permissions?;
    constructor(connection: SQLConnection, dialect: SQLDialect, config?: SQLAdapterConfig);
    registerSchema(schema: TableSchema): void;
    registerSchemas(schemas: TableSchema[]): void;
    withContext(context: UserContext): SQLAdapterBase;
    asActor(targetActor: string, targetSheetId: string): SQLAdapterBase;
    table(tableName: string): SQLTableOperations;
}
//# sourceMappingURL=sqlAdapterBase.d.ts.map