import { BooleanInput } from '@angular/cdk/coercion';
import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
import { XuiConfigService } from '../config';
import { ButtonColor, ButtonSize, ButtonType } from './button.types';
import { ButtonGroupComponent } from './button-group.component';
import * as i0 from "@angular/core";
export declare class ButtonComponent {
    elementRef: ElementRef;
    private configService;
    private group;
    private cdr;
    static ngAcceptInputType_shine: BooleanInput;
    static ngAcceptInputType_disabled: BooleanInput;
    private readonly _moduleName;
    state: 0 | 1 | 2 | 3;
    type?: ButtonType;
    size?: ButtonSize;
    color?: ButtonColor;
    shine: boolean;
    disabled: boolean;
    onClick?: () => Promise<boolean>;
    stateDelay: number;
    readonly click: EventEmitter<unknown>;
    constructor(elementRef: ElementRef, configService: XuiConfigService, group: ButtonGroupComponent, cdr: ChangeDetectorRef);
    get styles(): {
        [klass: string]: boolean;
    };
    _onAsync(event?: MouseEvent | KeyboardEvent): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, [null, null, { optional: true; host: true; }, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "xui-button", never, { "type": { "alias": "type"; "required": false; }; "size": { "alias": "size"; "required": false; }; "color": { "alias": "color"; "required": false; }; "shine": { "alias": "shine"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "onClick": { "alias": "onClick"; "required": false; }; "stateDelay": { "alias": "stateDelay"; "required": false; }; }, { "click": "click"; }, never, ["*"], false, never>;
}
