import * as i0 from '@angular/core';
import { OnChanges, SimpleChanges } from '@angular/core';
import { NumberInput, BooleanInput } from '@angular/cdk/coercion';
import * as i1 from '@eui/components/shared';
import { BaseStatesDirective } from '@eui/components/shared';

/**
 * @description
 * Horizontal progress indicator component that visualizes task completion or loading states.
 * Supports determinate progress with percentage values and indeterminate loading animations.
 * Provides optional labeling and status icons for contextual feedback.
 * Integrates with BaseStatesDirective for theming variants (success, warning, danger) and sizing options.
 * Commonly used for file uploads, form submissions, data processing, and loading indicators.
 *
 * @usageNotes
 * ### Basic usage
 * ```html
 * <eui-progress-bar [progress]="75" label="Upload progress"></eui-progress-bar>
 * ```
 *
 * ### Indeterminate loading
 * ```html
 * <eui-progress-bar [isIndeterminate]="true" label="Loading..."></eui-progress-bar>
 * ```
 *
 * ### With status variants
 * ```html
 * <eui-progress-bar [progress]="90" euiSuccess [hasStatusIcon]="true"></eui-progress-bar>
 * <eui-progress-bar [progress]="50" euiWarning></eui-progress-bar>
 * <eui-progress-bar [progress]="25" euiDanger></eui-progress-bar>
 * ```
 *
 * ### Accessibility
 * - Uses ARIA attributes to communicate progress state to assistive technologies
 * - Label provides context for screen readers
 * - Status icons enhance visual feedback for users with color vision deficiencies
 *
 * ### Notes
 * - Progress values are automatically capped at 100
 * - Indeterminate mode shows continuous animation for unknown duration tasks
 * - Combine with status variants to indicate success, warning, or error states
 */
declare class EuiProgressBarComponent implements OnChanges {
    /** Element attribute for e2e testing */
    e2eAttr: string;
    /** CSS classes applied to the host element */
    get cssClasses(): string;
    /** Optional label displayed above the progress bar */
    label: string;
    /**
     * Current progress value (0-100)
     * Values greater than 100 will be capped at 100
     */
    progress: NumberInput;
    /**
     * When true, shows an indeterminate progress animation
     * instead of a specific progress value
     */
    isIndeterminate: BooleanInput;
    /**
     * When true, displays a status icon based on the current state
     * (success, warning, error, etc.)
     */
    hasStatusIcon: BooleanInput;
    /**
     * Reference to the BaseStatesDirective for managing component states
     */
    baseStatesDirective: BaseStatesDirective;
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Generates CSS classes for the component based on current state
     * @returns Space-separated string of CSS class names
     */
    private getCssClasses;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiProgressBarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiProgressBarComponent, "eui-progress-bar", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "label": { "alias": "label"; "required": false; }; "progress": { "alias": "progress"; "required": false; }; "isIndeterminate": { "alias": "isIndeterminate"; "required": false; }; "hasStatusIcon": { "alias": "hasStatusIcon"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiSecondary": "euiSecondary"; "euiSuccess": "euiSuccess"; "euiInfo": "euiInfo"; "euiWarning": "euiWarning"; "euiDanger": "euiDanger"; "euiSize2XS": "euiSize2XS"; "euiSizeXS": "euiSizeXS"; "euiSizeS": "euiSizeS"; "euiSizeM": "euiSizeM"; "euiSizeL": "euiSizeL"; "euiSizeXL": "euiSizeXL"; "euiVariant": "euiVariant"; "euiSizeVariant": "euiSizeVariant"; }; outputs: {}; }]>;
    static ngAcceptInputType_progress: unknown;
    static ngAcceptInputType_isIndeterminate: unknown;
    static ngAcceptInputType_hasStatusIcon: unknown;
}

declare const EUI_PROGRESS_BAR: readonly [typeof EuiProgressBarComponent];

export { EUI_PROGRESS_BAR, EuiProgressBarComponent };
//# sourceMappingURL=eui-components-eui-progress-bar.d.ts.map
