import { Field, FieldType, Index, Model } from '../schema-representation';
export declare abstract class StringDataSourceAdapter {
    constructor(schema: string);
    abstract getTablesList(): string[];
    abstract getFields(tableName: string): Field[];
    abstract getPrimaryKey(tableName: string): Index | null;
    abstract getIndexes(tableName: string): Index[];
    protected abstract mapDataType(datatype: string, nullable: boolean, tableName: string, fieldName: string, columnType: string): FieldType;
    protected abstract validateSchema(schema: any[]): void;
    protected abstract setSchema(schema: any[]): void;
    protected abstract setFields(fields: any[]): void;
    protected abstract setIndexes(indexes: any[]): void;
    protected abstract setTables(tables: any[]): void;
    protected parseSchema(schema: string): any[];
    getModels(): Model[];
    describeTable(tableName: string): Model;
    protected getEnumName(name: string): string;
}
export declare class EmptySchemaError extends Error {
    constructor();
}
export declare class InvalidSchemaError extends Error {
    constructor(schema: any[], expectedColumns: string[]);
}
//# sourceMappingURL=string-datasource-adapter.d.ts.map