import { KubeObject } from '../../../lib/k8s/KubeObject';
import type { RevisionInfo, RollbackResult } from '../../../lib/k8s/rollback';
import { ButtonStyle } from '../ActionButton';
/**
 * Interface for resources that support rollback.
 */
export interface RollbackableResource extends KubeObject {
    rollback: (toRevision?: number) => Promise<RollbackResult>;
    getRevisionHistory: () => Promise<RevisionInfo[]>;
}
/**
 * Type guard to check if a KubeObject is a resource that supports rollback.
 * Currently supports Deployment, DaemonSet, and StatefulSet.
 */
export declare function isRollbackableResource(item: KubeObject): item is RollbackableResource;
export interface RollbackButtonProps {
    /** The Kubernetes resource to rollback */
    item: KubeObject;
    /** Optional button style override */
    buttonStyle?: ButtonStyle;
    /** Optional callback after user confirms the rollback */
    afterConfirm?: () => void;
}
/**
 * RollbackButton component for rolling back Workloads to a selected revision.
 *
 * This component provides a button that, when clicked, shows a revision selection
 * dialog where the user can pick a specific revision to rollback to.
 *
 * Supported Resources:
 * - Deployment (via ReplicaSets)
 * - DaemonSet (via ControllerRevisions)
 * - StatefulSet (via ControllerRevisions)
 */
export declare function RollbackButton(props: RollbackButtonProps): import("react/jsx-runtime").JSX.Element | null;
export default RollbackButton;
