import type { CSSProperties, MutableRefObject } from 'react';
import type { BaseProgressProps } from './interface';
export declare function useStrokeWidthWithBackup({ strokeWidth, size, }: Readonly<Pick<BaseProgressProps, 'strokeWidth' | 'size'>>): number;
export declare function useSVG({ shape }: Readonly<Pick<BaseProgressProps, 'shape'>>): boolean;
export declare type UseSVGStrokeWidthParams = Pick<BaseProgressProps, 'size' | 'shape'> & {
    progressElement: MutableRefObject<HTMLDivElement | null>;
    strokeWidth: number;
    shouldUseSVG: boolean;
};
export declare function useSVGStrokeWidth(params: Readonly<UseSVGStrokeWidthParams>): {
    readonly svgStrokeWidth: number;
};
export declare function useSizeStyle({ size, shape, }: Readonly<Pick<BaseProgressProps, 'size' | 'shape'>>): {
    sizeStyle: CSSProperties;
    hasKnownSize: boolean;
};
export declare function useRoundSVGAttributes({ shape, strokeShape, finalStrokeWidth, percent, }: Readonly<Pick<BaseProgressProps, 'shape' | 'strokeShape' | 'percent'> & {
    finalStrokeWidth: number;
}>): {
    readonly path: string;
    readonly dasharray: number;
    readonly strokeLinecap: "round" | "butt";
    readonly viewBox: string;
    readonly dashoffset: number;
};
export declare function useRectStyles({ strokeWidthWithBackup, finalStrokeWidth, strokeShape, percent, }: Readonly<Pick<BaseProgressProps, 'strokeShape' | 'percent'> & {
    finalStrokeWidth: number;
    strokeWidthWithBackup: number;
}>): {
    readonly lineThumbStyle: {
        width: string;
        height: string;
        borderRadius: string;
    };
    readonly lineTrackStyle: {
        height: string;
        borderRadius: string;
    };
};
export declare function useIndicator({ text, percent, children, }: Readonly<Pick<React.PropsWithChildren<BaseProgressProps>, 'text' | 'percent' | 'children'>>): import("react").ReactNode;
