import { BooleanInput } from '@angular/cdk/coercion';
import { ChangeDetectorRef, ElementRef } from '@angular/core';
import { HasElementRef, Nullable } from '@fundamental-ngx/cdk/utils';
import { IconFont } from '@fundamental-ngx/core/icon';
import * as i0 from "@angular/core";
export type GlyphPosition = 'before' | 'after';
export type ButtonType = '' | 'standard' | 'positive' | 'negative' | 'attention' | 'half' | 'ghost' | 'transparent' | 'emphasized' | 'menu';
export declare const defaultButtonType: ButtonType;
export declare class BaseButton implements HasElementRef {
    /** Whether button is in toggled state. */
    toggled: BooleanInput;
    /**
     * Native type of button element
     */
    type: Nullable<string>;
    /** Position of glyph related to text */
    glyphPosition: GlyphPosition;
    /** The icon to include in the button. See the icon page for the list of icons.
     * Setter is used to control when css class have to be rebuilded.
     * Default value is set to ''.
     */
    glyph: Nullable<string>;
    /** Glyph font family */
    glyphFont: IconFont;
    /** The type of the button. Types include:
     * 'standard' | 'positive' | 'negative' | 'attention' | 'half' | 'ghost' | 'transparent' | 'emphasized' | 'menu'.
     * Leave empty for default (Standard button).'
     * Default value is set to 'standard'
     */
    fdType: ButtonType;
    /**
     * Text rendered inside button component
     */
    label: string | undefined;
    /** Whether to apply menu mode to the button.
     * Default value is set to false
     */
    fdMenu: boolean;
    /**
     * Native disabled attribute of button element
     */
    disabled: boolean;
    /**
     * Native aria-disabled attribute of button element
     */
    ariaDisabled: boolean;
    /** adding native aria-label to the component */
    ariaLabel: import("@angular/core").InputSignal<Nullable<string>>;
    /** adding native aria-description to the componenet */
    ariaDescription: import("@angular/core").InputSignal<Nullable<string>>;
    /** @hidden */
    readonly elementRef: ElementRef<any>;
    /** @hidden */
    protected readonly _cdr: ChangeDetectorRef;
    /** @hidden */
    detectChanges(): void;
    /** @hidden */
    markForCheck(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseButton, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<BaseButton, never, never, { "toggled": { "alias": "toggled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "glyphPosition": { "alias": "glyphPosition"; "required": false; }; "glyph": { "alias": "glyph"; "required": false; }; "glyphFont": { "alias": "glyphFont"; "required": false; }; "fdType": { "alias": "fdType"; "required": false; }; "label": { "alias": "label"; "required": false; }; "fdMenu": { "alias": "fdMenu"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaDisabled": { "alias": "aria-disabled"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaDescription": { "alias": "ariaDescription"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
    static ngAcceptInputType_toggled: unknown;
    static ngAcceptInputType_disabled: unknown;
    static ngAcceptInputType_ariaDisabled: unknown;
}
