/**
 * Core types for the unified configuration management system
 */
/**
 * Platform-specific application configuration
 */
export interface PlatformConfig {
    configPath: string;
    format: "standard" | "custom";
    transformer?: string;
}
/**
 * Application detection configuration
 */
export interface DetectionConfig {
    type: "file" | "directory" | "project-local" | "command";
    path?: string;
    indicator?: string;
    command?: string;
}
/**
 * Application definition in the registry
 */
export interface ApplicationDefinition {
    name: string;
    enabled: boolean;
    platforms: {
        darwin?: PlatformConfig;
        linux?: PlatformConfig;
        win32?: PlatformConfig;
        all?: PlatformConfig;
    };
    detection: DetectionConfig;
    defaultToolset?: string[];
}
/**
 * Application registry structure
 */
export interface ApplicationRegistry {
    version: string;
    applications: Record<string, ApplicationDefinition>;
}
/**
 * Backup metadata structure
 */
export interface BackupMetadata {
    version: string;
    timestamp: string;
    hypertool_version: string;
    applications: Record<string, {
        source_path: string;
        format: string;
        servers_count: number;
    }>;
    total_servers: number;
    system_info: {
        platform: NodeJS.Platform;
        arch: string;
        node_version: string;
    };
    database?: {
        servers_count: number;
        groups_count: number;
        sources_count: number;
        export_files: string[];
    };
}
/**
 * Result type for backup operations
 */
export interface BackupResult {
    success: boolean;
    backupId?: string;
    backupPath?: string;
    metadata?: BackupMetadata;
    error?: string;
}
/**
 * Result type for restore operations
 */
export interface RestoreResult {
    success: boolean;
    restored: string[];
    failed: string[];
    error?: string;
}
/**
 * Result type for delete operations
 */
export interface DeleteResult {
    success: boolean;
    error?: string;
}
/**
 * Backup list item
 */
export interface BackupListItem {
    id: string;
    timestamp: string;
    metadata: BackupMetadata;
    path?: string;
}
/**
 * Configuration transformer interface
 */
export interface ConfigTransformer {
    /**
     * Convert from app-specific format to standard MCP format
     */
    toStandard(appConfig: any): MCPConfig;
    /**
     * Convert from standard MCP format to app-specific format
     */
    fromStandard(standardConfig: MCPConfig, existingConfig?: any): any;
    /**
     * Validate app-specific configuration format
     */
    validate(config: any): ValidationResult;
}
/**
 * Standard MCP configuration format
 */
export interface MCPConfig {
    mcpServers: Record<string, MCPServerConfig>;
    _metadata?: {
        sources?: Record<string, {
            app: string;
            importedAt: string;
        }>;
    };
}
/**
 * Individual MCP server configuration
 */
export interface MCPServerConfig {
    type: "stdio" | "http" | "websocket" | "sse";
    command?: string;
    url?: string;
    args?: string[];
    env?: Record<string, string>;
    [key: string]: any;
}
/**
 * Validation result for configuration transformers
 */
export interface ValidationResult {
    valid: boolean;
    errors?: string[];
    warnings?: string[];
}
/**
 * Application configuration in config.json
 */
export interface ApplicationConfig {
    configPath: string;
    lastSync: string;
    format: string;
    mcpConfig?: string;
    linkedProfiles?: string[];
}
/**
 * Main configuration file structure
 */
export interface MainConfig {
    version: string;
    lastBackup?: string;
    applications: Record<string, ApplicationConfig>;
    preferences?: {
        defaultApp?: string;
        defaultProfile?: string;
    };
}
/**
 * Toolset definition
 */
export interface Toolset {
    name: string;
    description: string;
    tools: Array<{
        namespacedName: string;
        refId: string;
    }>;
    metadata?: {
        autoGenerated?: boolean;
        sourceApp?: string;
        createdAt?: string;
    };
}
/**
 * Preferences configuration
 */
export interface PreferencesConfig {
    toolsets: Record<string, Toolset>;
    appDefaults?: Record<string, string>;
    version?: string;
}
/**
 * Profile configuration for workspace/project support
 */
export interface ProfileConfig {
    id: string;
    appId: string;
    name: string;
    description?: string;
    mcpConfig: string;
    toolsets?: string[];
    createdAt: string;
    lastModified: string;
}
/**
 * Per-application MCP configuration
 */
export interface AppMCPConfig extends MCPConfig {
    _metadata?: {
        app: string;
        profile?: string;
        importedAt: string;
        lastModified: string;
        sources?: Record<string, {
            app: string;
            importedAt: string;
        }>;
    };
}
//# sourceMappingURL=index.d.ts.map