/** * Platform Registry — Single source of truth for platform functions and derived helpers * * All platform-specific lists (backup dirs, template dirs, configured platforms, etc.) * are derived from AI_TOOLS in types/ai-tools.ts. Adding a new platform requires: * 1. Adding to AI_TOOLS (data) * 2. Adding to PLATFORM_FUNCTIONS below (behavior) * 3. Creating the configurator file + template directory */ import { type AITool, type CliFlag } from "../types/ai-tools.js"; /** All platform IDs */ export declare const PLATFORM_IDS: AITool[]; /** All platform config directory names (e.g., [".claude", ".cursor", ".opencode"]) */ export declare const CONFIG_DIRS: string[]; /** All managed paths for every platform (primary configDir + extra managed paths). */ export declare const PLATFORM_MANAGED_DIRS: string[]; /** All directories managed by Trellis (including .trellis itself) */ export declare const ALL_MANAGED_DIRS: string[]; /** * Detect which platforms are configured by checking for configDir existence. * * Note: Detection uses only `configDir` (the platform-specific directory), * NOT shared layers like `.agents/skills/`. This prevents false positives * where a shared directory triggers detection of a specific platform. */ export declare function getConfiguredPlatforms(cwd: string): Set; /** * Get platform IDs that have Python hooks (for Windows encoding detection) */ export declare function getPlatformsWithPythonHooks(): AITool[]; /** * Check if a path starts with any managed directory */ export declare function isManagedPath(dirPath: string): boolean; /** * Check if a directory name is a managed root directory (should not be deleted) */ export declare function isManagedRootDir(dirName: string): boolean; /** * Get all managed paths for a platform. */ export declare function getPlatformManagedPaths(platformId: AITool): string[]; /** * Get the configure function for a platform */ export declare function configurePlatform(platformId: AITool, cwd: string): Promise; /** * Collect template files for a specific platform (for update tracking). * Returns undefined if the platform doesn't support template tracking. */ export declare function collectPlatformTemplates(platformId: AITool): Map | undefined; /** * Build TOOLS array for interactive init prompt, derived from AI_TOOLS registry */ export declare function getInitToolChoices(): { key: CliFlag; name: string; defaultChecked: boolean; platformId: AITool; }[]; /** * Resolve CLI flag name to AITool id (e.g., "claude" → "claude-code") */ export declare function resolveCliFlag(flag: string): AITool | undefined; //# sourceMappingURL=index.d.ts.map