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

declare class SiWizardStepComponent {
    /** @defaultValue '' */
    readonly heading: _angular_core.InputSignal<TranslatableString>;
    /** @defaultValue true */
    readonly isValid: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** @defaultValue true */
    readonly isNextNavigable: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** @defaultValue false */
    readonly failed: _angular_core.InputSignalWithTransform<boolean, unknown>;
    readonly next: _angular_core.OutputEmitterRef<void>;
    readonly back: _angular_core.OutputEmitterRef<void>;
    readonly save: _angular_core.OutputEmitterRef<void>;
    /**
     * Whether this step is currently active or not.
     * @defaultValue false
     */
    readonly isActive: _angular_core.WritableSignal<boolean>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiWizardStepComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiWizardStepComponent, "si-wizard-step", never, { "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "isValid": { "alias": "isValid"; "required": false; "isSignal": true; }; "isNextNavigable": { "alias": "isNextNavigable"; "required": false; "isSignal": true; }; "failed": { "alias": "failed"; "required": false; "isSignal": true; }; }, { "next": "next"; "back": "back"; "save": "save"; }, never, ["*"], true, never>;
}

interface StepItem {
    index: number;
    step: SiWizardStepComponent;
}
declare class SiWizardComponent {
    protected readonly containerSteps: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
    /**
     * Description of back button.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_WIZARD.BACK:Back`)
     * ```
     */
    readonly backText: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * Description of next button.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_WIZARD.NEXT:Next`)
     * ```
     */
    readonly nextText: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * Hide the navigation buttons previous/next.
     *
     * @defaultValue false
     */
    readonly hideNavigation: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Description of save button.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_WIZARD.SAVE:Save`)
     * ```
     */
    readonly saveText: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * Hide the save button.
     *
     * @defaultValue false
     */
    readonly hideSave: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Text shown if you complete the wizard.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_WIZARD.COMPLETED:Wizard completed!`)
     * ```
     */
    readonly completionText: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * Description of cancel button.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_WIZARD.CANCEL:Cancel`)
     * ```
     */
    readonly cancelText: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * Show the cancel button
     *
     * @defaultValue false
     */
    readonly hasCancel: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Display a predefined page by the end of the wizard.
     *
     * @defaultValue false
     */
    readonly enableCompletionPage: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Define how many milliseconds the completion page is visible.
     *
     * @defaultValue 3000
     */
    readonly completionPageVisibleTime: _angular_core.InputSignal<number>;
    /**
     * Class name of icon shown for current and upcoming steps.
     *
     * @defaultValue 'elementNotChecked'
     */
    readonly stepIcon: _angular_core.InputSignal<string>;
    /**
     * Class name of icon shown for the active step.
     *
     * @defaultValue 'elementRadioChecked'
     */
    readonly stepActiveIcon: _angular_core.InputSignal<string>;
    /**
     * Class name of icon shown when a step was completed.
     *
     * @defaultValue 'elementCheckedFilled'
     */
    readonly stepCompletedIcon: _angular_core.InputSignal<string>;
    /**
     * Class name of icon shown when a step had an error.
     *
     * @defaultValue 'elementWarningFilled'
     */
    readonly stepFailedIcon: _angular_core.InputSignal<string>;
    /**
     * Set the orientation of the wizard to vertical.
     *
     * @defaultValue false
     */
    readonly verticalLayout: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Set false to show navigation buttons in footer instead of inline.
     *
     * @defaultValue false
     */
    readonly inlineNavigation: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Use number representation for steps.
     *
     * @defaultValue false
     */
    readonly showStepNumbers: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Set to true to display a divider between the steps and the content in the vertical
     *
     * @defaultValue false
     */
    readonly showVerticalDivider: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Set the wizard step container min size in vertical layout. */
    readonly verticalMinSize: _angular_core.InputSignal<string | undefined>;
    /** Set the wizard step container max size in vertical layout. */
    readonly verticalMaxSize: _angular_core.InputSignal<string | undefined>;
    /** Callback function triggered after the wizard has been completed. */
    readonly completionAction: _angular_core.OutputEmitterRef<void>;
    /** Callback function triggered if the wizard has been canceled. */
    readonly wizardCancel: _angular_core.OutputEmitterRef<void>;
    /** Get the current step wizard step index. */
    get index(): number;
    /** Get number of wizard steps. */
    get stepCount(): number;
    /** Get current visible wizard step. */
    get currentStep(): SiWizardStepComponent | undefined;
    protected readonly steps: _angular_core.Signal<readonly SiWizardStepComponent[]>;
    protected readonly visibleSteps: _angular_core.WritableSignal<number>;
    protected readonly showCompletionPage: _angular_core.WritableSignal<boolean>;
    /** The list of visible steps. */
    protected readonly activeSteps: _angular_core.Signal<StepItem[]>;
    private readonly _index;
    private readonly _currentStep;
    protected readonly icons: Record<"elementNotChecked" | "elementRadioChecked" | "elementCheckedFilled" | "elementWarningFilled" | "elementCancel" | "elementChecked" | "elementLeft4" | "elementRight4", string>;
    protected canActivate(stepIndex: number): boolean;
    protected activateStep(event: Event, stepIndex: number): void;
    protected getStateClass(stepIndex: number): string;
    protected getAriaDisabled(stepIndex: number): string;
    protected getAriaCurrent(stepIndex: number): string;
    /**
     * Go to the next wizard step.
     * @param delta - optional number of steps to move forward.
     */
    next(delta?: number): void;
    /**
     * Go to the previous wizard step.
     * @param delta - optional number of steps to move backwards.
     */
    back(delta?: number): void;
    /** Triggers the save action to complete the wizard. */
    save(): void;
    protected getState(step: SiWizardStepComponent, stepIndex: number): string;
    private activate;
    protected updateVisibleSteps(): void;
    private calculateVisibleStepCount;
    private computeVisibleSteps;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiWizardComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiWizardComponent, "si-wizard", never, { "backText": { "alias": "backText"; "required": false; "isSignal": true; }; "nextText": { "alias": "nextText"; "required": false; "isSignal": true; }; "hideNavigation": { "alias": "hideNavigation"; "required": false; "isSignal": true; }; "saveText": { "alias": "saveText"; "required": false; "isSignal": true; }; "hideSave": { "alias": "hideSave"; "required": false; "isSignal": true; }; "completionText": { "alias": "completionText"; "required": false; "isSignal": true; }; "cancelText": { "alias": "cancelText"; "required": false; "isSignal": true; }; "hasCancel": { "alias": "hasCancel"; "required": false; "isSignal": true; }; "enableCompletionPage": { "alias": "enableCompletionPage"; "required": false; "isSignal": true; }; "completionPageVisibleTime": { "alias": "completionPageVisibleTime"; "required": false; "isSignal": true; }; "stepIcon": { "alias": "stepIcon"; "required": false; "isSignal": true; }; "stepActiveIcon": { "alias": "stepActiveIcon"; "required": false; "isSignal": true; }; "stepCompletedIcon": { "alias": "stepCompletedIcon"; "required": false; "isSignal": true; }; "stepFailedIcon": { "alias": "stepFailedIcon"; "required": false; "isSignal": true; }; "verticalLayout": { "alias": "verticalLayout"; "required": false; "isSignal": true; }; "inlineNavigation": { "alias": "inlineNavigation"; "required": false; "isSignal": true; }; "showStepNumbers": { "alias": "showStepNumbers"; "required": false; "isSignal": true; }; "showVerticalDivider": { "alias": "showVerticalDivider"; "required": false; "isSignal": true; }; "verticalMinSize": { "alias": "verticalMinSize"; "required": false; "isSignal": true; }; "verticalMaxSize": { "alias": "verticalMaxSize"; "required": false; "isSignal": true; }; }, { "completionAction": "completionAction"; "wizardCancel": "wizardCancel"; }, ["steps"], ["*"], true, never>;
}

declare class SiWizardModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiWizardModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiWizardModule, never, [typeof SiWizardComponent, typeof SiWizardStepComponent], [typeof SiWizardComponent, typeof SiWizardStepComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<SiWizardModule>;
}

export { SiWizardComponent, SiWizardModule, SiWizardStepComponent };
