import { ElementDefinitionsMap, FtLitElement } from "@fluid-topics/ft-wc-utils";
import { Position } from "@fluid-topics/ft-tooltip";
import { FtIconVariants } from "@fluid-topics/ft-icon";
import { HTMLTemplateResult } from "lit";
import { ClassInfo } from "lit/directives/class-map.js";
type HTMLAnchorElementTargetAttribute = "_self" | "_blank" | "_parent" | "_top";
export interface FtBaseButtonProperties {
    disabled?: boolean;
    label?: string;
    href?: string;
    target?: HTMLAnchorElementTargetAttribute;
    icon?: string;
    iconVariant?: FtIconVariants;
    trailingIcon?: boolean;
    loading?: boolean;
    ariaLabel?: string | null;
    tooltipPosition?: Position;
    hideTooltip?: boolean;
    forceTooltip?: boolean;
}
declare const FtBaseButton_base: import("@fluid-topics/ft-wc-utils").FtFormComponentType<typeof FtLitElement>;
export declare class FtBaseButton extends FtBaseButton_base implements FtBaseButtonProperties {
    static elementDefinitions: ElementDefinitionsMap;
    href?: string;
    target?: HTMLAnchorElementTargetAttribute;
    role: string;
    type: "button" | "submit" | "reset";
    disabled: boolean;
    label: string;
    icon?: string;
    iconVariant?: FtIconVariants;
    trailingIcon: boolean;
    loading: boolean;
    ariaLabel: string | null;
    tooltipPosition: Position;
    hideTooltip: boolean;
    forceTooltip: boolean;
    private button?;
    private slottedContent?;
    private tooltip?;
    get buttonClasses(): ClassInfo;
    get typographyVariant(): string;
    constructor();
    protected render(): HTMLTemplateResult;
    private addTooltipIfNeeded;
    private resolveIcon;
    focus(): void;
    focusWithoutTooltip(): void;
    private setTooltipManual;
    click(): void;
    private getLabel;
    get textContent(): string;
    protected hasTextContent(): boolean;
    private onSlotchange;
    private isDisabled;
}
export {};
