import * as _angular_core from '@angular/core';
import { ElementRef } from '@angular/core';
import * as i1 from '@agorapulse/ui-components/directives';
import { BaseButtonDirective } from '@agorapulse/ui-components/directives';
import { MatMenuPanel } from '@angular/material/menu';

type ButtonConfig = {
    style: 'primary';
    color: 'orange' | 'blue';
} | {
    style: 'secondary';
    color: 'orange' | 'blue';
} | {
    style: 'stroked';
    color: 'grey' | 'blue' | 'red';
} | {
    style: 'stroked-transparent';
    color: 'grey' | 'blue' | 'red';
} | {
    style: 'ghost';
    color: 'grey' | 'blue' | 'red' | 'green';
} | {
    style: 'mermaid';
    color?: never;
};
declare const defaultButtonConfig: ButtonConfig;
declare class ButtonComponent {
    readonly baseButtonDirective: BaseButtonDirective;
    buttonElement: _angular_core.Signal<ElementRef<HTMLButtonElement>>;
    ariaLabel: _angular_core.InputSignal<string | undefined>;
    disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
    name: _angular_core.InputSignal<string | undefined>;
    form: _angular_core.InputSignal<string | undefined>;
    config: _angular_core.InputSignalWithTransform<ButtonConfig, ButtonConfig | undefined>;
    loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
    locked: _angular_core.InputSignalWithTransform<boolean, unknown>;
    menuTrigger: _angular_core.InputSignal<MatMenuPanel<any> | null>;
    symbolPosition: _angular_core.InputSignal<"left" | "right">;
    symbolId: _angular_core.InputSignal<string | undefined>;
    menuOpened: _angular_core.OutputEmitterRef<void>;
    menuClosed: _angular_core.OutputEmitterRef<void>;
    click: _angular_core.OutputEmitterRef<MouseEvent>;
    focus: _angular_core.OutputEmitterRef<FocusEvent>;
    blur: _angular_core.OutputEmitterRef<FocusEvent>;
    buttonClasses: _angular_core.Signal<{
        locked: boolean;
        inverse: boolean;
    } | {
        loading: boolean;
        transparent: boolean;
        stroked: boolean;
        inverse: boolean;
    }>;
    focused: boolean;
    private readonly symbolRegistry;
    constructor();
    onClickHandle($event: MouseEvent): void;
    onBlurHandle($event: FocusEvent): void;
    onFocusHandle($event: FocusEvent): void;
    onSpaceKeyUp(event: Event): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "ap-button", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "locked": { "alias": "locked"; "required": false; "isSignal": true; }; "menuTrigger": { "alias": "menuTrigger"; "required": false; "isSignal": true; }; "symbolPosition": { "alias": "symbolPosition"; "required": false; "isSignal": true; }; "symbolId": { "alias": "symbolId"; "required": false; "isSignal": true; }; }, { "menuOpened": "menuOpened"; "menuClosed": "menuClosed"; "click": "click"; "focus": "focus"; "blur": "blur"; }, never, ["*", "ap-symbol"], true, [{ directive: typeof i1.BaseButtonDirective; inputs: {}; outputs: {}; }]>;
}

export { ButtonComponent, defaultButtonConfig };
export type { ButtonConfig };
