import type { SmartDeployState } from '../../../hooks/use-smart-deploy-state.js';
/** Extra-gating flag used while the initial setup workflow hasn't finished yet. */
export interface SmartDeployButtonExtras {
    /**
     * Overrides every state to a disabled "Setting up…" appearance.
     * Takes precedence over the normal `state.kind` interactivity rules.
     */
    forceDisabledReason?: string;
}
export interface SmartDeployButtonProps extends SmartDeployButtonExtras {
    state: SmartDeployState;
    /** Run the primary action (left half click). */
    onPrimaryClick(): void;
    /** Panel content rendered inside the popover. */
    panel: React.ReactNode;
    /** Controlled popover open state. When provided, the parent owns the
     *  open/close lifecycle — used so the primary-click handler can pop the
     *  panel open for states like `getOnline` that need the user to pick a
     *  path instead of committing to a specific action. */
    panelOpen?: boolean;
    onPanelOpenChange?(open: boolean): void;
    className?: string;
}
export declare function SmartDeployButton({ state, onPrimaryClick, panel, panelOpen: controlledPanelOpen, onPanelOpenChange, className, forceDisabledReason, }: SmartDeployButtonProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=smart-deploy-button.d.ts.map