export interface StructuredOutput<T = any> {
  content: Array<{
    type: 'text';
    text: string;
  }>;
  structured?: T;
}

export interface KanbanBoardOutput {
  board: {
    id: string;
    name: string;
    columns: string[];
    created: string;
  };
  metadata: {
    version: string;
    capabilities: string[];
  };
}

export interface TaskOutput {
  task: {
    id: string;
    title: string;
    boardName: string;
    column: string;
    priority: string;
    created: string;
  };
  board: {
    id: string;
    totalTasks: number;
  };
}

export interface WorkspaceOutput {
  workspace: {
    id: string;
    name: string;
    rootPath: string;
    repositoryCount: number;
    created: string;
  };
  repositories: Array<{
    id: string;
    name: string;
    path: string;
    type: string;
  }>;
}

export interface TestOutput {
  test: {
    id: string;
    name: string;
    code?: string;
    framework?: string;
    status: 'created' | 'passing' | 'failing';
  };
  suggestions: Array<{
    type: 'improvement' | 'warning' | 'info';
    description: string;
    severity: 'low' | 'medium' | 'high';
  }>;
}

export interface FeatureOutput {
  feature: {
    id: string;
    name: string;
    description: string;
    testCount: number;
    coverage: number;
  };
  nextSteps: string[];
}