import * as Q from 'q';
import { DataSource } from '../../../common/models/index';
export interface DataSourceFiller {
    (dataSource: DataSource): Q.Promise<DataSource>;
}
export interface DataSourceManagerOptions {
    dataSources?: DataSource[];
    dataSourceStubFactory?: (name: string) => DataSource;
    druidRequester?: Requester.PlywoodRequester<any>;
    dataSourceFiller?: DataSourceFiller;
    sourceListScan?: string;
    sourceListRefreshInterval?: number;
    sourceListRefreshOnLoad?: boolean;
    log?: Function;
}
export interface DataSourceManager {
    getDataSources: () => Q.Promise<DataSource[]>;
    getQueryableDataSources: () => Q.Promise<DataSource[]>;
    getQueryableDataSource: (name: string) => Q.Promise<DataSource>;
}
export declare function dataSourceManagerFactory(options: DataSourceManagerOptions): DataSourceManager;
export declare function dataSourceToYAML(dataSource: DataSource, withComments: boolean): string[];
