import { Field, Index, Model } from '../schema-representation';
export interface DataSourceConfig {
    host: string;
    port: number;
    database: string;
    username: string;
    password: string;
    sslCertificate?: string;
}
export declare abstract class DataSourceAdapter {
    abstract getTablesList(): string[];
    abstract getFields(tableName: string): Field[];
    abstract getPrimaryKey(tableName: string): Index | null;
    abstract getIndexes(tableName: string): Index[];
    abstract initialize(): Promise<void>;
    abstract cleanup(): void;
    abstract test(): Promise<boolean>;
    protected abstract querySchema(): Promise<string>;
    useVPC: boolean;
    vpcSchemaInspectorLambda: string | undefined;
    vpcLambdaRegion: string | undefined;
    getModels(): Model[];
    describeTable(tableName: string): Model;
    useVpc(vpcSchemaInspectorLambda: string, region: string): void;
    protected queryToCSV(queryResult: any[]): string;
}
//# sourceMappingURL=datasource-adapter.d.ts.map