import SgdsElement from "./sgds-element";
import { SpinnerTone } from "../components";
export type ButtonTone = "brand" | "danger" | "fixed-light" | "neutral";
export type ButtonVariant = "primary" | "outline" | "ghost"
/** @deprecated since v3.5.6 */
 | "danger";
export default class ButtonElement extends SgdsElement {
    static styles: import("lit").CSSResult[];
    /** @internal */
    protected button: HTMLButtonElement | HTMLLinkElement;
    /** Sets the visual variants such as: `primary`, `outline`, `ghost`. `danger` is @deprecated since v3.5.6 */
    variant: ButtonVariant;
    /** Sets the visual colour of the button: `brand`, `danger`, `fixed-light`, `neutral` */
    tone: ButtonTone;
    /** Specifies a small, medium or large button, the size is medium by default. */
    size: "xs" | "sm" | "md" | "lg";
    /** Manually set the visual state of the button to `:active` */
    active: boolean;
    /** The disabled state of the button */
    disabled: boolean;
    /** When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`. */
    href: string;
    /** Where to display the linked URL, as the name for a browsing context. Forwards to the HTMLAnchor target attribute */
    target: "_blank" | "_parent" | "_self" | "_top";
    /** Tells the browser to download the linked file as this filename. Only used when `href` is set. */
    download: string;
    /** The aria-label attribute to passed to button element when necessary */
    ariaLabel: string;
    /** When true, shows a loading spinner */
    loading: boolean;
    /** Sets focus on the button. */
    focus(options?: FocusOptions): void;
    /** Simulates a click on the button. */
    click(): void;
    /** Removes focus from the button. */
    blur(): void;
    protected _handleBlur(): void;
    protected _handleFocus(): void;
    protected _handleClick(event: MouseEvent): void;
    protected _handleKeydown(event: KeyboardEvent): void;
    protected _assignSpinnerSize(buttonSize: "xs" | "sm" | "md" | "lg"): "xs" | "sm";
    protected _assignSpinnerTone(buttonTone: ButtonTone, buttonVariant: ButtonVariant): SpinnerTone;
}
