/**
 * @license
 * Copyright 2025 Sandlada & Kai Orion
 * SPDX-License-Identifier: MIT
 */
import type { ExtractPublicPropTypes, PropType, VNode } from 'vue';
import { type TFormSubmitterType } from '../../internals';
import type { TButtonTarget } from '../../utils/button-target-type';
export declare const ButtonAppearance: {
    readonly Filled: "filled";
    readonly Outlined: "outlined";
    readonly Elevated: "elevated";
    readonly FilledTonal: "filled-tonal";
    readonly Text: "text";
};
export type TButtonAppearance = typeof ButtonAppearance[keyof typeof ButtonAppearance];
export declare const ButtonSize: {
    readonly ExtraSmall: "extra-small";
    readonly Small: "small";
    readonly Medium: "medium";
    readonly Large: "large";
    readonly ExtraLarge: "extra-large";
};
export declare const ButtonShape: {
    readonly Round: "round";
    readonly Suare: "square";
};
export type TButtonShape = typeof ButtonShape[keyof typeof ButtonShape];
export type TButtonSize = typeof ButtonSize[keyof typeof ButtonSize];
export declare const props: {
    appearance: {
        type: PropType<TButtonAppearance>;
        default: "filled";
    };
    size: {
        type: PropType<TButtonSize>;
        default: "small";
    };
    togglable: {
        type: PropType<boolean>;
        default: boolean;
    };
    defaultSelected: {
        type: PropType<boolean>;
        default: boolean;
    };
    shape: {
        type: PropType<TButtonShape>;
        default: "round";
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    type: {
        type: PropType<TFormSubmitterType>;
        default: "button";
    };
    href: {
        type: PropType<string>;
        default: null;
    };
    target: {
        type: PropType<TButtonTarget>;
        default: null;
    };
    form: {
        type: PropType<string>;
        default: null;
    };
    name: {
        type: PropType<string>;
        default: null;
    };
    value: {
        type: PropType<string>;
        default: null;
    };
};
export type TButtonProps = ExtractPublicPropTypes<typeof props>;
export type TButtonSlots = {
    default?: VNode;
    'leading-icon'?: VNode;
    'trailing-icon'?: VNode;
};
//# sourceMappingURL=button.definition.d.ts.map