import { EventEmitter, OnInit, OnChanges, OnDestroy, SimpleChanges, DoCheck } from '@angular/core'; import { ApiStepConfig, ApiAssertion, SubStep, StepStatus, TimingBreakdown, FailureDetails, 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 ApiStepComponent extends BaseStepComponent implements OnInit, OnChanges, OnDestroy, DoCheck { id: string; testStepResultId: string; stepNumber: string; title: string; status: StepStatus; duration: number; timingBreakdown?: TimingBreakdown; expanded?: boolean; method: string; endpoint: string; statusCode: number; responseTime: number; requestBody?: any; responseBody?: any; requestHeaders?: any; responseHeaders?: any; assertions?: ApiAssertion[]; initialActions?: SubStep[]; isDebug?: boolean; canEditSteps?: boolean; debugPointSet?: boolean; parentSkipped?: boolean; debugPointChange: EventEmitter; editStep: EventEmitter; addStepOptionSelect: EventEmitter; stepMoreOptionSelect: EventEmitter; addStepMenuOptions: AddStepMenuOption[]; stepMoreMenuOptions: StepMoreMenuOption[]; failureDetails?: FailureDetails; reasoning?: string[]; confidence?: string; stepDeleted?: boolean; isUploadingBaseline: {}; isMakingCurrentBaseline: {}; isLive: boolean; selfHealAnalysis?: SelfHealAnalysisData; getSelfHealLoadingStatesHandler?: () => { isLoadingAccept: { [key: string]: boolean; }; isLoadingModifyAccept: { [key: string]: boolean; }; }; onStepClickHandler?: (step: ExecutionStepConfig, event?: Event) => void; onJsonPathCopiedHandler?: (event: { path: string; source: 'requestBody' | 'responseBody' | 'requestHeaders' | 'responseHeaders'; }) => void; jumpToTimestampHandler?: (timestamp: number, testStepId?: number | string) => void; step?: any; get stepBadges(): ('skipped' | 'edited' | 'added' | 'removed')[]; get isSkipped(): boolean; get isStepDeleted(): boolean; makeCurrentBaseline: EventEmitter; uploadBaseline: EventEmitter; analyze: EventEmitter; viewFullLogs: EventEmitter; selfHealAction: EventEmitter; jsonPathCopied: EventEmitter<{ path: string; source: 'requestBody' | 'responseBody' | 'requestHeaders' | 'responseHeaders'; }>; showFailedStepDetails: boolean; /** Show debug icon only when this step has no child steps (leaf step: always show when isDebug). */ get showDebugIcon(): boolean; /** Per-step filtered three-dot menu options (e.g. hide Duplicate/Delete for step-group children). */ get effectiveStepMoreMenuOptions(): StepMoreMenuOption[]; config: ApiStepConfig; private previousStatus?; private userManuallyClosed; showRequestSummaryCopied: boolean; processedInitialActions: any[]; private lastProcessedIndex; private waitLocatorGroupEntry; private countdownIntervalId; private aiAutoHealGroupEntry; processedInitialActionsForRunResult: any[]; private requestSummaryCopiedTimeout?; showRequestHeadersCopied: boolean; private requestHeadersCopiedTimeout?; showResponseHeadersCopied: boolean; private responseHeadersCopiedTimeout?; showRequestBodyCopied: boolean; private requestBodyCopiedTimeout?; showResponseBodyCopied: boolean; private responseBodyCopiedTimeout?; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; getStatusBadgeClass(): string; formatJson(obj: any): string; getPassedAssertions(): number; getFailedAssertions(): number; copyToClipboard(text: string): void; copyRequestBody(): void; copyResponseBody(): void; copyRequestHeaders(): void; copyResponseHeaders(): void; /** * Walks jsonData and builds a map from each line number (in the output of * JSON.stringify(jsonData, null, 2)) to the segment path that line represents. * Segments are strings for object keys and numbers for array indices. */ private buildLinePathMap; /** * Extracts JSON path from the clicked position in a formatted JSON string. * Returns an array of segments (string keys or numeric array indices), or null. */ private getJsonPathFromClick; private formatSegmentsPath; private normalizeJsonPath; /** * Copy JSON path on double-click */ copyJsonPath(event: MouseEvent, jsonData: any, prefix?: string): void; copyRequestSummary(): void; 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; toggle(): void; private autoExpand; get hasSubSteps(): boolean; private updateConfig; ngDoCheck(): void; ngOnDestroy(): void; private processLiveInitialActions; private resetLiveProcessing; private clearCountdownTimer; private addDurationToWaitLocatorGroupEntry; onJumpToTimestamp(event: Event): void; private processInitialActionsForRunResult; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }