import { RangeBaseElement } from '../Abstracts/RangeBaseElement';
import type { IProgressRingElementProps } from './IProgressRingElementProps';
import { CssLength } from '@breadstone/mosaik-themes';
declare const ProgressRingElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Orientable").IOrientableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Labelable").ILabelableProps) & typeof RangeBaseElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * ProgressRing - A circular progress indicator component for displaying task completion and loading states.
 *
 * Presents progress information in an elegant circular format with support for both determinate
 * progress (specific percentage) and indeterminate loading states. Features smooth animations,
 * customizable styling, and optional text labels for enhanced user feedback during operations.
 *
 * @name ProgressRingElement
 * @element mosaik-progress-ring
 * @category Ranges
 *
 * @slot label - Text label content area for progress description or percentage display
 * @slot hint - Secondary text content area for additional progress information or status
 *
 * @csspart root - Root container for the progress ring component
 * @csspart bar - Progress bar/ring path element for visual progress representation
 * @csspart label - Text label styling container for progress information
 * @csspart track - Background track/circle for the progress ring
 * @csspart fill - Progress fill/path for indicating completion
 *
 * @cssprop --progress-ring-font-family - Font family for progress text labels
 * @cssprop --progress-ring-font-size - Font size for progress text
 * @cssprop --progress-ring-font-weight - Font weight for progress text
 * @cssprop --progress-ring-padding-top - Top padding for ring container
 * @cssprop --progress-ring-padding-right - Right padding for ring container
 * @cssprop --progress-ring-padding-bottom - Bottom padding for ring container
 * @cssprop --progress-ring-padding-left - Left padding for ring container
 * @cssprop --progress-ring-gap - Gap between ring and label elements
 * @cssprop --progress-ring-transition-duration - Animation duration for progress changes
 * @cssprop --progress-ring-transition-mode - Animation easing mode for progress transitions
 * @cssprop --progress-ring-transition-property - CSS properties to animate during transitions
 * @cssprop --progress-ring-foreground-color - Primary color for ring and text
 * @cssprop --progress-ring-background-color - Background color for the ring container
 * @cssprop --progress-ring-border-color - Border color for ring elements
 * @cssprop --progress-ring-border-width - Border width for ring styling
 * @cssprop --progress-ring-border-radius - Border radius for container styling
 * @cssprop --progress-ring-border-style - Border style for ring elements
 * @cssprop --progress-ring-shadow - Shadow effect for the progress ring
 * @cssprop --progress-ring-fill-color - Fill color for the progress indicator
 * @cssprop --progress-ring-track-color - Background track color for the ring
 * @cssprop --progress-ring-size - Size dimensions for the progress ring
 * @cssprop --progress-ring-stroke-width - Thickness of the progress ring stroke
 *
 * @fires valueChanged - Fired when the value is changed.
 *
 * @dependency TextElement - For rendering progress labels and text content
 * @dependency CssLength - For handling CSS length values and sizing
 *
 * @example
 * ```html
 * <!-- Simple progress ring with percentage -->
 * <mosaik-progress-ring value="65" max="100">
 *   <mosaik-text slot="label">65%</mosaik-text>
 * </mosaik-progress-ring>
 *
 * <!-- File upload progress -->
 * <mosaik-progress-ring value="42" max="100">
 *   <mosaik-text slot="label">42%</mosaik-text>
 *   <mosaik-text slot="hint">Uploading...</mosaik-text>
 * </mosaik-progress-ring>
 *
 * <!-- Indeterminate loading ring -->
 * <mosaik-progress-ring indeterminate="true">
 *   <mosaik-text slot="label">Loading</mosaik-text>
 * </mosaik-progress-ring>
 *
 * <!-- Task completion ring -->
 * <mosaik-progress-ring value="8" max="10" appearance="success">
 *   <mosaik-text slot="label">8/10</mosaik-text>
 *   <mosaik-text slot="hint">Tasks Complete</mosaik-text>
 * </mosaik-progress-ring>
 *
 * <!-- Small loading spinner -->
 * <mosaik-progress-ring
 *   size="small"
 *   indeterminate="true"
 *   style="--progress-ring-size: 24px;">
 * </mosaik-progress-ring>
 *
 * <!-- Custom styled progress ring -->
 * <mosaik-progress-ring
 *   value="75"
 *   style="
 *     --progress-ring-fill-color: #00ff00;
 *     --progress-ring-track-color: #e0e0e0;
 *     --progress-ring-size: 120px;
 *     --progress-ring-stroke-width: 8px;
 *   ">
 *   <mosaik-text slot="label">75%</mosaik-text>
 *   <mosaik-text slot="hint">Download Progress</mosaik-text>
 * </mosaik-progress-ring>
 * ```
 *
 * @public
 */
export declare class ProgressRingElement extends ProgressRingElement_base implements IProgressRingElementProps {
    private _isIndeterminate;
    private _thickness;
    private _radius;
    private _percent;
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @readonly
    */
    static get is(): string;
    /**
     * Determines if `ProgressRing` shows actual values `false` or generic, continuous progress feedback `true`.
     *
     * @public
     * @attr
     */
    get isIndeterminate(): boolean;
    set isIndeterminate(value: boolean);
    /**
     * @public
     * @attr
     */
    get thickness(): CssLength;
    set thickness(value: CssLength);
    /**
     * @public
     * @attr
     */
    get radius(): CssLength;
    set radius(value: CssLength);
    /**
     * @private
     * @readonly
     */
    get percent(): number;
    /**
     * @private
     * @hidden
     * @readonly
     */
    get diameter(): number;
    /**
     * @private
     */
    getCircumference(): number;
    /**
     * @private
     */
    getOffset(): number;
    /**
     * @protected
     * @override
     */
    protected onValueChanged(prev: number, next: number): void;
    /**
     * @protected
     */
    protected onRadiusPropertyChanged(_prev?: number, _next?: number): void;
}
/**
* @public
*/
export declare namespace ProgressRingElement {
    type Props = IProgressRingElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-progress-ring': ProgressRingElement;
    }
}
export {};
//# sourceMappingURL=ProgressRingElement.d.ts.map