import { Color4 } from '@dcl/sdk/math';
import ReactEcs from '@dcl/sdk/react-ecs';
import { EntityPropTypes } from '@dcl/react-ecs/dist/components/types';
import { UIObject, UIObjectConfig } from '../UIObject';
export type ProgressBarBarElement = Omit<EntityPropTypes, 'uiTransform'> & {
    uiTransform?: Omit<NonNullable<EntityPropTypes['uiTransform']>, 'display' | 'position' | 'width' | 'height'>;
};
export type ProgressBarBackgroundElement = Omit<EntityPropTypes, 'uiBackground'> & {
    uiBackground?: Omit<NonNullable<EntityPropTypes['uiBackground']>, 'uvs'>;
};
export type ProgressBarProcessElement = Omit<EntityPropTypes, 'uiTransform' | 'uiBackground'> & {
    uiTransform?: Omit<NonNullable<EntityPropTypes['uiTransform']>, 'position' | 'width' | 'height'>;
    uiBackground?: Omit<NonNullable<EntityPropTypes['uiBackground']>, 'color' | 'uvs'>;
};
export declare enum BarStyles {
    ROUNDBLACK = "roundBlack",
    ROUNDWHITE = "roundWhite",
    ROUNDSILVER = "roundSilver",
    ROUNDGOLD = "roundGold",
    SQUAREBLACK = "squareBlack",
    SQUAREWHITE = "squareWhite",
    SQUARESILVER = "squareSilver",
    SQUAREGOLD = "squareGold"
}
export type ProgressBarConfig = UIObjectConfig & {
    value: number;
    scale?: number;
    color?: Color4;
    xOffset?: number;
    yOffset?: number;
    style?: BarStyles;
};
export declare class ProgressBar extends UIObject {
    barElement: ProgressBarBarElement;
    backgroundElement: ProgressBarBackgroundElement;
    processElement: ProgressBarProcessElement;
    scale: number;
    xOffset: number;
    yOffset: number;
    color: Color4;
    style: BarStyles;
    private _value;
    private readonly _valueMax;
    private readonly _valueMin;
    private readonly _valueChangeStep;
    private _width;
    private _height;
    private _progressHeight;
    private _progressPaddingTop;
    private _progressPaddingBottom;
    private _progressPaddingLeft;
    private _progressPaddingRight;
    constructor({ startHidden, value, scale, color, xOffset, yOffset, style, }: ProgressBarConfig);
    read(): number;
    set(amount: number): void;
    increase(amount?: number): void;
    decrease(amount?: number): void;
    render(key?: string): ReactEcs.JSX.Element;
    private _setValueInRange;
}
