import * as _angular_core from '@angular/core';
import { TemplateRef } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { StepperSelectionEvent } from '@angular/cdk/stepper';
import { MatStepper } from '@angular/material/stepper';
import { Color } from '@sdcorejs/utils/models';

type SdStepState = 'pending' | 'active' | 'completed' | 'error' | string;
declare class SdStep {
    label: _angular_core.InputSignal<string>;
    icon: _angular_core.InputSignal<string | null | undefined>;
    optional: _angular_core.InputSignalWithTransform<boolean, unknown>;
    editable: _angular_core.InputSignalWithTransform<boolean, unknown>;
    stepControl: _angular_core.InputSignal<AbstractControl<any, any, any> | null | undefined>;
    state: _angular_core.InputSignal<string | undefined>;
    errorMessage: _angular_core.InputSignal<string | undefined>;
    selectChange: _angular_core.OutputEmitterRef<void>;
    bodyTpl: _angular_core.Signal<TemplateRef<unknown>>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdStep, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdStep, "sd-step", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "stepControl": { "alias": "stepControl"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; }, { "selectChange": "selectChange"; }, never, ["*"], true, never>;
}

declare class SdStepper {
    steps: _angular_core.Signal<readonly SdStep[]>;
    selectedIndex: _angular_core.ModelSignal<number>;
    linear: _angular_core.InputSignalWithTransform<boolean, unknown>;
    orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
    labelPosition: _angular_core.InputSignal<"end" | "bottom">;
    headerPosition: _angular_core.InputSignal<"bottom" | "top">;
    animationDuration: _angular_core.InputSignal<string>;
    disableRipple: _angular_core.InputSignalWithTransform<boolean, unknown>;
    color: _angular_core.InputSignal<Color>;
    autoId: _angular_core.InputSignal<string | undefined>;
    selectionChange: _angular_core.OutputEmitterRef<StepperSelectionEvent>;
    protected matStepper: _angular_core.Signal<MatStepper | undefined>;
    get autoIdAttr(): string | null;
    get cssActive(): string;
    get cssActiveBg(): string;
    get cssCompleted(): string;
    get cssLine(): string;
    constructor();
    next(): void;
    previous(): void;
    reset(): void;
    goTo(index: number): void;
    protected onSelectionChange(ev: StepperSelectionEvent): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdStepper, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdStepper, "sd-stepper", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "headerPosition": { "alias": "headerPosition"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "disableRipple": { "alias": "disableRipple"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "autoId": { "alias": "autoId"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; "selectionChange": "selectionChange"; }, ["steps"], never, true, never>;
}

export { SdStep, SdStepper };
export type { SdStepState };
