import { EventEmitter, ChangeDetectorRef, OnInit, OnChanges, SimpleChanges } from '@angular/core'; import { TestCaseDetailsConfigSection, TestCaseDetailsMetadataItem } from './test-case-details.models'; import { TestCaseDetailsEditFormData, SelectConfigOverrides } from './test-case-details-edit/test-case-details-edit.component'; import * as i0 from "@angular/core"; export declare class TestCaseDetailsComponent implements OnInit, OnChanges { private cdr; /** Internal editing state when not controlled by parent */ private _editing; /** When provided by parent, use this instead of internal state (fixes Storybook event flow). */ editing?: boolean; /** When true, start in edit mode (useful for Storybook). */ startInEditMode: boolean; /** Resolved editing state: parent-controlled or internal */ get isEditing(): boolean; constructor(cdr: ChangeDetectorRef); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; /** Description section title */ descriptionTitle: string; /** Description text content */ descriptionContent: string; /** When true, description supports rich text (HTML). Renders as HTML in view mode. */ enableMarkdown: boolean; /** Whether to show the Edit button in the Description header */ showEditButton: boolean; /** Metadata items (createdOn, status, priority, environment, version, testPlanName, etc.) */ metadataItems: TestCaseDetailsMetadataItem[]; /** Labels/tags (e.g. Automation, API, SDK, UI/UX) */ labels: string[]; /** Configuration section title */ configTitle: string; /** Configuration sections (e.g. Execution, AI Configuration) */ configSections: TestCaseDetailsConfigSection[]; /** Optional config sections displayed in a 2-column row (e.g. Waits & Retries, Device) */ configSectionsRow2: TestCaseDetailsConfigSection[]; /** Platform: 'web' or 'mobile'. Defaults to 'web'. Used for Device Settings fields. */ platform: 'web' | 'mobile'; /** When true, filters out Priority and Type from metadata (step groups don't have these). Defaults to false. */ isStepGroup: boolean; /** Override config per select for API-driven options, server search, load more. */ selectConfigOverrides: SelectConfigOverrides; /** True while parent is saving changes. */ isSaving: boolean; /** When true, render the API Mocking card below the configuration section. */ showApiMockingCard: boolean; apiMockingTitle: string; apiMockingStatusLabel: string; apiMockingCaptureLabel: string; apiMockingRenewLabel: string; apiMockingCaptureHint: string; apiMockingRenewHint: string; /** * Single source of truth for the API mocking card's dual toggle state. * true → Renew API responses ON, Capture API responses OFF * false → Renew API responses OFF, Capture API responses ON * The two legacy `*CaptureEnabled` / `*RenewEnabled` inputs are no longer used. */ apiMockingRestoreMock: boolean; /** "Renew and store API responses" — mutually exclusive with `apiMockingRestoreMock` when true. */ apiMockingStoreMock: boolean; apiMockingMockedApisCount: number; apiMockingTotalApisCount: number; apiMockingProgressPercent: number; /** Forwarded to `cqa-api-mocking-card` — gates the "Mocked / progress / percent" block. */ apiMockingShowProgress: boolean; apiMockingSummaryText?: string; apiMockingPercentText?: string; apiMockingConfigureButtonLabel: string; /** Org-level default for Test Case Timeout (minutes). Forwarded to edit mode to toggle the "ORG level"/"Custom" badge. */ orgLevelTestCaseTimeout?: string | number | null; /** Viewport dropdown options per category from the API. Forwarded to edit mode. */ viewportCategoryOptions: { DESKTOP?: any[]; LAPTOP?: any[]; TABLET?: any[]; MOBILE?: any[]; }; /** Labels to filter out from metadata for step groups */ private readonly stepGroupExcludedMetadataLabels; /** When true, description (view mode) is expanded; when false, clamped to 4 lines with Read more */ descriptionExpanded: boolean; /** Roughly 4 lines of text; show Read more when description exceeds this */ private readonly descriptionReadMoreThreshold; get showDescriptionReadMore(): boolean; toggleDescriptionExpand(): void; /** Filtered metadata items - excludes Priority and Type for step groups */ get filteredMetadataItems(): TestCaseDetailsMetadataItem[]; editDescription: EventEmitter; cancel: EventEmitter; saveChanges: EventEmitter; metadataLinkClick: EventEmitter; selectSearch: EventEmitter<{ key: string; query: string; }>; selectLoadMore: EventEmitter<{ key: string; query: string; }>; selectOpened: EventEmitter<{ key: string; }>; selectionChange: EventEmitter<{ key: string; value: unknown; }>; labelAdded: EventEmitter; configureApiMocking: EventEmitter; /** Fired when the user flips the Use-mock toggle — emits the new `restoreMock` value. */ apiMockingRestoreMockChange: EventEmitter; /** Fired when the user flips the Renew-and-store toggle — emits the new `storeMock` value. */ apiMockingStoreMockChange: EventEmitter; onEditClick(): void; onSaveChanges(data: TestCaseDetailsEditFormData): void; onCancelEdit(): void; trackByConfigTitle(_i: number, section: TestCaseDetailsConfigSection): string; trackByMetadataLabel(_i: number, item: TestCaseDetailsMetadataItem): string; onMetadataLinkClick(item: TestCaseDetailsMetadataItem): void; getStatusDotClass(item: TestCaseDetailsMetadataItem): string; /** Text color for metadata value (e.g. red for critical priority) */ getValueTextClass(item: TestCaseDetailsMetadataItem): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }