import { AfterViewInit, EventEmitter, OnDestroy } from '@angular/core';
import { FolderTab, FolderTabsMetadata } from './types';
import * as i0 from "@angular/core";
/**
* val-folder-tabs
*
* Pestañas donde la activa se funde con el cuerpo, como la lengüeta de una
* carpeta. La lengüeta es UN solo elemento que se desplaza entre posiciones, no
* el fondo de cada botón: el cambio se lee como un movimiento y no como un
* encendido.
*
* Cuándo usar este y no los otros dos componentes de pestañas de la librería:
* - `val-segment-control` — conmutar un filtro, sin contenedor propio.
* - `val-tabbed-content` — navegación tipo segmento sobre paneles.
* - `val-folder-tabs` — cuando las pestañas CONTIENEN a su contenido y el
* conjunto se lee como una sola pieza (una card con secciones).
*
* @example
* ```html
* …
* …
*
*
* ```
*
* Identidad visual: no trae paleta propia, lee cuatro custom properties. El
* consumer las redefine sobre el host y el componente cambia de identidad sin
* tocar su CSS:
* --val-folder-tabs-rail color de la barra
* --val-folder-tabs-surface color del cuerpo y de la lengüeta
* --val-folder-tabs-radius radio del contenedor
* --val-folder-tabs-notch tamaño de la curva que une lengüeta y cuerpo
*/
export declare class FolderTabsComponent implements AfterViewInit, OnDestroy {
private readonly propsSig;
/**
* Configuración. Es un signal con setter (no un campo plano) porque de él
* dependen computeds y el reposicionamiento de la lengüeta: con un campo
* plano, una reasignación no dispararía ninguno de los dos.
*/
set props(value: FolderTabsMetadata);
get props(): FolderTabsMetadata;
/** Emite el `value` de la pestaña elegida. */
tabChange: EventEmitter;
private railRef?;
private readonly internalValue;
protected readonly animationReady: import("@angular/core").WritableSignal;
private resizeObserver?;
private readonly instanceId;
/**
* Pestaña activa. `selectedTab` gana cuando el consumer la pasa (modo
* controlado); si no, manda la selección interna; y si ninguna resuelve, la
* primera habilitada.
*/
protected readonly activeValue: import("@angular/core").Signal;
protected readonly activeTab: import("@angular/core").Signal;
protected readonly activeIndex: import("@angular/core").Signal;
constructor();
ngAfterViewInit(): void;
ngOnDestroy(): void;
protected select(tab: FolderTab): void;
protected onKeydown(event: KeyboardEvent, index: number): void;
protected panelId(tab: FolderTab): string;
/**
* Mide la pestaña activa y mueve la lengüeta hasta ella. Se mide en cada
* llamada en vez de cachear: el ancho depende del texto renderizado, no de la
* configuración.
*/
private placeFlap;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}