import * as _angular_core from '@angular/core';
import { OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { EntityStatusType, StatusIcon } from '@siemens/element-ng/common';
import { TranslatableString } from '@siemens/element-translate-ng/translate';
import { Observable } from 'rxjs';

declare class SiCircleStatusComponent implements OnChanges, OnDestroy {
    private readonly statusIcons;
    /**
     * The status (success, info, warning, danger) to be visualized.
     */
    readonly status: _angular_core.InputSignal<EntityStatusType | undefined>;
    /**
     * A custom color (e.g. `#fefefe`) for exceptional cases.
     * @deprecated use the semantic `status` input instead.
     */
    readonly color: _angular_core.InputSignal<string | undefined>;
    /**
     * Set a domain type icon (e.g. `element-door`) for which the status shall be shown.
     * Leave undefined for visualizing the status without an icon.
     */
    readonly icon: _angular_core.InputSignal<string | undefined>;
    /**
     * Set the size using either regular or small only works when used together with `icon`
     *
     * @defaultValue 'regular'
     */
    readonly size: _angular_core.InputSignal<"regular" | "small">;
    /**
     * event direction is out
     *
     * @defaultValue false
     */
    readonly eventOut: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Custom icon class for event out
     */
    readonly eventIcon: _angular_core.InputSignal<string | undefined>;
    /**
     * Whether the status should appear with a pulsing circle around the badge.
     *
     * @defaultValue false
     */
    readonly blink: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Blink pulse generator for synchronized blinking with other components
     */
    readonly blinkPulse: _angular_core.InputSignal<Observable<boolean> | undefined>;
    /**
     * Aria label for icon and status combo. Needed for a11y
     */
    readonly ariaLabel: _angular_core.InputSignal<TranslatableString | undefined>;
    protected readonly backgroundClass: _angular_core.Signal<string>;
    protected readonly theAriaLabel: _angular_core.Signal<string>;
    protected readonly autoLabel: _angular_core.Signal<string>;
    protected readonly statusIcon: _angular_core.Signal<StatusIcon | undefined>;
    protected readonly blinkOn: _angular_core.WritableSignal<boolean>;
    protected readonly contrastFix: _angular_core.WritableSignal<boolean>;
    protected readonly icons: Record<"elementRight4", string>;
    private blinkSubs?;
    private readonly bg;
    private blinkService;
    ngOnChanges(changes: SimpleChanges<this>): void;
    ngOnDestroy(): void;
    private calculateContrastFix;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiCircleStatusComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiCircleStatusComponent, "si-circle-status", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "eventOut": { "alias": "eventOut"; "required": false; "isSignal": true; }; "eventIcon": { "alias": "eventIcon"; "required": false; "isSignal": true; }; "blink": { "alias": "blink"; "required": false; "isSignal": true; }; "blinkPulse": { "alias": "blinkPulse"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

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

export { SiCircleStatusComponent, SiCircleStatusModule };
