import * as _angular_core from '@angular/core';
import { InputSignal, ElementRef } from '@angular/core';
import * as i1 from '@eui/components/shared';
import { BaseStatesDirective } from '@eui/components/shared';

/**
 * @description
 * Circular progress indicator component that displays progress as a ring with customizable colors and labels.
 * Supports automatic color transitions based on value thresholds and custom label positioning.
 * Provides icon display option for visual enhancement and flexible sizing variants.
 *
 * @usageNotes
 * ### Basic usage
 * ```html
 * <eui-progress-circle [value]="65"></eui-progress-circle>
 * ```
 *
 * ### With custom label
 * ```html
 * <eui-progress-circle [value]="80" valueLabel="4 of 5 tasks"></eui-progress-circle>
 * ```
 *
 * ### With icon
 * ```html
 * <eui-progress-circle [value]="100" icon="check" fillColor="success"></eui-progress-circle>
 * ```
 *
 * ### Custom color thresholds
 * ```html
 * <eui-progress-circle [value]="45" colorSteps="25 75"></eui-progress-circle>
 * ```
 *
 * ### Accessibility
 * - Provide meaningful aria-label to describe the progress context
 * - Color states should not be the only indicator of status
 * - Ensure sufficient contrast between progress ring and background
 *
 * ### Notes
 * - Default color steps: 0-33% success, 34-66% warning, 67-100% danger
 * - Use `isDefaultColorSteps="false"` to disable automatic color transitions
 * - Bottom label positioning available via `hasBottomLabel` for longer text
 */
declare class EuiProgressCircleComponent {
    /**
     * Accessibility label for the progress circle
     * @default 'progress circle'
     */
    ariaLabel: InputSignal<string>;
    /** Computed host CSS classes */
    protected hostCssClasses: _angular_core.Signal<string>;
    /**
     * Whether to use default color steps based on value thresholds
     * @default true
     */
    isDefaultColorSteps: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Whether to display the label at the bottom of the circle
     * @default false
     */
    hasBottomLabel: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Current progress value (0-100)
     * @default 0
     */
    value: _angular_core.InputSignalWithTransform<number, string | number>;
    /**
     * Label to display when value is 0
     * @default 'N/A'
     */
    emptyLabel: InputSignal<string>;
    /**
     * Custom label to display instead of percentage
     */
    valueLabel: InputSignal<string>;
    /**
     * Custom color step thresholds (space or comma separated values)
     * @example '33 66' or '33,66'
     */
    colorSteps: InputSignal<string>;
    /**
     * Override color type ('info', 'success', 'warning', 'danger')
     */
    colorType: InputSignal<string>;
    /**
     * Tab index for accessibility
     * @default '0'
     */
    readonly tabindex: InputSignal<string>;
    /**
     * Svg icon option
     */
    icon: InputSignal<string>;
    /**
     * Svg icon fill color option
     * @default 'neutral' (black)
     */
    fillColor: InputSignal<string>;
    /**
     * Svg icon size option
     * @default 'm'
     */
    size: InputSignal<'2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | '3xl' | '4xl'>;
    /**
     * CSS class for the current color state
     *
     * @default ''
     */
    stateColorNumberClass: string;
    /**
     * Currently displayed label value
     *
     * @default ''
     */
    labelValue: string;
    /**
     * Percentage value as string
     * @deprecated This will be removed in next version of eui as it's unused
     *
     * @default ''
     */
    percentValue: string;
    /** Rounded value for display */
    roundedValue: number;
    /**
     * Whether the label exceeds a width threshold
     *
     * @default false
     */
    isLongLabel: _angular_core.WritableSignal<boolean>;
    /**
     * Current width of the label element
     *
     * @default 0
     */
    offsetWidth: number;
    /** Reference to the label value element */
    labelValueEl: _angular_core.Signal<ElementRef<HTMLSpanElement>>;
    protected baseStatesDirective: BaseStatesDirective;
    constructor();
    /**
     * Sets the color state based on value and thresholds
     * @deprecated avoid using this method. It will become private in the future.
     */
    setColorSteps(): void;
    /**
     * Sets the display label based on current value and configuration
     * @deprecated avoid using this method. It will become private in the future.
     */
    setLabels(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<EuiProgressCircleComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<EuiProgressCircleComponent, "eui-progress-circle", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "isDefaultColorSteps": { "alias": "isDefaultColorSteps"; "required": false; "isSignal": true; }; "hasBottomLabel": { "alias": "hasBottomLabel"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "valueLabel": { "alias": "valueLabel"; "required": false; "isSignal": true; }; "colorSteps": { "alias": "colorSteps"; "required": false; "isSignal": true; }; "colorType": { "alias": "colorType"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "fillColor": { "alias": "fillColor"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiSizeS": "euiSizeS"; "euiSizeM": "euiSizeM"; "euiSizeL": "euiSizeL"; "euiSizeVariant": "euiSizeVariant"; }; outputs: {}; }]>;
}

declare const EUI_PROGRESS_CIRCLE: readonly [typeof EuiProgressCircleComponent];

export { EUI_PROGRESS_CIRCLE, EuiProgressCircleComponent };
//# sourceMappingURL=eui-components-eui-progress-circle.d.ts.map
