/** * Provider registry: resolves a SemanticLayerProviderConfig to a loaded SemanticLayer. * Supports auto-detection when no config is provided. */ import type { SemanticLayer } from '../semantic-layer.js'; import type { SemanticLayerProviderConfig } from './provider.js'; import { type SnowflakeQueryExecutor } from './snowflake-provider.js'; export interface SemanticLayerResult { layer: SemanticLayer | undefined; errors: string[]; detectedProvider?: string; } /** * Resolve the semantic layer from config, or auto-detect if no config is given. * * Auto-detection order: * 1. If explicit config is provided, use that provider. * 2. If `semantic-layer/` exists in projectRoot, use DQL native provider. * 3. If `dbt_project.yml` exists in projectRoot, use dbt provider. * 4. If `model/` or `schema/` with cube YAML exists, use cubejs provider. * 5. Otherwise return undefined. */ export declare function resolveSemanticLayer(config: SemanticLayerProviderConfig | undefined, projectRoot: string): SemanticLayer | undefined; export declare function resolveSemanticLayerWithDiagnostics(config: SemanticLayerProviderConfig | undefined, projectRoot: string): SemanticLayerResult; /** * Async variant of resolveSemanticLayerWithDiagnostics. * Required for the Snowflake provider which needs a live query executor. * All other providers fall back to the sync path. */ export declare function resolveSemanticLayerAsync(config: SemanticLayerProviderConfig | undefined, projectRoot: string, executeQuery?: SnowflakeQueryExecutor): Promise; //# sourceMappingURL=registry.d.ts.map