/** * Repo resolver: clones or pulls a remote Git repository into a local cache * directory so that file-based semantic layer providers (dbt, cubejs, etc.) * can read definitions from it. * * Supports GitHub and GitLab repositories. Uses shallow clone with a single * branch for speed. Caches clones under ~/.dql/cache/repos/ with a TTL so * repeated runs don't re-clone every time. */ import type { SemanticLayerProviderConfig } from './provider.js'; export interface RepoResolveResult { /** Absolute path to the resolved project root (local dir or cloned repo + subPath). */ localPath: string; /** Whether the repo was freshly cloned or updated. */ freshClone: boolean; /** Any warnings (e.g., stale cache used). */ warnings: string[]; } /** * Resolve the effective local path for a semantic layer config. * * - If source is 'local' (default) or no repoUrl is set, returns the * projectRoot + projectPath as-is. * - If source is 'github' or 'gitlab', shallow-clones the repo into a * cache directory and returns the path to the cloned content. */ export declare function resolveRepoSource(config: SemanticLayerProviderConfig, projectRoot: string): RepoResolveResult; /** * Manually refresh a cached repo (for `dql semantic pull` CLI command). */ export declare function pullCachedRepo(repoUrl: string, branch?: string): RepoResolveResult; //# sourceMappingURL=repo-resolver.d.ts.map