import { EventEmitter, OnInit, OnChanges, SimpleChanges, TemplateRef } from '@angular/core'; import { PrerequisiteItem, StepStatus, AddStepMenuOption, StepMoreMenuOption } from '../execution-step.models'; import { ButtonVariant } from '../../button/button.component'; import * as i0 from "@angular/core"; export declare type IconType = 'folder' | 'loop' | 'bar' | 'custom'; export interface IconConfig { type: IconType; svg?: string; } /** Config for dynamic header buttons shown beside the items count badge */ export interface HeaderButtonConfig { text?: string; icon?: string; variant?: ButtonVariant; disabled?: boolean; tooltip?: string; customClass?: string; btnSize?: 'sm' | 'md' | 'lg'; /** Optional id to identify the button in headerButtonClick event */ id?: string; } export declare class MainStepCollapseComponent implements OnInit, OnChanges { title: string; items: PrerequisiteItem[]; expanded: boolean; icon?: IconConfig; count?: number; countLoading?: boolean; itemContentTemplate?: TemplateRef; headerButtons?: HeaderButtonConfig[]; /** When true, "View steps" redirects to URL instead of expanding inline. URL comes from item.viewStepsUrl or getViewStepsUrl(item). */ viewStepsAsRedirect: boolean; /** Optional function to get redirect URL per item. Used when item.viewStepsUrl is not set. */ getViewStepsUrl?: (item: PrerequisiteItem) => string; /** When redirecting, open link in new tab. Default true */ viewStepsOpenInNewTab: boolean; expandOnViewSteps: boolean; /** Optional initial item id to expand (e.g. first failed prerequisite). When set and present in items, that item is expanded on load. */ initialExpandedItemId: string | number | null; /** When true, shows Edit/Add/More options icons before duration on each item. */ isDebug?: boolean; /** When false, hides the edit/add/more action menu even if isDebug is true (e.g. while a debug run is in progress). */ canEditSteps?: boolean; /** When true, hides the duration display (e.g. for prerequisites in test case details where run time is not applicable). */ hideDuration?: boolean; itemContentTpl?: TemplateRef; viewSteps: EventEmitter; editStep: EventEmitter; addStepOptionSelect: EventEmitter<{ item: PrerequisiteItem; option: AddStepMenuOption; }>; stepMoreOptionSelect: EventEmitter<{ item: PrerequisiteItem; option: StepMoreMenuOption; }>; addStepMenuOptions: AddStepMenuOption[]; stepMoreMenuOptions: StepMoreMenuOption[]; headerButtonClick: EventEmitter<{ config: HeaderButtonConfig; index: number; }>; expandedChange: EventEmitter; isExpanded: boolean; expandedItemId: string | number | null; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; private applyInitialExpandedItemId; toggle(): void; formatDuration(seconds: number): string; getStatusIcon(status: StepStatus): string; onViewSteps(item: PrerequisiteItem, event: Event): void; onEditStep(item: PrerequisiteItem, event: Event): void; onAddStepOptionSelect(item: PrerequisiteItem, option: AddStepMenuOption, event: Event): void; onStepMoreOptionSelect(item: PrerequisiteItem, option: StepMoreMenuOption, event: Event): void; isItemExpanded(itemId: string | number): boolean; getDisplayCount(): number; onHeaderButtonClick(config: HeaderButtonConfig, index: number, event: MouseEvent): void; /** Resolves the redirect URL for an item: item.viewStepsUrl takes precedence, else getViewStepsUrl(item) */ getItemViewStepsUrl(item: PrerequisiteItem): string | undefined; /** Whether redirect mode is active and we have a URL for this item */ hasViewStepsRedirectUrl(item: PrerequisiteItem): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }