// Type definitions for agate/ProgressBar

import { ProgressBarProps as ui_ProgressBar_ProgressBarProps } from "@enact/ui/ProgressBar";
import { SkinnableProps as agate_Skinnable_SkinnableProps } from "@enact/agate/Skinnable";
import * as React from "react";

type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;

export interface ProgressBarProps
  extends Merge<
    ui_ProgressBar_ProgressBarProps,
    agate_Skinnable_SkinnableProps
  > {
  /**
 * Customizes the component by mapping the supplied collection of CSS class names to the
corresponding internal elements and states of this component.
 * 
 * The following classes are supported:
 * *  `progressBar`  - The root component class
 */
  css?: object;
  /**
   * Sets the orientation of the progress bar.
   */
  orientation?: "horizontal" | "vertical";
  /**
   * A number between  `0`  and  `1`  indicating the proportion of the filled portion of the bar.
   */
  progress?: number;
  /**
   * The size of the progress bar.
   */
  size?: "small" | "large";
}
/**
 * Renders an Agate-styled progress bar.
 */

export class ProgressBar extends React.Component<
  Merge<React.HTMLProps<HTMLElement>, ProgressBarProps>
> {}

export default ProgressBar;
