import { AbstractDataSource, Agent, DataSourceOptions, DataSourceSettings, DBCatalog, DBTable, Dimension, EntityService, EntitySet, EntityType, IDimensionMember, Indicator, MDCube, OcapCache, Property, QueryReturn } from '@metad/ocap-core'; import { Observable } from 'rxjs'; import { MDXDialect, MDXMember } from './types/index'; import { NxXmlaService } from './xmla.service'; export declare const XMLA_TEXT_FIELD_SUFFIX = "_Text"; export interface XmlaDataSourceSettings extends DataSourceSettings { dataSourceInfo: string; timeout?: number; } export interface XmlaDataSourceOptions extends DataSourceOptions { dialect: MDXDialect; settings: XmlaDataSourceSettings; } /** * DataSource for XMLA */ export declare class XmlaDataSource extends AbstractDataSource { #private; xmlaService: NxXmlaService; private __entitySets; private _cubeEntityTypies; private _catalogCubes; private _members; constructor(options: XmlaDataSourceOptions, agent: Agent, cacheService?: OcapCache); discoverDBCatalogs(): Observable; /** * In xmla, db tables are cubes * * @param refresh For refresh cache * @returns */ discoverDBTables(refresh?: boolean): Observable; /** * Observable of cubes in xmla source, then merge caption and description from custom schema * * @param refresh For refresh cache * @returns */ discoverMDCubes(refresh?: boolean): Observable; discoverMDMembers(entity: string, dimension: Dimension): Observable; selectEntitySets(refresh?: boolean): Observable; getMembers(entity: string, dimension: Dimension): Observable; query({ statement, forceRefresh, timeout: _timeout }: { statement: string; forceRefresh?: boolean; timeout?: number; }): Observable>; createEntity(name: any, columns: any, data?: any): Observable; dropEntity(name: string): Promise; /** * @deprecated use discoverDBCatalogs */ getCatalogs(): Observable; getEntityType(entitySet: string): Observable; getEntityRelatedPropertyList(entitySet: any): Observable; createEntityService(entitySet: string): EntityService; /** * @deprecated use discoverMDCubes */ getEntitySets(refresh?: boolean): Observable; private _discoverMDCubes; getMDCubesWithCache(modelName: string, CATALOG_NAME: string, language?: string): Promise; discoverMDCube(CATALOG_NAME: string, CUBE_NAME: string, language?: string): Promise; /** * Get cube info with cache. * * @param modelName Name of semantic model * @param cube Name of cube * @param language Language * @returns EntitySet */ private getEntitySetWithCache; selectMembers(CUBE_NAME: string, dimension: Dimension): Observable; private getMembersWithCache; selectEntitySet(entity: string): Observable; selectIndicators(entity: string): Observable; /** * Merge some necessary source information into the runtime type. * * @param rtEntityType Runtime server entity type * @param schema Original cube defination * @returns */ private mergeEntityTypeCube; getMDXDialect(): MDXDialect; } export declare function mergeEntityType(a: EntityType, b: EntityType): EntityType;