import { FocusMonitor } from '@angular/cdk/a11y';
import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, OnDestroy, QueryList, Renderer2 } from '@angular/core';
import { KbqColorDirective, KbqTitleTextRef } from '@koobiq/components/core';
import { KbqIcon } from '@koobiq/components/icon';
import * as i0 from "@angular/core";
export declare enum KbqButtonStyles {
    Filled = "filled",
    Outline = "outline",
    Transparent = "transparent"
}
export declare const buttonLeftIconClassName = "kbq-button-icon_left";
export declare const buttonRightIconClassName = "kbq-button-icon_right";
export declare class KbqButtonCssStyler implements AfterContentInit {
    private renderer;
    private cdr;
    icons: QueryList<KbqIcon>;
    nativeElement: HTMLElement;
    isIconButton: boolean;
    constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2, cdr: ChangeDetectorRef);
    ngAfterContentInit(): void;
    updateClassModifierForIcons(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqButtonCssStyler, [null, null, { skipSelf: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqButtonCssStyler, "[kbq-button]", never, {}, {}, ["icons"], never, false, never>;
}
export declare class KbqButton extends KbqColorDirective implements OnDestroy, AfterViewInit, KbqTitleTextRef {
    private focusMonitor;
    private styler;
    private readonly changeDetectorRef;
    hasFocus: boolean;
    textElement: ElementRef;
    get kbqStyle(): string;
    set kbqStyle(value: string | KbqButtonStyles);
    private _kbqStyle;
    get disabled(): boolean;
    set disabled(value: boolean);
    private _disabled;
    get tabIndex(): number;
    set tabIndex(value: number);
    private _tabIndex;
    constructor(focusMonitor: FocusMonitor, styler: KbqButtonCssStyler);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onFocus($event: any): void;
    onBlur(): void;
    getHostElement(): HTMLElement;
    focus(): void;
    focusViaKeyboard(): void;
    haltDisabledEvents(event: Event): void;
    projectContentChanged(): void;
    private runFocusMonitor;
    private stopFocusMonitor;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqButton, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqButton, "[kbq-button]", never, { "kbqStyle": { "alias": "kbqStyle"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, ["*"], false, never>;
    static ngAcceptInputType_disabled: unknown;
    static ngAcceptInputType_tabIndex: unknown;
}
