import { ButtonProps } from './button.js';
import { Ref, ComputedRef } from 'vue';
import { ComponentSize } from '../../../xiaoye-primitives/index.js';
export declare function useButton(props: ButtonProps, attrs: Record<string, unknown>, emit: (event: "click", payload: MouseEvent) => void): {
    buttonRef: Ref<HTMLElement | null, HTMLElement | null>;
    buttonAttrs: ComputedRef<{
        type: "reset" | "submit" | "button" | undefined;
        disabled: boolean | undefined;
        autofocus: boolean | undefined;
        "aria-busy": string | undefined;
        role?: undefined;
        "aria-disabled"?: undefined;
        tabindex?: undefined;
    } | {
        role: string | undefined;
        "aria-disabled": string | undefined;
        "aria-busy": string | undefined;
        tabindex: unknown;
        type?: undefined;
        disabled?: undefined;
        autofocus?: undefined;
    }>;
    handleClick: (event: MouseEvent) => void;
    handleKeydown: (event: KeyboardEvent) => void;
    hasBg: ComputedRef<boolean | undefined>;
    isLink: ComputedRef<boolean | undefined>;
    isPlain: ComputedRef<boolean | undefined>;
    isText: ComputedRef<boolean | undefined>;
    isButtonTag: ComputedRef<boolean>;
    isDisabled: ComputedRef<boolean | undefined>;
    needsButtonRole: ComputedRef<boolean>;
    resolvedSize: ComputedRef<ComponentSize>;
    resolvedType: ComputedRef<"primary" | "success" | "warning" | "danger" | "default">;
};
