import * as i0 from '@angular/core';
import { TemplateRef, EventEmitter } from '@angular/core';
import { ColorAccent, Nullable } from '@fundamental-ngx/cdk/utils';
import { IconFont } from '@fundamental-ngx/core/icon';
import { ObjectStatus } from '@fundamental-ngx/core/object-status';

declare class PlatformObjectStatusTextDirective {
    /**
     * Template reference.
     */
    templateRef: TemplateRef<any>;
    static ɵfac: i0.ɵɵFactoryDeclaration<PlatformObjectStatusTextDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PlatformObjectStatusTextDirective, "[fdpObjectStatusText]", never, {}, {}, never, never, true, never>;
}
/**
 * @deprecated
 * Use `ColorAccent` from `@fundamental-ngx/cdk/utils` instead.
 */
type IndicationColorType = ColorAccent;
/**
 * @deprecated
 * Use `ObjectStatus` from `@fundamental-ngx/core/object-status` instead.
 */
declare class ObjectStatusComponent {
    /**
     * The status represented by the Object Status.
     * Can be one of the following: 'negative' | 'critical' | 'positive' | 'informative'
     * For default Object Status omit this property
     */
    status: Nullable<ObjectStatus>;
    /**
     * Glyph (icon) of the Object Status.
     */
    glyph: Nullable<string>;
    /** Glyph font family */
    glyphFont: IconFont;
    /**
     * A number representing the indication color.
     * For non-inverted state available numbers are from 1 to 8.
     * For inverted state available numbers are from 1 to 10.
     */
    indicationColor: ColorAccent;
    /** Whether to use secondary set of indication colors. */
    secondaryIndication: boolean;
    /** Whether the Object Status is clickable. */
    clickable: boolean;
    /** Whether the Object Status is inverted. */
    inverted: boolean;
    /** Whether the Object Status is in Large Design. */
    large: boolean;
    /** Sets control label attribute value */
    label: Nullable<string>;
    /** Sets control aria-label attribute value */
    ariaLabel: Nullable<string>;
    /** Sets control aria-title to a string attribute value */
    title: string;
    /** Event sent when button is clicked */
    objectStatusClick: EventEmitter<MouseEvent | KeyboardEvent | TouchEvent>;
    /** @hidden */
    _textDirective: Nullable<PlatformObjectStatusTextDirective>;
    /** @hidden */
    constructor();
    /** @hidden */
    _onKeydown($event: KeyboardEvent): void;
    /**
     *  Handles button click
     */
    onObjectStatusClick($event: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ObjectStatusComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ObjectStatusComponent, "fdp-object-status", never, { "status": { "alias": "status"; "required": false; }; "glyph": { "alias": "glyph"; "required": false; }; "glyphFont": { "alias": "glyphFont"; "required": false; }; "indicationColor": { "alias": "indicationColor"; "required": false; }; "secondaryIndication": { "alias": "secondaryIndication"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; }; "large": { "alias": "large"; "required": false; }; "label": { "alias": "label"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "title": { "alias": "title"; "required": false; }; }, { "objectStatusClick": "objectStatusClick"; }, ["_textDirective"], never, true, never>;
}

/**
 * @deprecated
 * Use `ObjectStatusComponent` import instead.
 */
declare class PlatformObjectStatusModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<PlatformObjectStatusModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PlatformObjectStatusModule, never, [typeof ObjectStatusComponent, typeof PlatformObjectStatusTextDirective], [typeof ObjectStatusComponent, typeof PlatformObjectStatusTextDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PlatformObjectStatusModule>;
}

export { ObjectStatusComponent, PlatformObjectStatusModule, PlatformObjectStatusTextDirective };
export type { IndicationColorType };
