import type { AgentPlatform, SubAgentFramework } from '../common/index.js';
import type { RecommendedSkill } from '../mcp.js';
export interface StackRecommendation {
    language: string;
    framework: string;
    version: string;
    database: string;
    orm?: string;
    auth?: string;
    deployment: string;
    reasoning: string;
    ecosystem: string[];
}
export interface SuggestStackResult {
    primary: StackRecommendation;
    alternative: StackRecommendation;
    whyNotOthers: {
        name: string;
        reason: string;
    }[];
    mcpCompatibility: {
        mcp: string;
        compatible: boolean;
        notes: string;
    }[];
    lastChecked: string;
    confidence?: 'high' | 'medium' | 'low';
}
export type PackageRegistry = 'npm' | 'pypi' | 'crates' | 'go' | 'packagist' | 'pub' | 'nuget' | 'rubygems';
export interface DependencyStatus {
    name: string;
    currentVersion: string;
    latestVersion: string;
    updateType: 'security' | 'major' | 'minor' | 'patch' | 'up-to-date';
    deprecated: boolean;
    replacement?: string;
    changelog?: string;
    breakingChanges?: string[];
    registry?: PackageRegistry;
    checkedAt?: string;
}
export interface CheckVersionsResult {
    dependencies: DependencyStatus[];
    securityAlerts: number;
    updatesAvailable: number;
    recommendation: string;
}
export interface SkillFile {
    path: string;
    content: string;
    format: 'markdown' | 'json' | 'yaml' | 'toml';
}
export interface GenerateSkillResult {
    platform: AgentPlatform;
    files: SkillFile[];
    installInstructions: string;
    message: string;
}
export interface AgentConfig {
    platform: AgentPlatform;
    rulesFile: string;
    skillsDir?: string;
    format: 'markdown' | 'json' | 'yaml' | 'toml';
    capabilities: string[];
    mcpSupport: boolean;
}
export interface SubAgentDefinition {
    name: string;
    role: string;
    model: string;
    systemPrompt: string;
    tools: string[];
    maxTurns?: number;
    handoffConditions?: string[];
}
export interface GenerateSubAgentResult {
    framework: SubAgentFramework;
    files: SkillFile[];
    agentDefinition: SubAgentDefinition;
    installInstructions: string;
}
export interface GenerateRulesResult {
    platform: AgentPlatform;
    rulesFile: SkillFile;
    additionalFiles: SkillFile[];
    rulesCount: number;
    categories: string[];
    recommendedSkills: RecommendedSkill[];
}
export interface SuggestStackInput {
    projectType: 'web' | 'mobile' | 'backend' | 'fullstack' | 'cli' | 'library';
    requirements: string[];
    constraints?: string[];
    projectId?: string;
}
export interface CheckVersionsInput {
    projectId: string;
    includeDevDeps?: boolean;
}
export interface GenerateSkillInput {
    specId?: string;
    projectId: string;
    platform: AgentPlatform;
    skillType: 'project-rules' | 'domain-skill' | 'workflow' | 'convention';
    name: string;
    description: string;
}
export interface GenerateSubAgentInput {
    projectId: string;
    framework: SubAgentFramework;
    agentName: string;
    role: string;
    capabilities: string[];
    tools?: string[];
    systemPrompt?: string;
    autoMemory?: boolean;
}
export interface GenerateRulesInput {
    projectId: string;
    platform: AgentPlatform;
    includeArchitecture?: boolean;
    includeConventions?: boolean;
    includeQuality?: boolean;
    includeWorkflow?: boolean;
    customRules?: string[];
}
export interface DetectAgentInput {
    projectId: string;
}
export interface GenerateOrchestrationScriptInput {
    specIds: string[];
    projectPath: string;
    mainBranch?: string;
    baseBranch?: string;
}
export interface DetectAgentResult {
    platform: AgentPlatform;
    confidence: number;
    detectedFrom: string[];
    capabilities: string[];
    message: string;
}
export interface PlatformConfig {
    name: string;
    rulesFile: string;
    skillsDir: string | null;
    format: 'markdown' | 'json' | 'yaml' | 'toml';
    capabilities: string[];
    mcpSupport: boolean;
    configFiles?: string[];
}
export interface PlatformsConfig {
    platforms: Record<string, PlatformConfig>;
}
export interface RuleSection {
    title: string;
    rules: {
        rule: string;
        enforcement: 'strict' | 'recommended';
    }[];
}
export interface LanguageSignature {
    files: string[];
    extensions: string[];
}
export interface FrameworkSignature {
    indicators: string[];
    dependencies: string[];
    language: string;
    codePatterns?: string[];
    packageFile?: string;
}
export interface PackageManagerSignature {
    lockfile: string;
    language: string;
}
export interface DatabaseSignature {
    indicators: string[];
    dependencies: string[];
    engine: string;
    features: string[];
}
export interface StackSignatures {
    languages: Record<string, LanguageSignature>;
    frameworks: Record<string, FrameworkSignature>;
    packageManagers: Record<string, PackageManagerSignature>;
    databases: Record<string, DatabaseSignature>;
}
export interface ArchPatternConfig {
    name: string;
    indicators: Record<string, unknown>;
    layers?: string[];
    communication?: string[];
}
export interface ArchPatternsFile {
    patterns: Record<string, ArchPatternConfig>;
}
export interface FrameworkConfig {
    name: string;
    languages: string[];
    docsUrl: string;
    supportsHandoffs: boolean;
    supportsMcp: boolean;
}
export interface AgentPlatformsConfig {
    subAgentFrameworks: Record<string, FrameworkConfig>;
}
//# sourceMappingURL=recommend.d.ts.map