import type { SeedAgentConfig } from "../../config/schema.js";
export type SeedSkillSource = "project" | "user";
export type SeedSkillRoot = {
    path: string;
    source: SeedSkillSource;
};
export type SeedSkillDescriptor = {
    name: string;
    source: SeedSkillSource;
    path: string;
    description?: string;
    version?: string;
    tags?: string[];
    keywords?: string[];
    triggers?: string[];
    agents?: string[];
    categories?: string[];
};
export type SeedSkillMetadata = {
    name?: string;
    description?: string;
    version?: string;
    license?: string;
    compatibility?: string;
    tags?: string[];
    keywords?: string[];
    triggers?: string[];
    agents?: string[];
    categories?: string[];
    required_mcps?: string[];
    optional_mcps?: string[];
    mcp?: {
        required?: string[];
        optional?: string[];
    };
};
export type SeedSkillMcpRequirement = {
    required: string[];
    optional: string[];
};
export type SeedMcpStatus = "available" | "disabled" | "missing" | "unavailable";
export type SeedMcpDiagnostic = {
    name: string;
    required: boolean;
    status: SeedMcpStatus;
    detail: string;
    action?: string;
};
export type LoadedSeedSkill = {
    name: string;
    source: SeedSkillSource;
    path: string;
    body: string;
    metadata: SeedSkillMetadata;
    requirements: SeedSkillMcpRequirement;
    mcp_diagnostics: SeedMcpDiagnostic[];
};
export type SeedMcpInventory = Record<string, {
    status: SeedMcpStatus;
    detail: string;
    action?: string;
}>;
export type SeedSkillValidationSeverity = "error" | "warning";
export type SeedSkillValidationFinding = {
    severity: SeedSkillValidationSeverity;
    code: string;
    message: string;
    path?: string;
    skill?: string;
    action?: string;
};
export type SeedSkillValidationRecord = {
    name: string;
    directory_name: string;
    source: SeedSkillSource;
    path: string;
    metadata: SeedSkillMetadata;
    requirements: SeedSkillMcpRequirement;
    mcp_diagnostics: SeedMcpDiagnostic[];
    findings: SeedSkillValidationFinding[];
};
export type SeedSkillValidationReport = {
    schema_version: 1;
    checked_at: string;
    status: "passed" | "warning" | "failed";
    scope: "all" | "skill";
    include_user: boolean;
    roots: Array<SeedSkillRoot & {
        exists: boolean;
    }>;
    skills: SeedSkillValidationRecord[];
    findings: SeedSkillValidationFinding[];
};
export type SeedSkillRecommendation = SeedSkillDescriptor & {
    score: number;
    status: "ready" | "blocked";
    reasons: string[];
    requirements: SeedSkillMcpRequirement;
    mcp_diagnostics: SeedMcpDiagnostic[];
};
export declare function describeSkillLoading(enabled: boolean): string;
export declare function skillRoots(directory: string, config: SeedAgentConfig): SeedSkillRoot[];
export declare function listSeedSkills(roots: SeedSkillRoot[]): Promise<SeedSkillDescriptor[]>;
export declare function loadSeedSkill(name: string, roots: SeedSkillRoot[], inventory: SeedMcpInventory): Promise<LoadedSeedSkill | undefined>;
export declare function validateSeedSkills(roots: SeedSkillRoot[], inventory: SeedMcpInventory, input?: {
    name?: string;
    includeUser?: boolean;
}): Promise<SeedSkillValidationReport>;
export declare function recommendSeedSkills(roots: SeedSkillRoot[], inventory: SeedMcpInventory, input: {
    query: string;
    targetAgent?: string;
    category?: string;
    limit?: number;
    includeUser?: boolean;
}): Promise<SeedSkillRecommendation[]>;
export declare function createMcpInventory(config: SeedAgentConfig, cwd: string): SeedMcpInventory;
export declare function diagnoseSkillMcps(requirements: SeedSkillMcpRequirement, inventory: SeedMcpInventory): SeedMcpDiagnostic[];
