import { LitElement, PropertyValues } from 'lit';
export declare enum SequenceLoadingSpinnerType {
    indicator = "indicator",
    indicatorPoint = "indicator-point",
    tag = "tag",
    tagPoint = "tag-point",
    button = "button",
    buttonPoint = "button-point"
}
export declare enum SequenceLoadingSpinnerProgressionType {
    determinate = "determinate",
    scanning = "scanning"
}
/**
 * `<obc-sequence-loading-spinner>` — circular loading indicator for sequence UI.
 *
 * Overview:
 * A compact spinner used alongside sequence steps, tags, or buttons.
 *
 * Features / Variants:
 * - `type`: `indicator | indicator-point | tag | tag-point | button | button-point`.
 * - `progression`: `determinate | scanning`.
 * - `progress-percent`: number `0–100` (used when `progression="determinate"`).
 * - Determinate progression uses a built-in fill animation from the current arc toward full completion.
 * - `rotation-duration-ms`: number in ms (controls spin speed).
 *
 * Usage Guidelines:
 * - Use `type` to match the surrounding element size.
 * - With `progression="determinate"`, the arc starts at 12 o'clock on the ring and grows clockwise.
 * - `progress-percent` is used as the starting offset for the determinate fill. After a short delay, the arc animates smoothly from that start value toward full completion.
 * - Changing `progress-percent` during determinate progression restarts the fill from the new start value.
 *
 * Slots / Content:
 * - None.
 *
 * Events:
 * - None.
 *
 * Best Practices:
 * - Keep `progress-percent` within `0–100` for predictable rendering.
 * - Prefer `scanning` for indefinite loading states.
 *
 * Example:
 * ```html
 * <obc-sequence-loading-spinner
 *   type="button"
 *   progression="determinate"
 *   progress-percent="25"
 * ></obc-sequence-loading-spinner>
 * ```
 */
export declare class ObcSequenceLoadingSpinner extends LitElement {
    type: SequenceLoadingSpinnerType;
    progression: SequenceLoadingSpinnerProgressionType;
    rotationDurationMs: number;
    progressPercent: number;
    private determinateDisplayPercent;
    private fillAnimGeneration;
    private determinateFillFrame?;
    private determinateStartDelayTimeout?;
    private get isButtonType();
    private get clampedRotationDurationMs();
    private get clampedProgressPercent();
    private get determinateRenderPercent();
    private get rootClasses();
    private get spinnerStyle();
    disconnectedCallback(): void;
    connectedCallback(): void;
    updated(changed: PropertyValues): void;
    private clearFillAnimation;
    private startDeterminateFillAnimation;
    render(): import('lit-html').TemplateResult<1>;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-sequence-loading-spinner': ObcSequenceLoadingSpinner;
    }
}
//# sourceMappingURL=sequence-loading-spinner.d.ts.map