import { ButtonType } from '../../../Types/ButtonType';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { IButtonBaseElementProps } from './IButtonBaseElementProps';
declare const ButtonBaseElement_base: import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<typeof CustomElement, import("../../../Behaviors/Focusable").IFocusableProps>, import("../../../Behaviors/Disableable").IDisableableProps>, import("../../../Behaviors/Valueable").IValueableProps<unknown>>, import("../../../Behaviors/Sizeable").ISizeableProps>, import("../../../Behaviors/Appearanceable").IAppearanceableProps>, import("../../../Behaviors/Variantable").IVariantableProps>;
/**
 * Button base - Represents the base class for all Button controls.
 *
 * @public
 * @abstract
 */
export declare abstract class ButtonBaseElement extends ButtonBaseElement_base implements IButtonBaseElementProps {
    private _type;
    /**
     * @public
     */
    constructor();
    /**
     * Gets or sets the `type` property.
     * It modifies the classification and default behavior of the {@link ButtonElement}.
     * `submit` and `reset` are only necessary when the {@link ButtonElement} is located in a from and should control this actions.
     *
     * @public
     * @attr
     */
    get type(): ButtonType;
    set type(value: ButtonType);
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
}
export {};
//# sourceMappingURL=ButtonBaseElement.d.ts.map