import { EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core'; import { ConditionStepConfig, ConditionBranch, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, ExecutionStepConfig, SelfHealActionEvent, AddStepMenuOption, StepMoreMenuOption } from '../execution-step.models'; import { BaseStepComponent } from '../base-step.component'; import { makeCurrentBaselineEvent, uploadBaselineEvent } from '../visual-comparison/visual-comparison.component'; import * as i0 from "@angular/core"; export declare class ConditionStepComponent extends BaseStepComponent implements OnInit, OnChanges { private cdr; id: string; testStepResultId: string; stepNumber: string; title: string; status: StepStatus; duration: number; timingBreakdown?: TimingBreakdown; expanded?: boolean; conditionText: string; branches: ConditionBranch[]; failureDetails?: FailureDetails; reasoning?: string[]; confidence?: string; selfHealAnalysis?: SelfHealAnalysisData; isLoading?: boolean; nestedSteps?: ExecutionStepConfig[]; hasChild?: boolean; stepDeleted?: boolean; isDebug?: boolean; canEditSteps?: boolean; debugPointSet?: boolean; parentSkipped?: boolean; getDebugPointSetHandler?: (step: ExecutionStepConfig) => boolean; onDebugPointChangeHandler?: (step: ExecutionStepConfig, value: boolean) => void; debugPointChange: EventEmitter; editStep: EventEmitter; addStepOptionSelect: EventEmitter; stepMoreOptionSelect: EventEmitter; addStepInsideLoop: EventEmitter; addStepMenuOptions: AddStepMenuOption[]; stepMoreMenuOptions: StepMoreMenuOption[]; ifChild?: any; activeBranchStepId?: string | number; onExpandHandler?: (step: ExecutionStepConfig) => void; /** When provided, passed to nested step-renderer so Edit on nested steps is forwarded with the step config. */ onEditStepHandler?: (step: ExecutionStepConfig) => void; onAddStepOptionSelectHandler?: (option: AddStepMenuOption, step?: ExecutionStepConfig) => void; onStepMoreOptionSelectHandler?: (option: StepMoreMenuOption, step?: ExecutionStepConfig) => void; /** When provided, used to get add-step menu options per nested step; otherwise addStepMenuOptions is used for all. Supports arbitrary nesting. */ getAddStepMenuOptionsForNested?: (step: ExecutionStepConfig) => AddStepMenuOption[]; /** When provided, used to get step-more menu options per nested step; otherwise stepMoreMenuOptions is used for all. Supports arbitrary nesting. */ getStepMoreMenuOptionsForNested?: (step: ExecutionStepConfig) => StepMoreMenuOption[]; getConditionBranchesHandler?: (step: ExecutionStepConfig) => ConditionBranch[]; isStepLoadingHandler?: (step: ExecutionStepConfig) => boolean; isStepExpandedHandler?: (step: ExecutionStepConfig) => boolean; convertMsToSecondsHandler?: (duration: number) => number; formatFailureDetailsHandler?: (step: ExecutionStepConfig) => any; getSelfHealAnalysisHandler?: (step: ExecutionStepConfig) => any; onMakeCurrentBaselineHandler?: (event: any) => void; onUploadBaselineHandler?: (event: any) => void; onAnalyzeHandler?: () => void; onViewFullLogsHandler?: () => void; onSelfHealActionHandler?: (event: any) => void; getSelfHealLoadingStatesHandler?: () => { isLoadingAccept: { [key: string]: boolean; }; isLoadingModifyAccept: { [key: string]: boolean; }; }; getLoopIterationsHandler?: (step: ExecutionStepConfig) => any[]; getApiAssertionsHandler?: (step: ExecutionStepConfig) => any[]; formatActionsHandler?: (step: ExecutionStepConfig) => any[]; onViewAllIterationsHandler?: (step: ExecutionStepConfig) => void; onConditionBranchClickHandler?: (step: any, branch: any) => void; onStepClickHandler?: (step: ExecutionStepConfig, event?: Event) => void; onJsonPathCopiedHandler?: (event: { path: string; source: 'requestBody' | 'responseBody' | 'requestHeaders' | 'responseHeaders'; }) => void; onDownloadHandler?: (event: { fileName: string; filePath?: string; fileType: string; testStepResultId: string; }) => void; onFilePathCopiedHandler?: (event: { filePath: string; testStepResultId: string; }) => void; onTextCopiedHandler?: (event: { text: string; testStepResultId: string; }) => void; jumpToTimestampHandler?: (timestamp: number, testStepId?: number | string) => void; downloadingStepId: string | null; step?: any; get stepBadges(): ('skipped' | 'edited' | 'added' | 'removed')[]; get isSkipped(): boolean; get isStepDeleted(): boolean; onBranchClickEvent: EventEmitter; onExpand: EventEmitter; isUploadingBaseline: {}; isMakingCurrentBaseline: {}; isLive: boolean; makeCurrentBaseline: EventEmitter; uploadBaseline: EventEmitter; analyze: EventEmitter; viewFullLogs: EventEmitter; selfHealAction: EventEmitter; showFailedStepDetails: boolean; /** Show debug icon only when this step has no child steps (icon is shown on child steps instead). */ /** Show debug icon when debug mode is on (shown on parent and all child steps). */ get showDebugIcon(): boolean; /** Per-step filtered three-dot menu options (e.g. hide Duplicate/Delete for step-group children). */ get effectiveStepMoreMenuOptions(): StepMoreMenuOption[]; /** True when this condition-step's own breakpoint is disabled (used to propagate parentSkipped to children). */ get selfDebugDisabled(): boolean; config: ConditionStepConfig; loadingSteps: Set; constructor(cdr: ChangeDetectorRef); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; toggle(): void; isNestedStepLoading(step: ExecutionStepConfig): boolean; markStepLoaded(step: ExecutionStepConfig): void; getExecutedBranch(): ConditionBranch | null; getUnexecutedBranches(): ConditionBranch[]; getSubStepIndex(subSteps: any[], subStep: any): number; isStepLoading(): boolean; onViewMoreFailedStepClick(expanded: boolean): void; getSubStepsForFailedStep(): SubStep[]; onMakeCurrentBaseline(event: makeCurrentBaselineEvent): void; onUploadBaseline(event: uploadBaselineEvent): void; onAnalyze(): void; onViewFullLogs(): void; onSelfHealAction(event: SelfHealActionEvent): void; get showViewMoreButton(): boolean; onDebugPointClick(event: Event): void; onEditStep(event: Event): void; onAddStepOptionSelect(option: AddStepMenuOption, event: Event): void; onStepMoreOptionSelect(option: StepMoreMenuOption, event: Event): void; toggleHeader(event?: Event): void; get hasExpandableContent(): boolean; private determineActiveBranch; onBranchClick(branch: ConditionBranch): void; getBranchClass(branch: any): string; /** * Check if any branch is executed. */ private hasAnyExecutedBranch; onJumpToTimestamp(event: Event): void; /** * Get the step number for a branch based on its index * Branches consume sequential numbers at their level * * Top-level: condition step "1" → branches "1" (IF), "2" (ELSE IF), "3" (ELSE) * - IF branch children: 1.1, 1.2, etc. * - ELSE IF branch children: 2.1, 2.2, etc. * - ELSE branch children: 3.1, 3.2, etc. * * Nested: condition step "3.2.1" → branches "3.2.1" (IF), "3.2.2" (ELSE IF), "3.2.3" (ELSE) * - IF branch children: 3.2.1.1, 3.2.1.2, etc. * - ELSE IF branch children: 3.2.2.1, 3.2.2.2, etc. * - ELSE branch children: 3.2.3.1, 3.2.3.2, etc. */ getBranchStepNumber(branchIndex: number): string; /** * Get the base step number for nested steps within the executed branch * If ELSE branch (index 2) is executed and its step number is 3, * its children should be numbered 3.1, 3.2, etc. * * For nested condition: if ELSE branch is 2.1.3, children are 2.1.3.1, 2.1.3.2, etc. */ getExecutedBranchBaseStepNumber(): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }