import { DataSourceField, JaqlDataSourceForDto } from '@sisense/sdk-data'; import { HttpClient } from '@sisense/sdk-rest-client'; export declare const DATA_SOURCES_API_URL_PATH = "api/datasources"; export type DataSourceFieldWithDescription = DataSourceField & { description?: string; tableDescription?: string; }; export type NormalizedDataSourceField = { table: string; column: string; type: string; level?: string; expression: string; description: string; }; export type DataSourceStatus = 'ready' | 'draft'; export type DataSourceWithStatus = JaqlDataSourceForDto & { status?: DataSourceStatus; /** * Elasticube datamodel UUID. Present for elasticubes (both ready and draft); * undefined for live connections (which aren't elasticubes). * Use this as `datamodelOid` when calling getModelSchema, addRelation, * createPerspective, etc. */ oid?: string; }; export declare function getDataSources(httpClient?: HttpClient): Promise; /** * Get a data source by title */ export declare function getDataSourceByTitle(dataSourceTitle: string, httpClient?: HttpClient): Promise; /** * Get data source fields */ export declare function getDataSourceFields(dataSourceTitle: string, httpClient?: HttpClient): Promise; /** * Get data source fields with descriptions from schema */ export declare function getDataSourceFieldsWithDescriptions(dataSourceTitle: string, httpClient?: HttpClient): Promise; /** * Normalize data source fields (pure function - easily testable) */ export declare function normalizeFields(fields: DataSourceFieldWithDescription[] | DataSourceField[]): NormalizedDataSourceField[]; /** * Get normalized data source fields * @param dataSourceTitle - The title of the data source * @param getFieldsFn - Optional function to get fields (for testing) */ export declare function getNormalizedDataSourceFields(dataSourceTitle: string, getFieldsFn?: (title: string, client?: HttpClient) => Promise, httpClient?: HttpClient): Promise; //# sourceMappingURL=data-sources-service.d.ts.map