import type { WithNormalizedProps } from "../../global"; export declare const messageDurationStandard = 1500; export declare const messageDurationReducedMotionMultiplier = 1.5; export declare const messageFadeInDuration = 833; interface Message { renderBody: Marko.Body; duration?: number; } interface ProgressBarExpressiveInput extends Omit { "a11y-text"?: Marko.HTMLAttributes["aria-label"]; message?: Marko.AttrTag; size?: "medium" | "large"; } export interface Input extends WithNormalizedProps { } interface State { isInitialMessage: boolean; messageIsFadingIn: boolean; currentMessageIndex: number; nextMessageIndex: number; } declare class ProgressBarExpressive extends Marko.Component { timeouts: { fadeIn?: NodeJS.Timeout; showMessage?: NodeJS.Timeout | number; }; fadeInFirstMessage: boolean; onCreate(input: Input): void; onInput(input: Input): void; onDestroy(): void; clearTimeouts(): void; initializeMessageRotation(messages?: Marko.AttrTag): void; /** * Determine how long a message should display. * Displays longer when user prefers reduced motion. * @returns time in milliseconds */ getMessageDuration(message?: Message): number; /** * Animate in a message, queuing up the next one */ fadeInMessage(): void; /** * Display a message and queue the next one */ showMessage(messageTags?: Marko.AttrTag | undefined, extraDelay?: number): void; } export default ProgressBarExpressive;