import type { DevLifecycleCategory } from '../common/index.js';
import type { Spec } from '../spec/index.js';
import type { RecommendedSkill } from '../mcp.js';
export interface ToolingAssessment {
    category: DevLifecycleCategory;
    tool: string;
    status: 'configured' | 'installed-not-configured' | 'missing';
}
export interface ToolingGap {
    category: DevLifecycleCategory;
    importance: 'critical' | 'recommended' | 'nice-to-have';
    reason: string;
}
export interface ToolingRecommendation {
    category: DevLifecycleCategory;
    tool: string;
    reason: string;
    installSteps: string[];
    effort: 'minimal' | 'moderate' | 'significant';
    priority: 'high' | 'medium' | 'low';
}
export interface ToolingQuestion {
    category: DevLifecycleCategory;
    question: string;
    options: ToolingOption[];
    recommended: string;
}
export interface ToolingOption {
    name: string;
    description: string;
    pros: string[];
    cons: string[];
    popularity: 'high' | 'medium' | 'low';
}
export interface SuggestToolingResult {
    mode: 'existing' | 'new';
    currentTooling: ToolingAssessment[];
    gaps: ToolingGap[];
    recommendations: ToolingRecommendation[];
    questions?: ToolingQuestion[];
    maturityScore: number;
    message: string;
    recommendedSkills?: RecommendedSkill[];
}
export interface IntegratePMResult {
    platform: string;
    action: string;
    externalId?: string;
    externalUrl?: string;
    message: string;
}
export interface SuggestToolingInput {
    projectId: string;
    specId?: string;
    categories?: DevLifecycleCategory[];
    /** C5: When category is 'audit-deps', pre-check a specific package by name */
    packageName?: string;
}
export interface IntegratePMInput {
    projectId: string;
    platform: 'jira' | 'linear' | 'github' | 'github-projects' | 'trello' | 'notion' | 'asana' | 'clickup';
    action: 'sync-spec' | 'create-issue' | 'link-spec' | 'update-status';
    specId?: string;
    config?: Record<string, string>;
}
export interface PMPlatformConfig {
    name: string;
    apiBaseUrl: string;
    docsUrl: string;
    issueTemplate: (spec: Spec) => Record<string, unknown>;
    statusMapping: Record<string, string>;
}
export interface CatalogTool {
    name: string;
    type?: string;
    docsUrl: string;
    mcpAvailable?: boolean;
    configFiles?: string[];
    sdks?: Record<string, string>;
}
export interface CatalogCategory {
    name: string;
    why: string;
    tools: Record<string, CatalogTool>;
}
export type DevLifecycleCatalog = Record<string, CatalogCategory>;
//# sourceMappingURL=assessment.d.ts.map