import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core'; import { MatRadioChange } from '@angular/material/radio'; import { ButtonVariant } from '../button/button.component'; import * as i0 from "@angular/core"; export declare type SubStepsOptionVariant = 'default' | 'danger'; export interface SubStepsConfirmationOption { /** Unique identifier for the option (emitted via `selectionChange` / `confirm`). */ value: string; /** Bold title shown on the card. */ title: string; /** Paragraph shown under the title. */ description: string; /** `danger` renders the title in red to indicate a destructive choice. */ variant?: SubStepsOptionVariant; /** Label for the primary CTA when this option is selected. */ buttonLabel: string; /** Variant for the primary CTA when this option is selected. Defaults to `filled`. */ buttonVariant?: ButtonVariant; } /** Single row rendered in the optional preview list above the radio group. */ export interface SubStepsConfirmationPreviewItem { /** Bold primary text (e.g. action name). */ primary: string; /** Optional secondary text appended after an em-dash (e.g. element label). */ secondary?: string; } /** * Full configuration payload for the sub-steps confirmation dialog. Pass a new * object reference whenever the content should change — the component uses * `OnPush` change detection and only reacts to reference changes. */ export interface SubStepsConfirmationDialogConfig { title?: string; description?: string; /** Optional subtitle shown under the title (e.g. action type / parent context). */ subtitle?: string; options: SubStepsConfirmationOption[]; selectedValue?: string; cancelLabel?: string; disableBackdropClose?: boolean; /** Hide the top-right close (X) button. */ hideCloseButton?: boolean; /** Hide the Cancel button in the footer. CTA expands to full width when true. */ hideCancel?: boolean; /** Amber warnings list rendered above the radio group. */ warnings?: string[]; /** Optional numbered preview list rendered between description and radio group. */ previewItems?: SubStepsConfirmationPreviewItem[]; /** If >0, render a "+ N more" row after the preview list. */ previewOverflowCount?: number; /** * If >0, show an `M:SS` countdown in the header. `timeoutExpired` fires once * when the countdown reaches 0. Countdown restarts whenever `isOpen` flips * to true or a new config reference is passed with a different `timeoutSeconds`. */ timeoutSeconds?: number; } /** * Confirmation dialog shown before editing an AI-Agent step whose execution has * already generated sub-steps (CON-926). Also used by CON-1166 to review * AI-generated steps before persisting. * * The caller supplies the whole payload via the `config` input (one object, one * reference change = one re-render). `isOpen` stays separate so open/close * transitions don't force callers to rebuild the payload. */ export declare class SubStepsConfirmationDialogComponent implements OnChanges, OnDestroy { private readonly cdr; isOpen: boolean; config: SubStepsConfirmationDialogConfig; selectionChange: EventEmitter; confirm: EventEmitter; closeModal: EventEmitter; timeoutExpired: EventEmitter; /** Local selection state. Seeded from `config.selectedValue` and user-driven thereafter. */ selectedValue?: string; remainingSeconds: number; private _tickIntervalId; private _timeoutEmitted; constructor(cdr: ChangeDetectorRef); ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; get title(): string; get description(): string; get subtitle(): string | undefined; get options(): SubStepsConfirmationOption[]; get cancelLabel(): string; get disableBackdropClose(): boolean; get hideCloseButton(): boolean; get hideCancel(): boolean; get warnings(): string[]; get previewItems(): SubStepsConfirmationPreviewItem[]; get previewOverflowCount(): number; get currentOption(): SubStepsConfirmationOption | undefined; get showCountdown(): boolean; get countdownLabel(): string; isSelected(option: SubStepsConfirmationOption): boolean; onSelect(option: SubStepsConfirmationOption): void; onRadioChange(event: MatRadioChange): void; onBackdropClick(event: MouseEvent): void; onClose(): void; onConfirm(): void; private _startCountdown; private _stopCountdown; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }