export * from './config.js'; export type Platform = 'darwin' | 'linux' | 'win32' | 'all'; export type ComponentCategory = 'git' | 'validation' | 'development' | 'testing' | 'claude-setup' | 'workflow' | 'project-management' | 'debugging' | 'utility'; export type ComponentType = 'command' | 'hook' | 'agent'; export type PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun'; export type LogLevel = 'debug' | 'info' | 'warn' | 'error'; export type InstallTarget = 'user' | 'project' | 'both'; export type ValidationType = 'all' | 'config' | 'structure' | 'dependencies' | 'permissions'; export type OutputFormat = 'json' | 'table' | 'yaml' | 'compact'; export type TemplateType = 'default' | 'basic' | 'advanced' | 'custom'; export interface Component { id: string; type: ComponentType; name: string; description: string; path: string; dependencies: string[]; category: ComponentCategory; version?: string; author?: string; config?: Record; createdAt?: Date; updatedAt?: Date; } export interface ProjectInfo { hasTypeScript: boolean; hasESLint: boolean; hasBiome?: boolean; hasPrettier?: boolean; hasJest?: boolean; hasVitest?: boolean; packageManager: PackageManager | null; projectPath: string; isGitRepository?: boolean; hasClaudeConfig?: boolean; nodeVersion?: string; projectName?: string; projectVersion?: string; frameworks?: string[]; environment?: string; } export interface Installation { components: Component[]; target: InstallTarget; backup: boolean; dryRun: boolean; projectInfo?: ProjectInfo; template?: TemplateType; force?: boolean; installDependencies?: boolean; customPath?: string; } export interface InstallationResult { success: boolean; installedCount: number; failedCount: number; installed: Component[]; failed: Array<{ component: Component; error: string; }>; warnings: string[]; duration?: number; backups?: BackupInfo[]; } export interface BackupInfo { originalPath: string; backupPath: string; timestamp: Date; hash?: string; } export interface GlobalOptions { verbose?: boolean; quiet?: boolean; dryRun?: boolean; force?: boolean; config?: string; } export interface InitOptions extends GlobalOptions { template?: TemplateType; skipPrompts?: boolean; templateRepo?: string; } export interface AddOptions extends GlobalOptions { template?: TemplateType; path?: string; category?: ComponentCategory; dependencies?: string[]; platforms?: Platform[]; } export interface RemoveOptions extends GlobalOptions { skipConfirmation?: boolean; removeDependencies?: boolean; backup?: boolean; } export interface UpdateOptions extends GlobalOptions { config?: string; file?: string; all?: boolean; checkOnly?: boolean; } export interface ListOptions extends GlobalOptions { format?: OutputFormat; filter?: string; includeDisabled?: boolean; sortBy?: keyof Component; descending?: boolean; } export interface DoctorOptions extends GlobalOptions { type?: ValidationType; autoFix?: boolean; outputFile?: string; } export interface ValidationResult { passed: boolean; message: string; type: ValidationType; severity?: 'info' | 'warning' | 'error'; details?: string; suggestions?: string[]; autoFixable?: boolean; } export interface ValidationReport { passed: boolean; results: ValidationResult[]; summary: { total: number; passed: number; failed: number; warnings: number; }; projectInfo: ProjectInfo; timestamp: Date; duration: number; } export interface OperationResult { success: boolean; data?: T; error?: string; warnings?: string[]; metadata?: Record; } export interface ListResult { components: Component[]; total: number; filters: { type?: ComponentType; category?: ComponentCategory; enabled?: boolean; pattern?: string; }; projectInfo: ProjectInfo; } export interface FileOperationResult { path: string; operation: 'create' | 'update' | 'delete' | 'backup' | 'restore'; success: boolean; error?: string; size?: number; permissions?: string; backupPath?: string; } export interface UserSettings { defaultTemplate?: TemplateType; defaultTarget?: InstallTarget; autoBackup?: boolean; logLevel?: LogLevel; environment?: Record; componentPaths?: string[]; editor?: string; colorOutput?: boolean; autoUpdate?: boolean; notifications?: boolean; } export interface ProjectSettings { hooks?: Record; environment?: Record; commands?: Record; components?: Partial[]; validation?: { rules: string[]; autoFix: boolean; reportPath?: string; }; } export interface TemplateConfig { name: string; description: string; type: TemplateType; supportedTypes: ComponentType[]; variables: Record; files: Array<{ path: string; content: string; executable?: boolean; }>; } export interface DependencyInfo { name: string; version?: string; optional?: boolean; installCommand?: string; platforms?: Platform[]; description?: string; } export interface ErrorDetails { code: string; message: string; details?: string; stack?: string; context?: Record; suggestions?: string[]; recoverable?: boolean; } export type HookEvent = 'PreToolUse' | 'PostToolUse' | 'Stop' | 'SubagentStop' | 'Notification' | 'UserPromptSubmit' | 'PreCompact' | 'SessionStart'; export interface HookContext { event: HookEvent; toolName?: string; filePaths?: string[]; projectInfo: ProjectInfo; environment: Record; timestamp: Date; } export interface HookExecutionResult { hook: Component; success: boolean; exitCode: number; stdout?: string; stderr?: string; duration: number; error?: ErrorDetails; } export declare function isPlatform(value: unknown): value is Platform; export declare function isComponentType(value: unknown): value is ComponentType; export declare function isPackageManager(value: unknown): value is PackageManager; export declare function isLogLevel(value: unknown): value is LogLevel; export declare function isComponent(value: unknown): value is Component; export declare const DEFAULT_VALUES: { readonly TEMPLATE: TemplateType; readonly TARGET: InstallTarget; readonly LOG_LEVEL: LogLevel; readonly OUTPUT_FORMAT: OutputFormat; readonly VALIDATION_TYPE: ValidationType; readonly BACKUP: true; readonly AUTO_FIX: false; readonly COLOR_OUTPUT: true; }; export declare const FILE_EXTENSIONS: { readonly command: ".md"; }; export declare const DIRECTORIES: { readonly CLAUDE: ".claude"; readonly COMMANDS: ".claude/commands"; readonly USER_HOME: "~/.claude"; readonly TEMP: "temp"; readonly REPORTS: "reports"; }; export declare const EXIT_CODES: { readonly SUCCESS: 0; readonly GENERAL_ERROR: 1; readonly BLOCK_OPERATION: 2; readonly VALIDATION_FAILED: 3; readonly DEPENDENCY_ERROR: 4; readonly PERMISSION_ERROR: 5; }; //# sourceMappingURL=index.d.ts.map