import { GdsFormControlElement } from '../form/form-control';
declare class Button extends GdsFormControlElement<any> {
    #private;
    static styles: (import("lit").CSSResult | import("lit").CSSResult[])[];
    /**
     * @internal
     */
    static shadowRootOptions: ShadowRootInit;
    /**
     * Whether the button is disabled.
     */
    disabled: boolean;
    /**
     * Spread the contents of the button
     */
    'justify-content'?: string;
    /**
     * The type of the button.
     */
    type?: HTMLButtonElement['type'];
    /**
     * The rank of the button. Defaults to "primary".
     */
    rank: 'primary' | 'secondary' | 'tertiary';
    /**
     * Defines which variant the button belongs to. Defaults to "neutral".
     */
    variant: 'brand' | 'neutral' | 'positive' | 'negative' | 'notice' | 'warning';
    /**
     * Sets the size of the button. Defaults to "medium".
     */
    size: 'xs' | 'small' | 'medium' | 'large';
    /**
     * The label of the button. Use this to add an accessible label to the button when no text is provided in the default slot.
     */
    label: string;
    /**
     * When set, adds a wrapped class to the button.
     */
    wrapped: boolean;
    /**
     * When set, the underlying button will be rendered as an anchor element.
     */
    href: string;
    /**
     * Where to display the linked URL. Only used when href is present.
     */
    target?: '_self' | '_blank' | '_parent' | '_top';
    /**
     * The relationship of the linked URL as space-separated link types. Only used when href is present. Defaults to "noreferrer noopener" for security reasons when target is set.
     */
    rel?: string;
    /**
     * Causes the browser to treat the linked URL as a download. Can be used with or without a filename value. Only used when href is present.
     */
    download?: string;
    private _mainSlot?;
    private _button?;
    private _ripple?;
    focus(options?: FocusOptions): void;
    click(): void;
    connectedCallback(): void;
    render(): import("lit-html").TemplateResult;
    protected _getValidityAnchor(): HTMLElement;
    private _attributeChanged;
}
declare const GdsButton_base: (new (...args: any[]) => import("../../utils/mixins/declarative-layout-mixins").SizeXProps) & (new (...args: any[]) => import("../../utils/mixins/declarative-layout-mixins").MarginProps) & (new (...args: any[]) => import("../../utils/mixins/declarative-layout-mixins").LayoutChildProps) & typeof Button;
/**
 * @element gds-button
 * @summary A custom button element that can display a label, lead and trail icons, and a ripple effect on click.
 *
 * @slot - Content to be displayed as the button label.
 * @slot lead - An optional slot that allows a `gds-icon-[ICON_NAME]` element to be placed before the label.
 * @slot trail - An optional slot that allows a `gds-icon-[ICON_NAME]` element to be placed after the label.
 *
 * @event click - Fired when the button is clicked.
 */
export declare class GdsButton extends GdsButton_base {
}
export {};
