/** * Shared TypeScript types for CLI and commands * * Centralized type definitions for improved type safety and consistency * as recommended in CLI-REFACTOR-IMPLEMENTATION-GUIDE.md section 5 (Phase 3) * * @version 2.1.3 * @author Requirements Gathering Agent Team * @created July 2025 * * @filepath c:\Users\menno\Source\Repos\requirements-gathering-agent\src\types.ts */ import type { SupportedFormat } from './constants.js'; /** * Base options interface that all commands can extend */ export interface BaseCommandOptions { /** Suppress output messages */ quiet?: boolean; /** Output directory for generated files */ output?: string; } /** * Options for document generation commands */ export interface GenerateOptions extends BaseCommandOptions { /** Document key to generate */ key?: string; /** Document category to generate */ category?: string; /** Output format for generated documents */ format?: SupportedFormat; /** Number of retry attempts */ retries?: number; /** Initial retry backoff delay in milliseconds */ retryBackoff?: number; /** Maximum retry delay in milliseconds */ retryMaxDelay?: number; } /** * Options for Confluence integration commands */ export interface ConfluenceOptions extends BaseCommandOptions { /** Path to documents directory */ documentsPath?: string; /** Parent page title in Confluence */ parentPageTitle?: string; /** Label prefix for metadata */ labelPrefix?: string; /** Preview only, don't actually publish */ dryRun?: boolean; /** Force publish even if conflicts exist */ force?: boolean; } /** * Options for SharePoint integration commands */ export interface SharePointOptions extends BaseCommandOptions { /** Path to documents directory */ documentsPath?: string; /** Target folder path in SharePoint */ folderPath?: string; /** Label prefix for metadata */ labelPrefix?: string; /** Preview only, don't actually publish */ dryRun?: boolean; /** Force publish even if conflicts exist */ force?: boolean; } /** * Options for VCS (Version Control System) commands */ export interface VcsOptions extends BaseCommandOptions { /** Output directory for VCS operations */ outputDir?: string; /** Commit message for VCS operations */ message?: string; /** Remote name for push operations */ remote?: string; /** Branch name for push operations */ branch?: string; } /** * Options for OAuth2 authentication commands */ export interface OAuth2Options extends BaseCommandOptions { } /** * Options for status and analysis commands */ export interface StatusOptions extends BaseCommandOptions { /** Show detailed information */ verbose?: boolean; } /** * Options for validation commands */ export interface ValidateOptions extends BaseCommandOptions { /** Output directory to validate */ outputDir?: string; } /** * Custom error types for better error handling */ export declare class ValidationError extends Error { field?: string | undefined; constructor(message: string, field?: string | undefined); } export declare class ConfigurationError extends Error { configPath?: string | undefined; constructor(message: string, configPath?: string | undefined); } export declare class CommandExecutionError extends Error { exitCode?: number | undefined; constructor(message: string, exitCode?: number | undefined); } export declare class AIProviderError extends Error { provider?: string | undefined; constructor(message: string, provider?: string | undefined); } /** * Result types for command operations */ export interface CommandResult { success: boolean; data?: T; error?: string; warnings?: string[]; } /** * AI Provider configuration types */ export interface AIProviderConfig { name: string; model?: string; endpoint?: string; apiKey?: string; enabled: boolean; } /** * Document generation result */ export interface GenerationResult { documentKey: string; filePath: string; success: boolean; error?: string; retryCount?: number; } /** * Validation result for PMBOK compliance */ export interface ValidationResult { documentPath: string; isValid: boolean; issues: ValidationIssue[]; score?: number; } export interface ValidationIssue { severity: 'error' | 'warning' | 'info'; message: string; line?: number; column?: number; rule?: string; } //# sourceMappingURL=types.d.ts.map