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

/**
 * The directive provide a CSS variable --background with a color based on the initials or alt text.
 */
declare class SiAvatarBackgroundColorDirective implements OnChanges {
    /**
     * The desired color index from $element-data-* color tokens. This can be set to any kind of
     * positive integer that is then mapped to a color index.
     * A better way to set a pseudo-random color is to set {@link autoColor} to `true`.
     *
     * @defaultValue undefined
     */
    readonly color: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
    /**
     * Automatically calculates the background color.
     * If set, {@link color} will be ignored.
     *
     * @defaultValue false
     */
    readonly autoColor: _angular_core.InputSignalWithTransform<boolean, unknown>;
    protected readonly backgroundStyle: _angular_core.WritableSignal<string | undefined>;
    ngOnChanges(changes: SimpleChanges<this>): void;
    /**
     * Update background color variable based on the initials or placeholder text.
     */
    calculateColorFromInitials(displayInitials?: string): void;
    private setColor;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiAvatarBackgroundColorDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiAvatarBackgroundColorDirective, "[siAvatarBackgroundColor]", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "autoColor": { "alias": "autoColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

type AvatarSize = 'tiny' | 'xsmall' | 'small' | 'regular' | 'large' | 'xlarge';
declare class SiAvatarComponent {
    private readonly statusIcons;
    /**
     * Size of the component.
     *
     * @defaultValue 'regular'
     */
    readonly size: _angular_core.InputSignal<AvatarSize>;
    /** Image src URL when using an image. */
    readonly imageUrl: _angular_core.InputSignal<string | undefined>;
    /** Icon name when using an icon. */
    readonly icon: _angular_core.InputSignal<string | undefined>;
    /**
     * Initials to be displayed as default avatar if no `icon` or `imageUrl` are provided.
     * If also no initials are provided, they will be automatically calculated from the `altText`.
     * The value will be used to calculate the background color when `autoColor` is true.
     */
    readonly initials: _angular_core.InputSignal<string | undefined>;
    /**
     * The desired color index from $element-data-* color tokens. This can be set to any kind of
     * positive integer that is then mapped to a color index.
     * A better way to set a pseudo-random color is to set * {@link autoColor} to `true`.
     *
     * @defaultValue undefined
     */
    readonly color: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
    /** The `alt` text for image, `title` for other modes. */
    readonly altText: _angular_core.InputSignal<string>;
    /**
     * The status (success, info, warning, caution, danger, critical, pending, progress) to be
     * visualized.
     */
    readonly status: _angular_core.InputSignal<EntityStatusType | undefined>;
    /**
     * aria-label for status
     */
    readonly statusAriaLabel: _angular_core.InputSignal<TranslatableString | undefined>;
    protected readonly statusIcon: _angular_core.Signal<_siemens_element_ng_common.StatusIcon | undefined>;
    protected readonly displayInitials: _angular_core.Signal<string>;
    private readonly autoBackgroundColorDirective;
    constructor();
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiAvatarComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiAvatarComponent, "si-avatar", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "initials": { "alias": "initials"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "altText": { "alias": "altText"; "required": true; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "statusAriaLabel": { "alias": "statusAriaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof SiAvatarBackgroundColorDirective; inputs: { "color": "color"; "autoColor": "autoColor"; }; outputs: {}; }]>;
}

export { SiAvatarBackgroundColorDirective, SiAvatarComponent };
export type { AvatarSize };
