import { type GenerateSkillRequest as BaseGenerateSkillRequest, type GenerateSkillResult as BaseGenerateSkillResult } from "../eval-server/skill-create-routes.js";
export interface GenerateSkillRequest extends BaseGenerateSkillRequest {
    multiFile?: boolean;
}
export interface GenerateSkillResult extends BaseGenerateSkillResult {
    /** Auxiliary files produced by the multi-file pipeline (relative path → contents). */
    files?: Record<string, string>;
    /** Env-var names declared by the test-agent. */
    secrets?: string[];
    /** Runtime requirements declared by the script-agent. */
    runtime?: {
        python?: string;
        pip?: string[];
        node?: string;
    };
    /** Integration-test contract declared by the test-agent. */
    integrationTests?: {
        runner: "vitest" | "pytest" | "none";
        file?: string;
        requires?: string[];
    };
    /** Per-agent error messages from the parallel fan-out (informational). */
    multiFileWarnings?: string[];
}
export interface GenerateSkillProgressEvent {
    phase: "preparing" | "generating-body" | "generating-evals" | "generating-scripts" | "generating-graders" | "generating-tests" | "generating-references" | "parsing" | "done";
    message: string;
}
export interface GenerateSkillOptions {
    /** Project root — used by detectProjectLayout() for plugin hints. */
    root: string;
    /** Optional progress callback — phase events for SSE or CLI spinners. */
    onProgress?: (event: GenerateSkillProgressEvent) => void;
    /**
     * Optional AbortSignal. When aborted the generator stops as soon as the
     * in-flight LLM calls settle (LLM clients themselves do not currently
     * honor AbortSignal; this is best-effort cooperative cancellation).
     */
    abortSignal?: AbortSignal;
}
/**
 * Generate a complete skill definition (body + metadata + evals) from a
 * natural-language prompt.
 *
 * Both LLM calls run in parallel (body + evals); the body is required while
 * evals are optional — if eval generation fails the result is returned with
 * `evals: []` and a `warning` field.
 */
export declare function generateSkill(request: GenerateSkillRequest, options: GenerateSkillOptions): Promise<GenerateSkillResult>;
