import * as _angular_core from '@angular/core';
import { AfterViewInit, ElementRef } from '@angular/core';
import { HasElementRef } from '@fundamental-ngx/cdk/utils';

type StatusIndicatorSize = 'sm' | 'md' | 'lg' | 'xl';
type StatusIndicatorColor = 'negative' | 'critical' | 'positive';
type LablePosition = 'left' | 'right' | 'top' | 'bottom';
type FillingType = 'radial' | 'angled' | 'linearup' | 'lineardown' | 'linearleft';
type FillingDirection = 'clockwise' | 'counterclockwise';
declare class Point {
    x: number;
    y: number;
    /** @hidden */
    constructor(x: number, y: number);
}
declare class StatusIndicatorComponent implements AfterViewInit, HasElementRef {
    /**
     * value id defines the id of the object.
     */
    readonly id: _angular_core.InputSignal<string>;
    /**
     * defines the size of the status indicator.
     * Can be one of the following: 'sm' | 'md' | 'lg' | 'xl'
     * Default size is Medium(md).
     */
    readonly size: _angular_core.InputSignal<StatusIndicatorSize>;
    /**
     * The status represented by the Status Indicator.
     * Can be one of the following: 'negative' | 'critical' | 'informative'
     * For default Object Status omit this property
     */
    readonly status: _angular_core.InputSignal<StatusIndicatorColor | undefined>;
    /** Define the text content of the Status indicator*/
    readonly statusLabel: _angular_core.InputSignal<string | undefined>;
    /**
     * positioning of the status indicator image within the defined height and width .
     */
    readonly viewBox: _angular_core.InputSignal<string | undefined>;
    /**
     * boolean value to be marked as clickable
     */
    readonly clickable: _angular_core.InputSignal<boolean>;
    /**
     * defines the size of the status indicator.
     * Can be one of the following: 'sm' | 'md' | 'lg' | 'xl'
     */
    readonly labelSize: _angular_core.InputSignal<StatusIndicatorSize>;
    /** Aria label for the Status Indicator. */
    readonly ariaLabel: _angular_core.InputSignal<string | null | undefined>;
    /** Aria defines role description for the Status Indicator. */
    readonly ariaRoleDescription: _angular_core.InputSignal<string | null | undefined>;
    /** Aria Focusable for the Status Indicator. */
    readonly focusable: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Aria Role for the Status Indicator. */
    readonly role: _angular_core.InputSignal<string | null | undefined>;
    /** Aria Value Text for the Status Indicator. */
    readonly ariaValueText: _angular_core.InputSignal<string | null | undefined>;
    /** Aria title for the status indicator. */
    readonly title: _angular_core.InputSignal<string | null | undefined>;
    /** defines the label position the value can be 'left' | 'right' | 'top' | 'bottom' */
    readonly labelPosition: _angular_core.InputSignal<LablePosition | undefined>;
    /** Path for the status indicator */
    readonly path: _angular_core.InputSignal<string[] | undefined>;
    /**
     * Offset value to be filled under the give percentatge value.
     */
    readonly fillPercentage: _angular_core.InputSignal<number | undefined>;
    /**
     * value to define fill direction
     */
    readonly fillDirection: _angular_core.InputSignal<FillingDirection>;
    /**
     * FillingType to represent the fill pattern of the component
     */
    readonly fillingType: _angular_core.InputSignal<FillingType>;
    /** represent the degree of angle to project the filling of the component */
    readonly angle: _angular_core.InputSignal<number | undefined>;
    /** @hidden */
    readonly elementRef: ElementRef<any>;
    /** @hidden */
    protected readonly binaryString: _angular_core.WritableSignal<string>;
    /** @hidden */
    protected readonly x1: _angular_core.WritableSignal<string>;
    /** @hidden */
    protected readonly y1: _angular_core.WritableSignal<string>;
    /** @hidden */
    protected readonly x2: _angular_core.WritableSignal<string>;
    /** @hidden */
    protected readonly y2: _angular_core.WritableSignal<string>;
    /** @hidden */
    protected readonly pointsArray: _angular_core.WritableSignal<string[]>;
    /** @hidden Computed fill calculator based on percentage and path length */
    protected readonly fillCalculator: _angular_core.Signal<number>;
    /** @hidden Computed CSS class */
    protected readonly _cssClass: _angular_core.Signal<string>;
    protected readonly labelCssClass: _angular_core.Signal<string>;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    private _angleCalculation;
    /** @hidden */
    private _convertAngleToBinary;
    /** @hidden */
    private _assignBinaryValue;
    /** @hidden */
    private _getPolygonPointsForCircularFilling;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusIndicatorComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusIndicatorComponent, "fd-status-indicator", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "statusLabel": { "alias": "statusLabel"; "required": false; "isSignal": true; }; "viewBox": { "alias": "viewBox"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "labelSize": { "alias": "labelSize"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaRoleDescription": { "alias": "ariaRoleDescription"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "path": { "alias": "path"; "required": false; "isSignal": true; }; "fillPercentage": { "alias": "fillPercentage"; "required": false; "isSignal": true; }; "fillDirection": { "alias": "fillDirection"; "required": false; "isSignal": true; }; "fillingType": { "alias": "fillingType"; "required": false; "isSignal": true; }; "angle": { "alias": "angle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

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

export { Point, StatusIndicatorComponent, StatusIndicatorModule };
export type { FillingDirection, FillingType, LablePosition, StatusIndicatorColor, StatusIndicatorSize };
