export interface Named {
    label: string;
}
export interface DatabaseMetadataArgs {
    catalog?: string;
}
export interface TableMetadataArgs {
    catalog?: string;
    database?: string;
}
export interface TableColumnMetadataArgs {
    catalog?: string;
    database?: string;
    table: string;
}
export interface MetadataProvider<Catalog extends Named = Named, Database extends Named = Named, Table extends Named = Named, Column extends Named = Named> {
    getCatalogs: () => Catalog[];
    getDatabases: (arg?: DatabaseMetadataArgs) => Database[];
    getTables: (args?: TableMetadataArgs) => Table[];
    getColumns: (args?: TableColumnMetadataArgs) => Column[];
}
