/**
 * Switch skillset flow module
 *
 * Provides the complete interactive switch-skillset experience using @clack/prompts.
 * This flow handles:
 * - Broadcasting switch to all configured agents
 * - Local change detection and handling (proceed, capture, abort)
 * - Switch confirmation with current/new skillset info
 * - Spinner during switch and reinstall
 */
import type { ManifestDiff } from "../../../cli/features/manifest.js";
/**
 * Callbacks for the switch skillset flow
 */
export type SwitchSkillsetCallbacks = {
    onResolveAgents: () => Promise<Array<{
        name: string;
        displayName: string;
    }>>;
    onPrepareSwitchInfo: (args: {
        installDir: string;
        agentName: string;
    }) => Promise<{
        currentProfile: string | null;
        localChanges: ManifestDiff | null;
    }>;
    onCaptureConfig: (args: {
        installDir: string;
        skillsetName: string;
    }) => Promise<void>;
    onExecuteSwitch: (args: {
        installDir: string;
        agentName: string;
        skillsetName: string;
    }) => Promise<void>;
    onRedownload?: ((args: {
        skillsetName: string;
    }) => Promise<void>) | null;
    onReadFileDiff?: ((args: {
        relativePath: string;
        installDir: string;
    }) => Promise<{
        original: string;
        current: string;
    } | null>) | null;
};
/**
 * Result of the switch skillset flow
 */
export type SwitchSkillsetFlowResult = {
    agentName: string;
    skillsetName: string;
    statusMessage: string;
} | null;
/**
 * Execute the interactive switch skillset flow
 *
 * Broadcasts the switch to all resolved agents (no agent selection prompt).
 *
 * @param args - Flow configuration
 * @param args.skillsetName - The skillset name to switch to
 * @param args.installDir - Installation directory
 * @param args.callbacks - Callback functions for side-effectful operations
 *
 * @returns Result on success, null on cancel or abort
 */
export declare const switchSkillsetFlow: (args: {
    skillsetName: string;
    installDir: string;
    callbacks: SwitchSkillsetCallbacks;
}) => Promise<SwitchSkillsetFlowResult>;
//# sourceMappingURL=switchSkillset.d.ts.map