import * as i0 from '@angular/core';
import { TranslatableString } from '@siemens/element-translate-ng/translate';

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */

/** */
interface ResultDetailStep {
    /**
     * A description of the step.
     */
    description: TranslatableString;
    /**
     * A state object defining the state of the step.
     */
    state: ResultDetailStepState;
    /**
     * Optional value to be displayed for the step.
     */
    value?: string;
    /**
     * Optional error message to display.
     */
    errorMessage?: string;
    /**
     * Optional custom icon to display. Otherwise a default icon will be shown based on the state property.
     */
    icon?: string;
    /**
     * Optional detail text which appears below description.
     */
    detail?: TranslatableString;
    /**
     * Optional translation params to be used with translate pipe.
     */
    translationParams?: Record<string, unknown>;
}
/**
 * This type defines the state that a detailed result step can have.
 */
type ResultDetailStepState = 'passed' | 'failed' | 'running' | 'not-supported' | 'not-started';

declare class SiResultDetailsListComponent {
    /**
     * Array of steps to show in the list.
     *
     * @defaultValue []
     */
    readonly steps: i0.InputSignal<ResultDetailStep[]>;
    protected readonly stepHasValue: i0.Signal<boolean>;
    protected readonly icons: Record<"elementCircleFilled" | "elementNotChecked" | "elementOutOfService" | "elementStateExclamationMark" | "elementStateTick", string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SiResultDetailsListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiResultDetailsListComponent, "si-result-details-list", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class SiResultDetailsListModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SiResultDetailsListModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SiResultDetailsListModule, never, [typeof SiResultDetailsListComponent], [typeof SiResultDetailsListComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SiResultDetailsListModule>;
}

export { SiResultDetailsListComponent, SiResultDetailsListModule };
export type { ResultDetailStep, ResultDetailStepState };
