import { PropertyValues } from 'lit'; import { SpectrumElement } from '../../element/index.js'; import { PROGRESS_CIRCLE_VALID_SIZES, ProgressCircleStaticColor } from './ProgressCircle.types.js'; declare const ProgressCircleBase_base: typeof SpectrumElement & { new (...args: any[]): import('../../mixins/index.js').SizedElementInterface; prototype: import('../../mixins/index.js').SizedElementInterface; } & import('../../mixins/index.js').SizedElementConstructor; /** * @todo SWC-2037 Extract shared progress logic (ARIA, label, clamping, formatting, * indeterminate derivation) into a `ProgressBase` mixin or abstract class in * `core/components/progress/` so that both `ProgressCircleBase` and a future * `ProgressBarBase` can extend it. Also add `formatOptions` support for * progress-bar's custom value labels (e.g. "3 of 10", "45 MB / 100 MB"). */ /** * A progress circle component that visually represents the completion progress of a task. * Can be used in both determinate (with specific progress value) and indeterminate (loading) states. * * @attribute {ElementSize} size - The size of the progress circle. */ export declare abstract class ProgressCircleBase extends ProgressCircleBase_base { /** * The size of the progress circle. * * @default m */ size: (typeof PROGRESS_CIRCLE_VALID_SIZES)[number]; /** * @internal * * A readonly array of the valid static colors for the progress circle. * * This is an actual internal property, intended not for customer use * but for use in internal validation logic, stories, tests, etc. * * Because S1 and S2 support different static colors, the value of this * property must be set in each subclass. */ static readonly STATIC_COLORS: readonly string[]; /** * @internal * * Static color variant for use on different backgrounds. * * This is a public property, but its valid values vary between S1 and S2, * so the property (and its docs) need to be redefined in each subclass. * * The type declared here is a union of the valid values for S1 and S2, * and should be narrowed in each subclass. */ staticColor?: ProgressCircleStaticColor; /** * Accessible label for the progress circle. * * Used to provide context about what is loading or progressing. * When no accessible name is provided (no label, aria-label, or * aria-labelledby), a default "Loading" label is applied. * * @todo Localize the default "Loading" fallback via LanguageResolutionController * once a runtime i18n system for static strings is available. */ label: string; /** * Progress value from 0 to 100. * * When `null` (indeterminate), the component shows a loading animation. * Setting a number switches to determinate mode. Removing the `progress` * attribute or setting this property to `null` returns to indeterminate. * Values outside 0–100 or non-finite numbers are clamped (non-finite becomes 0). * * Reflected to the `progress` attribute when set; the attribute is omitted when indeterminate. */ progress: number | null; private languageResolver; /** * @todo Localize via LanguageResolutionController once a runtime i18n * system for static strings is available. */ private static readonly DEFAULT_LABEL; /** True when light DOM has element nodes or non-whitespace text (no default slot). */ private static hasMeaningfulLightDomChildren; private hasAccessibleName; private static clampProgress; private formatProgress; private warnDeprecatedLightDomChildren; private warnMissingAccessibleName; protected willUpdate(changes: PropertyValues): void; protected firstUpdated(changes: PropertyValues): void; protected updated(changes: PropertyValues): void; } export {};