import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; import { DynamicSelectFieldConfig } from '../../dynamic-select/dynamic-select-field.component'; import * as i0 from "@angular/core"; export interface StepGroupVariable { id: number; name: string; variables?: Array<{ name: string; parameterValue?: string; }>; } export interface StepGroupFormData { stepGroupId: number; stepGroup?: any; runtimeVariables?: { [groupId: string]: { [paramName: string]: string; }; }; } export interface StepGroupOption { id: number; name: string; description?: string; } export declare class StepBuilderGroupComponent implements OnInit, OnChanges { private fb; /** Options for step group dropdown */ stepGroupOptions: StepGroupOption[]; /** Indicates if more step groups are available for loading */ hasMoreStepGroups: boolean; /** Loading state for step groups */ isLoadingStepGroups: boolean; /** Initial step group ID for edit mode */ initialStepGroupId?: number; /** Whether in edit mode */ editMode: boolean; /** Runtime variables for the selected step group */ runtimeVariables?: StepGroupVariable[]; /** Loading state for runtime variables */ isLoadingRuntimeVariables: boolean; /** Existing runtime variable values (from testStep.testDataFunctionArgs) */ existingRuntimeValues?: { [groupId: string]: { [paramName: string]: string; }; }; /** True while parent is creating the step (API in progress); show loader on Create/Update Step button */ isCreatingStep: boolean; /** * When true, render an amber warning banner at the top of the card explaining that any * runtime values typed here will be overridden by the consuming test case. Set this when * the step-group step is being created/edited inside a host test case that is itself a * step group. */ showNestedStepGroupWarning: boolean; /** Optional override for the warning copy. Falls back to a sensible default. */ nestedStepGroupWarning: string; /** Emit when step is created */ createStep: EventEmitter; /** Emit when step group is selected to fetch runtime variables */ stepGroupSelected: EventEmitter; /** Emit when cancelled */ cancelled: EventEmitter; /** Emit when more step groups need to be loaded */ loadMoreStepGroups: EventEmitter; /** Emit when step group search query changes */ searchStepGroups: EventEmitter; stepGroupForm: FormGroup; stepGroupConfig: DynamicSelectFieldConfig; selectedStepGroup: StepGroupOption | null; runtimeVariableValues: { [groupId: string]: { [paramName: string]: string; }; }; /** Tracks initial state for edit mode to detect changes */ private initialStepGroupIdSnapshot; private initialRuntimeValuesSnapshot; private snapshotReady; constructor(fb: FormBuilder); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; private setInitialStepGroupValue; private updateStepGroupConfig; onStepGroupChange(stepGroupId: number): void; getStepGroupDescription(): string; private initializeRuntimeVariableValues; onRuntimeVariableChange(groupId: number, paramName: string, value: string): void; getRuntimeVariableValue(groupId: number, paramName: string): string; hasRuntimeVariables(): boolean; onCreateStep(): void; onCancel(): void; /** Returns true if the form has changed from its initial state (edit mode only) */ hasChanges(): boolean; /** Captures the current state as the baseline for change detection */ private captureInitialSnapshot; isFormValid(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }