/**
 * Skill upload flow module
 *
 * Provides a flow for uploading a single skill to the Nori registry.
 * Handles:
 * - Spinner while checking if the skill already exists on the registry
 * - Prompting the user when the remote content differs from local
 * - Showing a unified diff between local and remote SKILL.md on demand
 * - Spinner while uploading
 */
/**
 * Result from the "check existing" callback
 */
export type CheckExistingResult = {
    exists: false;
} | {
    exists: true;
    latestVersion: string;
    contentUnchanged: boolean;
    remoteSkillMd: string;
    localSkillMd: string;
};
/**
 * Result from the "upload" callback
 */
export type SkillUploadActionResult = {
    success: true;
    version: string;
} | {
    success: false;
    error: string;
};
/**
 * Callbacks for the skill upload flow
 */
export type SkillUploadFlowCallbacks = {
    onCheckExisting: () => Promise<CheckExistingResult>;
    onUpload: (args: {
        version: string;
    }) => Promise<SkillUploadActionResult>;
};
/**
 * Result of the skill upload flow
 */
export type SkillUploadFlowResult = {
    version: string;
    uploaded: boolean;
    statusMessage: string;
};
/**
 * Execute the skill upload flow
 *
 * @param args - Flow configuration
 * @param args.skillDisplayName - Display name of the skill being uploaded
 * @param args.defaultVersion - Version to use when no remote exists
 * @param args.explicitVersion - User-supplied version override (bypasses prompts)
 * @param args.nonInteractive - If true, skip interactive prompts
 * @param args.callbacks - Callback functions for checking existence and uploading
 *
 * @returns Upload result on success, null on cancellation
 */
export declare const skillUploadFlow: (args: {
    skillDisplayName: string;
    defaultVersion: string;
    explicitVersion?: string | null;
    nonInteractive?: boolean | null;
    callbacks: SkillUploadFlowCallbacks;
}) => Promise<SkillUploadFlowResult | null>;
//# sourceMappingURL=skillUpload.d.ts.map