import * as i0 from '@angular/core';
import { OnInit, OnChanges, ElementRef, SimpleChanges } from '@angular/core';
import { CssClassBuilder, HasElementRef, Nullable } from '@fundamental-ngx/cdk/utils';
import { IconFont } from '@fundamental-ngx/core/icon';

type LabelType = 'numeric' | 'icon';
declare const labelColorRange: readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
type InfoLabelColor = (typeof labelColorRange)[number];
type InfoLabelColorInput = InfoLabelColor | `${InfoLabelColor}`;
declare class InfoLabelComponent implements OnInit, OnChanges, CssClassBuilder, HasElementRef {
    /** User's custom classes */
    class: string;
    /**
     * The LabelType represented by the info label .
     * For default info label omit this property
     */
    type: LabelType;
    /** The icon name to display. See the icon page for the list of icons
     * here: https://sap.github.io/fundamental-ngx/icon
     * */
    glyph: Nullable<string>;
    /**
     * The icon font
     * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'
     */
    font: IconFont;
    /** Define the colour of the info label starting form 1 to 10 */
    color: Nullable<InfoLabelColorInput>;
    /** Define the text content of the info label */
    label: string;
    /** Define the tooltip content of the info label */
    title: string;
    /** Define the ariaLabel content of the info label */
    ariaLabel: Nullable<string>;
    /** Define the labelled by content of the info label */
    ariaLabelledBy: Nullable<string>;
    /** @hidden */
    elementRef: ElementRef<HTMLElement>;
    /** @hidden */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngOnChanges(changes: SimpleChanges): void;
    /** @hidden */
    private _validateColorInput;
    static ɵfac: i0.ɵɵFactoryDeclaration<InfoLabelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InfoLabelComponent, "fd-info-label", never, { "class": { "alias": "class"; "required": false; }; "type": { "alias": "type"; "required": false; }; "glyph": { "alias": "glyph"; "required": false; }; "font": { "alias": "font"; "required": false; }; "color": { "alias": "color"; "required": false; }; "label": { "alias": "label"; "required": false; }; "title": { "alias": "title"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; }, {}, never, never, true, never>;
}

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
declare class InfoLabelModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<InfoLabelModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<InfoLabelModule, never, [typeof InfoLabelComponent], [typeof InfoLabelComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<InfoLabelModule>;
}

export { InfoLabelComponent, InfoLabelModule };
export type { InfoLabelColor, InfoLabelColorInput, LabelType };
