import { ResponsiveType } from '../../types/ui.type';
import { BreakpointsTokenType } from '../../types/design-token.type';
import { VegaLoadingIndicatorSize } from './types';
import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core';
import { PageResizeObserverSlimmer } from '../../helpers/slimmers/page-resize-observer-slimmer';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
/**
 * @vegaVersion 1.16.0
 */
export declare class VegaLoadingIndicator {
  protected readonly globalSlimmers: GlobalSlimmers;
  /**
   * The below method is e2e-test covered in
   * @see{module:vega-loading-indicator-resize-e2e}
   */
  protected readonly pageResizeObserverSlimmer: PageResizeObserverSlimmer;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaLoadingIndicatorElement>;
  host: HTMLVegaLoadingIndicatorElement;
  currentBreakpoint: BreakpointsTokenType;
  /**
   * Specifies the shape of the loading indicator.
   *
   * @vegaVersion 1.16.0
   */
  shape: 'circle' | 'bar';
  /**
   * Specifies the size of the loading indicator.
   *    It is provided as a ResponsiveType.
   *
   * @vegaVersion 1.16.0
   */
  size: ResponsiveType<VegaLoadingIndicatorSize>;
  /**
   * Specifies the mode of the loading indicator.
   *
   * When the mode is set to `determinate`, there will be no animation.
   *
   * @vegaVersion 1.16.0
   */
  mode: 'indeterminate' | 'determinate';
  /**
   * Specifies the completion percentage when
   *    the mode is set to `determinate`.
   *
   * @vegaVersion 1.16.0
   */
  percent: number;
  /**
   * Provides a descriptive text or message that indicates
   *    the status or progress of the process.
   *
   * @vegaVersion 1.16.0
   */
  label: string;
  /**
   * Provides a supplementary prompt message that assists users in
   *    understanding the ongoing loading process.
   *
   * @vegaVersion 1.16.0
   */
  hint: string;
  /**
   * Indicates the current status or state of the loading process.
   *
   * @vegaVersion 1.16.0
   */
  status: 'default' | 'success' | 'error';
  render(): VegaLoadingIndicator;
  private renderCircleLoader;
  private renderBarLoader;
  private renderLabelAndHint;
  private getResponsiveSize;
  /**
   * Radius = Inner Diameter + ((Outer Diameter - Inner Diameter) / 2)
   * @param {number} size The size of loading indicator
   */
  private getCircleLoaderRadius;
}
