export type RollbackStepName = 'npm-dist-tag-rm' | 'git-tag-delete-local' | 'git-tag-delete-remote' | 'smoke-test-verify';
export interface RollbackStep {
    name: RollbackStepName;
    status: 'success' | 'failed' | 'skipped';
    stdout?: string;
    stderr?: string;
    command?: string;
}
export interface RollbackRunnerInput {
    version: string;
    packageName?: string;
    /** When true, only logs what would happen */
    dryRun?: boolean;
}
export interface RollbackRunnerResult {
    ok: boolean;
    steps: RollbackStep[];
    failedStep?: RollbackStepName;
}
/**
 * Determine the dist-tag for a given version via `npm dist-tag ls`.
 * Returns 'latest' if the version is tagged as latest, otherwise 'beta' or first found tag.
 * Falls back to 'latest' on error.
 */
export declare function detectDistTag(packageName: string, version: string): Promise<string>;
/**
 * Run the rollback steps:
 *   1. npm dist-tag rm @planu/cli <tag>
 *   2. git tag -d v<version>
 *   3. git push --delete origin v<version>
 *
 * Halts on first failure. Returns the list of steps with their statuses.
 */
export declare function runRollback(input: RollbackRunnerInput): Promise<RollbackRunnerResult>;
//# sourceMappingURL=rollback-runner.d.ts.map