/** The visual weight of a {@link DecisionButton}. */
export type DecisionVariant = "primary" | "ghost" | "danger";
/** Props for {@link DecisionButton}. */
export interface DecisionButtonProps {
    /** Visible button text; also used as the accessible name. */
    readonly label: string;
    /**
     * Visual weight. `primary` is the quiet neutral chip (the single recommended
     * action), `ghost` is the lowest-weight neutral action, and `danger` is a
     * ghost that reveals a destructive cue on hover/focus.
     */
    readonly variant: DecisionVariant;
    /** Invoked on click. */
    readonly onClick: () => void;
    /** True while ANY decision RPC is in flight — disables every button. */
    readonly isSubmitting?: boolean;
    /** True when THIS button's RPC is the one in flight — shows the spinner. */
    readonly isActive?: boolean;
    /**
     * Disables the button independent of {@link isSubmitting} — e.g. an action that
     * is structurally unavailable (approving an incomplete, unreviewable diff).
     */
    readonly disabled?: boolean;
    /** Extra classes (e.g. `ml-auto` to visually separate a demoted action). */
    readonly className?: string;
    /** Stable hook for e2e/visual targeting (`data-cursor-target`). */
    readonly cursorTarget?: string;
    /**
     * Id of an element that explains this button — wired to `aria-describedby` so a
     * disabled, structurally-unavailable action (e.g. approving an unreviewable
     * change) is associated with the notice stating why.
     */
    readonly ariaDescribedby?: string;
}
/**
 * The shared decision-action button for every approval surface — the agent
 * tool gate ({@link ApprovalCard}) and the two workflow approval cards
 * ({@link WorkflowTaskApprovalCard}, {@link WorkflowExecutionApprovalCard}).
 *
 * One source of truth for the quiet, Cursor-grade button system so the three
 * surfaces can never visually drift, and so the spinner and base chrome live in
 * exactly one place. Every visual property flows through `--stgm-*` tokens.
 *
 * @internal Not part of the public API.
 */
export declare function DecisionButton({ label, variant, onClick, isSubmitting, isActive, disabled, className, cursorTarget, ariaDescribedby, }: DecisionButtonProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=DecisionButton.d.ts.map