import { RenderResult } from '@dojo/framework/core/interfaces';
export interface ButtonProperties {
    /** Custom aria attributes */
    aria?: {
        [key: string]: string | null;
    };
    /** Whether the button is disabled or clickable */
    disabled?: boolean;
    /** The name of the button */
    name?: string;
    /** Handler for events triggered by button losing focus */
    onBlur?(): void;
    /** Handler for events triggered by a button click */
    onClick?(): void;
    /** Handler for events triggered by "on down" */
    onDown?(): void;
    /** Handler for events triggered by "on focus" */
    onFocus?(): void;
    /** Handler for events triggered by "on out" */
    onOut?(): void;
    /** Handler for events triggered by "on over" */
    onOver?(): void;
    /** Handler for events triggered by "on up" */
    onUp?(): void;
    /** Button type can be "submit", "reset", "button", or "menu" */
    type?: 'submit' | 'reset' | 'button' | 'menu';
    /**  Defines a value for the button submitted with form data */
    value?: string;
    /** `id` set on the root button DOM node */
    widgetId?: string;
    /** The title text for the button node */
    title?: string;
    /** The kind of button */
    kind?: 'contained' | 'outlined' | 'text';
    /** Where to add the icon. Default to "before" */
    iconPosition?: 'before' | 'after';
}
export interface ButtonChildren {
    /** The icon for the button */
    icon?: RenderResult;
    /** The label for the button */
    label?: RenderResult;
}
export declare const Button: import("@dojo/framework/core/interfaces").OptionalWNodeFactory<{
    properties: ButtonProperties & import("@dojo/framework/core/interfaces").WidgetProperties & {
        variant?: "default" | "inherit" | undefined;
    } & import("@dojo/framework/core/middleware/theme").ThemeProperties & import("@dojo/framework/core/interfaces").FocusProperties;
    children: string | number | boolean | import("@dojo/framework/core/interfaces").VNode | import("@dojo/framework/core/interfaces").WNode<any> | import("@dojo/framework/core/interfaces").DNode<any>[] | ButtonChildren | [ButtonChildren] | RenderResult[];
}>;
export default Button;
