import type { CSSProperties } from 'vue';
import type { Direction } from '../../config-provider';
import type { CircleProps, ProgressProps } from './props';
import type { ProgressGradient, StringGradients } from './interface';
/**
 * {
 *   '0%': '#afc163',
 *   '75%': '#009900',
 *   '50%': 'green',     ====>     '#afc163 0%, #66FF00 25%, #00CC00 50%, #009900 75%, #ffffff 100%'
 *   '25%': '#66FF00',
 *   '100%': '#ffffff'
 * }
 */
export declare function sortGradient(gradients: StringGradients): string;
/**
 * Then this man came to realize the truth: Besides six pence, there is the moon. Besides bread and
 * butter, there is the bug. And... Besides women, there is the code.
 *
 * @example
 *   {
 *     "0%": "#afc163",
 *     "25%": "#66FF00",
 *     "50%": "#00CC00", // ====>  linear-gradient(to right, #afc163 0%, #66FF00 25%,
 *     "75%": "#009900", //        #00CC00 50%, #009900 75%, #ffffff 100%)
 *     "100%": "#ffffff"
 *   }
 */
export declare function handleGradient(strokeColor: ProgressGradient, directionConfig?: Direction): CSSProperties;
export declare function validProgress(progress: number | undefined): number;
export declare function getSuccessPercent({ success, successPercent }: ProgressProps): number;
export declare function getPercentage({ percent, success, successPercent }: ProgressProps): number[];
export declare function getStrokeColor({ success, strokeColor, }: Partial<CircleProps>): Array<string | Record<string, string>>;
export declare function getSize(size: ProgressProps['size'], type: ProgressProps['type'] | 'step', extra?: {
    steps?: number;
    strokeWidth?: number;
}): {
    width: number;
    height: number;
};
