import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
import { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';
import { TooltipPositions } from '@seniorsistemas/angular-components/tooltip';
import { ButtonAnimations } from './models/button-animations';
import { ButtonBadgeConfig } from './models/button-badge-config';
import { ButtonPriority } from './models/button-priority';
import * as i0 from "@angular/core";
/**
 * @description Componente de botão versátil que suporta ícones, tooltip, menu de opções
 * (tiered menu), badge, animações e diferentes prioridades visuais. Pode ser configurado
 * como botão de ação simples, botão com menu dropdown ou botão deslizante (slide).
 *
 * @example
 * ```html
 * <s-button
 *   label="Salvar"
 *   iconClass="fas fa-save"
 *   priority="primary"
 *   (clicked)="onSave()" />
 * ```
 *
 * @category Inputs
 */
export declare class ButtonComponent implements OnChanges {
    minWidth: string;
    /**
     * @description Identificador único do elemento botão no DOM.
     * Gerado automaticamente se não informado.
     */
    id?: string | undefined;
    /**
     * @description Texto exibido dentro do botão.
     */
    label?: string;
    /**
     * @description Texto do tooltip exibido ao passar o mouse sobre o botão.
     */
    tooltip?: string;
    /**
     * @description Posição do tooltip em relação ao botão.
     *
     * @default 'top'
     */
    tooltipPosition: TooltipPositions;
    /**
     * @description Classe de ícone exibida à esquerda do label (ex.: `'fas fa-save'`).
     */
    iconClass?: string;
    /**
     * @description Classe de ícone exibida à direita do label.
     */
    rightIconClass?: string;
    /**
     * @description Exibe o ícone de caret (seta) quando o botão possui um menu de opções.
     *
     * @default true
     */
    caret: boolean;
    /**
     * @description Classe CSS adicional aplicada ao elemento `<button>` interno.
     *
     * @default ''
     */
    styleClass: string;
    /**
     * @description Z-index base do painel do menu dropdown associado ao botão.
     *
     * @default 0
     */
    baseZIndex: number;
    /**
     * @description Desabilita o botão, impedindo cliques e interação do usuário.
     *
     * @default false
     */
    disabled: boolean;
    /**
     * @description Aplica estilo auxiliar (menos destaque visual) ao botão.
     *
     * @default false
     */
    auxiliary: boolean;
    /**
     * @description Tipo do elemento `<button>` HTML (`'button'`, `'submit'`, `'reset'`).
     *
     * @default 'button'
     */
    type?: string | undefined;
    /**
     * @description Prioridade visual do botão, que determina seu estilo.
     * Aceita `'primary'`, `'default'`, `'danger'`, `'link'`, entre outros.
     *
     * @default 'primary'
     */
    priority?: ButtonPriority;
    /**
     * @description Lista de itens do menu dropdown exibido ao clicar no caret do botão.
     *
     * @default []
     */
    menuOptions: TieredMenuItemData[];
    /**
     * @description Tamanho visual do botão. Aceita `'default'` ou `'small'`.
     *
     * @default 'default'
     */
    size?: 'default' | 'small';
    /**
     * @description Habilita o modo slide, que exibe uma animação de deslize ao passar o mouse.
     * Requer `priority` igual a `'default'` ou `'link'` e um `label` definido.
     *
     * @default false
     */
    slide: boolean;
    /**
     * @description Tipo de animação aplicada ao botão (`'rotate'`, `'pulse'`, etc.).
     */
    animation?: ButtonAnimations;
    /**
     * @description Configuração do badge exibido sobre o botão, com contador ou indicador visual.
     */
    badge?: ButtonBadgeConfig;
    /**
     * @description Cor aplicada ao ícone do botão, sobrescrevendo a cor padrão do tema.
     */
    iconColor?: string;
    /**
     * @description Texto alternativo para o menu associado ao botão, utilizado para acessibilidade.
     */
    menuAriaLabel?: string;
    /**
     * @description Texto alternativo para quando o botão não tiver um texto explicito, utilizado para acessibilidade.
     */
    ariaLabel?: string;
    /**
     * @description Emitido ao clicar no botão, desde que não esteja desabilitado.
     */
    clicked: EventEmitter<any>;
    isMenuOpen: boolean;
    validateSlideButton(): boolean;
    ngOnChanges(_: SimpleChanges): void;
    isRotateAnimation(): boolean;
    onTieredMenuOpened(): void;
    onTieredMenuClosed(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "s-button", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "rightIconClass": { "alias": "rightIconClass"; "required": false; }; "caret": { "alias": "caret"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "auxiliary": { "alias": "auxiliary"; "required": false; }; "type": { "alias": "type"; "required": false; }; "priority": { "alias": "priority"; "required": false; }; "menuOptions": { "alias": "menuOptions"; "required": false; }; "size": { "alias": "size"; "required": false; }; "slide": { "alias": "slide"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; "badge": { "alias": "badge"; "required": false; }; "iconColor": { "alias": "iconColor"; "required": false; }; "menuAriaLabel": { "alias": "menuAriaLabel"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
}
