import { ElementRef, EventEmitter, OnInit, QueryList } from '@angular/core';
import { Workspace } from './models/workspace';
import * as i0 from "@angular/core";
/**
 * @description Componente de seleção de workspace exibe um dropdown com a lista de espaços de trabalho
 * disponíveis, permitindo ao usuário alternar entre eles. Suporta navegação por teclado
 * (setas, Enter, Escape), estado desabilitado e um botão de ação customizável no rodapé.
 *
 * @example
 * ```html
 * <s-workspace-switch
 *   [workspaces]="workspaces"
 *   footerButtonLabel="Criar workspace"
 *   (selected)="onWorkspaceSelect($event)"
 *   (footerButtonClicked)="onCreate()"
 * />
 * ```
 *
 * @category Navegação
 */
export declare class WorkspaceSwitchComponent implements OnInit {
    private readonly eRef;
    private readonly changeDetectorRef;
    /**
     * @description Lista de workspaces disponíveis para seleção. Campo obrigatório.
     * Cada item deve implementar a interface `Workspace`.
     * Lança um erro em runtime se a lista estiver vazia.
     */
    workspaces: Workspace[];
    /**
     * @description Rótulo exibido no botão de ação localizado no rodapé do dropdown.
     *
     * @default 'Adicionar'
     */
    footerButtonLabel: string;
    /**
     * @description Controla a visibilidade do botão de ação no rodapé do dropdown.
     * Quando `false`, o botão não é renderizado.
     *
     * @default true
     */
    showFooterButton: boolean;
    /**
     * @description Quando `true`, o componente fica desabilitado: não abre o dropdown,
     * não emite eventos e fica inacessível via teclado (`tabindex = -1`).
     *
     * @default false
     */
    disabled: boolean;
    /**
     * @description Emitido quando o usuário clica no botão de ação do rodapé do dropdown.
     */
    footerButtonClicked: EventEmitter<any>;
    /**
     * @description Emitido quando o usuário seleciona um workspace da lista.
     * Retorna o objeto `Workspace` selecionado.
     */
    selected: EventEmitter<Workspace>;
    listItems: QueryList<ElementRef> | null;
    get open(): boolean;
    set open(open: boolean);
    height: number;
    selectedItemIndex: number;
    currentItemIndex: number;
    private _open;
    tabindex: number;
    onClickout(event: MouseEvent): void;
    onKeydown(event: KeyboardEvent): void;
    ngOnInit(): void;
    validations(): void;
    buttonOnBlur(): void;
    onSelectItem(workspace: Workspace): void;
    onFooterButtonClick(): void;
    private _calculateListMaxHeight;
    private _scrollToCurrentItem;
    static ɵfac: i0.ɵɵFactoryDeclaration<WorkspaceSwitchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<WorkspaceSwitchComponent, "s-workspace-switch", never, { "workspaces": { "alias": "workspaces"; "required": true; }; "footerButtonLabel": { "alias": "footerButtonLabel"; "required": false; }; "showFooterButton": { "alias": "showFooterButton"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "footerButtonClicked": "footerButtonClicked"; "selected": "selected"; }, never, never, true, never>;
}
