import { EventEmitter, OnChanges, SimpleChanges, ElementRef, AfterViewInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import * as i0 from "@angular/core";
export interface StepItem {
    id?: string;
    label: string;
    icon?: string;
    styleClass?: string;
    disabled?: boolean;
    metadata?: Record<string, unknown>;
}
export declare class StepsComponent implements OnChanges, AfterViewInit, OnDestroy {
    private cdr;
    /** Lista de steps a serem exibidos */
    steps: StepItem[];
    /** Índice do step ativo */
    activeIndex: number;
    /** Se permite clicar nos steps para navegar */
    readonly: boolean;
    /** Quantidade máxima de steps visíveis. 'auto' calcula com base no container */
    maxVisible: number | 'auto';
    /** Largura mínima de cada step em pixels (usado no cálculo automático) */
    stepMinWidth: number;
    /** Se mostra animação de transição ao navegar */
    animated: boolean;
    /** Modo de navegação das setas: 'step' altera o activeIndex, 'scroll' apenas desloca a janela visível */
    navigationMode: 'step' | 'scroll';
    /** Esquema de cores aplicado aos steps. Altera as cores do ativo e completados */
    colorScheme: 'default' | 'success' | 'danger' | 'warning' | 'info';
    /** Classe CSS customizada para o wrapper */
    styleClass: string;
    /** Emite quando o activeIndex muda por clique */
    activeIndexChange: EventEmitter<number>;
    /** Emite o StepItem clicado */
    stepClick: EventEmitter<StepItem>;
    stepsContainer: ElementRef<HTMLElement>;
    visibleSteps: StepItem[];
    visibleStartIndex: number;
    visibleEndIndex: number;
    hasOverflowLeft: boolean;
    hasOverflowRight: boolean;
    calculatedMaxVisible: number;
    private resizeObserver;
    constructor(cdr: ChangeDetectorRef);
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onStepClick(step: StepItem, visibleIndex: number): void;
    navigateLeft(): void;
    navigateRight(): void;
    /** Desloca a janela visível para um novo startIndex sem alterar o activeIndex */
    private scrollWindow;
    getStepState(visibleIndex: number): 'completed' | 'active' | 'pending';
    getRealIndex(visibleIndex: number): number;
    get hiddenLeftCount(): number;
    get hiddenRightCount(): number;
    trackByIndex(index: number): number;
    private setupResizeObserver;
    private recalculate;
    private getMaxVisible;
    private calculateVisibleWindow;
    static ɵfac: i0.ɵɵFactoryDeclaration<StepsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<StepsComponent, "sia-steps", never, { "steps": { "alias": "steps"; "required": false; }; "activeIndex": { "alias": "activeIndex"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "maxVisible": { "alias": "maxVisible"; "required": false; }; "stepMinWidth": { "alias": "stepMinWidth"; "required": false; }; "animated": { "alias": "animated"; "required": false; }; "navigationMode": { "alias": "navigationMode"; "required": false; }; "colorScheme": { "alias": "colorScheme"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; }, { "activeIndexChange": "activeIndexChange"; "stepClick": "stepClick"; }, never, never, true, never>;
}
