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 ConditionDebugStepComponent 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; selectedBranchForDebug: ConditionBranch | null; 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; addElseIfBranch: EventEmitter; addElseBranch: EventEmitter; /** Called when user clicks "Add ELSE IF" on a branch row. Passes the condition step and the branchIndex after which to insert. */ onAddElseIfBranchAtHandler?: (conditionStep: any, branchIndex: number) => void; /** Called when user clicks "Add ELSE" on any branch row. Passes the condition step (this.step). */ onAddElseBranchHandler?: (conditionStep: any) => void; /** Called when user clicks the edit icon on an IF or ELSE IF branch. */ onEditBranchConditionHandler?: (conditionStep: any, branch: any, branchStep: any) => void; 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; expandedBranches: Set; constructor(cdr: ChangeDetectorRef); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; toggle(): void; isNestedStepLoading(step: ExecutionStepConfig): boolean; markStepLoaded(step: ExecutionStepConfig): void; toggleBranch(index: number, event?: Event): void; isBranchExpanded(index: number): boolean; 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; onAddStepInsideBranch(event: Event): void; toggleHeader(event?: Event): void; get hasExpandableContent(): boolean; /** True when any branch has type 'else' — used to hide the "Add ELSE" button. */ get hasElseBranch(): boolean; onAddElseIfClick(event: Event, branchIndex: number): void; onAddElseClick(event: Event): void; /** * Get the child steps for a specific branch using conditionData. */ getBranchChildren(branch: ConditionBranch): any[]; getBranchConditionText(branch: ConditionBranch): string; /** * Returns true if the branch's debug point is currently set. */ isBranchDebugPointSet(branch: ConditionBranch): boolean; /** * Returns true if the branch breakpoint button should be disabled. */ isBranchBreakpointDisabled(branch: ConditionBranch): boolean; getBranchBreakpointTooltip(branch: ConditionBranch): string; /** * Returns the status of a branch step from conditionData. */ getBranchBadges(branch: ConditionBranch): ('skipped' | 'edited' | 'added' | 'removed')[]; getBranchBgColor(branch: ConditionBranch): string | null; getBranchStatus(branch: ConditionBranch): string; /** * Toggle the debug point for a branch step. */ onBranchDebugPointClick(event: Event, branch: ConditionBranch): void; /** * Trigger edit for a branch step (the IF/ELSE_IF/ELSE step itself). */ onEditBranchStep(event: Event, branch: ConditionBranch): void; /** * Returns menu options for a branch's three-dot menu. * ELSE branches never get 'duplicate' since only one ELSE is allowed. */ getBranchMoreMenuOptions(branch: ConditionBranch): StepMoreMenuOption[]; /** * Handle three-dot menu option selection for a branch step. */ onBranchMoreOptionSelect(option: StepMoreMenuOption, event: Event, branch: ConditionBranch): void; /** * Emit an "add step inside branch" action for a specific branch. * Used in the new per-branch layout. */ onAddStepInsideSpecificBranch(event: Event, branch: ConditionBranch): void; 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 * Mirrors the logic from ConditionStepComponent so numbering is consistent * between live and debug views. */ getBranchStepNumber(branchIndex: number): string; /** * Get the base step number for nested steps within the executed branch. * This ensures child steps in debug mode follow the same numbering scheme * as in the non-debug condition step component. */ getExecutedBranchBaseStepNumber(): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }