/** * Configuration-related types */ import type { OwnershipRule } from './ownership'; /** * GitHub resolver configuration */ export interface GitHubResolverConfig { token?: string; defaultOrg?: string; enterprise?: string; cacheDir?: string; cacheTTL?: number; tokens?: Record; } /** * GitLab resolver configuration */ export interface GitLabResolverConfig { token?: string; defaultGroup?: string; baseUrl?: string; cacheDir?: string; cacheTTL?: number; } /** * Catalog source configuration */ export interface CatalogSource { url: string; name?: string; token?: string; priority?: number; } /** * Catalog resolver configuration */ export interface CatalogResolverConfig { sources: CatalogSource[]; cacheDir?: string; cacheTTL?: number; } /** * Unified cache configuration */ export interface CacheConfig { enabled: boolean; ttl: number; dir: string; maxSize?: number; } /** * Global Forge configuration */ export interface ForgeConfig { resolvers: { default?: 'github' | 'gitlab' | 'catalog' | string; github?: GitHubResolverConfig; gitlab?: GitLabResolverConfig; catalog?: CatalogResolverConfig; }; cache?: CacheConfig; defaults?: { organization?: string; starter?: string; bundle?: string; }; features?: { telemetry?: boolean; updateCheck?: boolean; }; paths?: { cache?: string; templates?: string; }; definitions?: { registry?: { local?: { enabled: boolean; paths: string[]; }; global?: { enabled: boolean; path: string; }; stockyard?: { enabled: boolean; url?: string; apiKey?: string; }; }; caching?: { enabled: boolean; defaultTtl: number; sourceTtls?: { file?: number; glob?: number; codex?: number; inline?: number; }; }; validation?: { strict: boolean; warnOnMissingTools: boolean; }; execution?: { defaultTimeout: number; }; }; } /** * Project-level configuration */ export interface ProjectConfig { name: string; version: string; starter?: string; bundles?: Array<{ name: string; version: string; source?: string; ownership?: Record; }>; lastUpdated?: string; } //# sourceMappingURL=config.d.ts.map