import { type CandidacyResult } from "./quality/candidacy.js";
/** Input contract for the three mutually exclusive `skill new` modes. */
interface SkillNewOptions {
    /** A natural-language description of the skill (description mode). */
    description?: string | undefined;
    /** Path to an existing markdown draft (draft-validation mode). */
    draftPath?: string | undefined;
    /** Open the interactive prompt flow even when other inputs are provided. */
    shouldUseInteractivePrompt?: boolean;
    /** Skip the y/n confirmation prompt before writing (used by tests). */
    shouldSkipConfirm?: boolean;
    /** Override the skill name (otherwise prompts in interactive mode). */
    name?: string | undefined;
    /** Project root for path resolution (default: process.cwd()). */
    projectRoot?: string;
    /** Pre-supplied stdin lines (used by tests in place of readline). */
    stdinAnswers?: string[];
}
/** Result returned by `skill new`, including dry-run output when no file is written. */
interface SkillNewResult extends Record<"written", boolean> {
    candidacy: CandidacyResult;
    /** Absolute path the scaffold was (or would be) written to. */
    proposedPath: string | null;
    /** Filled scaffold content. */
    scaffold: string | null;
    /** Quality score after scaffold (skill kind only). */
    postScaffoldScore?: {
        totalScore: number;
        profileMax: number;
    } | undefined;
    /** Human-readable lines for terminal output. */
    output: string[];
}
/** User-facing validation error for invalid `skill new` mode combinations. */
declare class SkillNewInputError extends Error {
    /** Preserve the custom error name so the CLI can classify input failures. */
    constructor(message: string);
}
export { SkillNewInputError };
export declare function runSkillNew(options: SkillNewOptions): Promise<SkillNewResult>;
//# sourceMappingURL=skill-author.d.ts.map