import type { WarehouseTargetContextV1, WarehouseTargetIdentityV1 } from '@duckcodeailabs/dql-core'; export type SemanticRuntimePreference = 'auto' | 'native' | 'metricflow-cli' | 'dbt-cloud'; export type SemanticRuntimeTestState = 'missing' | 'configured' | 'passed' | 'failed'; export interface DbtCloudSemanticSettingsInput { host?: string; environmentId?: string; serviceToken?: string; } export interface SemanticRuntimeSettingsInput { preference?: SemanticRuntimePreference; dbtCloud?: DbtCloudSemanticSettingsInput; } export interface EffectiveDbtCloudSemanticSettings { host?: string; endpoint?: string; environmentId?: string; serviceToken?: string; source: 'local' | 'env' | 'none'; configured: boolean; fingerprint?: string; testState: SemanticRuntimeTestState; testedAt?: string; testMessage?: string; dialect?: string; metricCount?: number; metricNames?: string[]; semanticCatalogFingerprint?: string; metricInventoryComplete?: boolean; executionTargetFingerprint?: string; executionTargetContext?: WarehouseTargetContextV1; } export interface RedactedSemanticRuntimeSettings { preference: SemanticRuntimePreference; dbtCloud: { host?: string; environmentId?: string; hasServiceToken: boolean; serviceTokenPreview?: string; source: 'local' | 'env' | 'none'; configured: boolean; testState: SemanticRuntimeTestState; testedAt?: string; testMessage?: string; dialect?: string; metricCount?: number; semanticCatalogFingerprint?: string; metricInventoryState: 'missing' | 'partial' | 'complete'; executionTargetFingerprint?: string; executionTargetContext?: WarehouseTargetContextV1; targetBindingState: 'missing' | 'bound'; envVars: string[]; }; } export declare function semanticRuntimeSettingsPath(projectRoot: string): string; export declare function getSemanticRuntimeSettings(projectRoot: string): RedactedSemanticRuntimeSettings; export declare function getEffectiveDbtCloudSemanticSettings(projectRoot: string): EffectiveDbtCloudSemanticSettings; export declare function saveTestedSemanticRuntimeSettings(projectRoot: string, input: SemanticRuntimeSettingsInput, test: { ok: boolean; message: string; dialect?: string; metricCount?: number; metricNames?: string[]; semanticCatalogFingerprint?: string; metricInventoryComplete?: boolean; }, executionTarget?: WarehouseTargetIdentityV1): RedactedSemanticRuntimeSettings; /** * Persist ONLY the runtime preference (auto / native / metricflow-cli / * dbt-cloud). Unlike saveTestedSemanticRuntimeSettings this requires no dbt * Cloud test, so a user can prefer Native or Local MetricFlow without any * cloud credentials configured. */ export declare function saveSemanticRuntimePreference(projectRoot: string, preference: SemanticRuntimePreference): RedactedSemanticRuntimeSettings; export declare function semanticRuntimeDraft(projectRoot: string, input: SemanticRuntimeSettingsInput): EffectiveDbtCloudSemanticSettings; export declare function semanticLayerGraphqlEndpoint(host: string): string; export declare function normalizeDbtCloudHost(value: string | undefined): string | undefined; //# sourceMappingURL=semantic-runtime-settings.d.ts.map