import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
import { GridMenuItem } from './types/grid-menu-item';
import * as i0 from "@angular/core";
/**
 * @description Componente de menu em grade que exibe uma coleção de itens como cards clicáveis.
 * Suporta seleção de item ativo e pode utilizar ícones do Font Awesome ou ícones padrão.
 *
 * @example
 * ```html
 * <s-grid-menu
 *   [items]="menuItems"
 *   [selectable]="true"
 *   [(selected)]="selectedItem"
 * />
 * ```
 *
 * @category Navegação
 */
export declare class GridMenuComponent implements OnChanges {
    private previousGridMenuItemClicked;
    /**
     * @description Lista de itens exibidos no grid. Aceita um único item ou um array de `GridMenuItem`.
     * Valores nulos ou indefinidos resultam em uma lista vazia.
     */
    set items(items: GridMenuItem[] | GridMenuItem);
    /**
     * @description Quando `true`, utiliza classes de ícones do Font Awesome nos itens do grid.
     * Quando `false`, utiliza o sistema de ícones padrão do projeto.
     *
     * @default false
     */
    useFontAwesomeIcons: boolean;
    itemsArray: GridMenuItem[];
    /**
     * @description Habilita o modo de seleção do grid. Quando `true`, permite que o usuário
     * clique em um item para selecioná-lo, marcando-o como ativo.
     *
     * @default false
     */
    selectable: boolean;
    /**
     * @description Item atualmente selecionado no grid. Usado em conjunto com `selectable = true`
     * e suporta two-way binding via `[(selected)]`.
     */
    selected: GridMenuItem;
    /**
     * @description Emitido quando o usuário seleciona um novo item no grid.
     * Retorna o `GridMenuItem` selecionado. Usado para two-way binding com `[(selected)]`.
     */
    selectedChange: EventEmitter<GridMenuItem>;
    ngOnChanges(changes: SimpleChanges): void;
    onClickGridMenuItem(gridMenuItem: GridMenuItem): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<GridMenuComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<GridMenuComponent, "s-grid-menu", never, { "items": { "alias": "items"; "required": false; }; "useFontAwesomeIcons": { "alias": "useFontAwesomeIcons"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; }, { "selectedChange": "selectedChange"; }, never, never, false, never>;
}
