// Core domain types for mcpctl
// These will be expanded as tasks are implemented

export interface McpServerConfig {
  name: string;
  type: string;
  command: string;
  args: string[];
  env: EnvEntry[];
  setupGuide?: string;
}

export interface EnvEntry {
  name: string;
  value?: string;
  valueFrom?: { secretRef: { name: string; key: string } };
}

export interface McpProject {
  name: string;
  description?: string;
}

// Service interfaces for dependency injection
export interface BackupService {
  exportConfig(): Promise<string>;
  importConfig(data: string): Promise<void>;
}

export interface ConfigExporter {
  serialize(): Promise<Record<string, unknown>>;
}

export interface ConfigImporter {
  deserialize(data: Record<string, unknown>): Promise<void>;
}
