import { type HTMLAttributes } from 'react';
export interface ProgressNoticeItem {
/** Stable key. */
id: string;
/** What is being prepared, for example a practice's name. Translated. */
name: string;
/**
* One line on where it stands, for example "Money ready, statistics 6
* of 24 months". Translated.
*/
status?: string;
/** True once this item is ready. */
ready: boolean;
}
export interface ProgressNoticeHandle {
/** What the notice shows now: counts and flags, no item names. */
getState: () => {
value: number;
max: number;
complete: boolean;
readyCount: number;
itemCount: number;
detailsOpen: boolean;
};
/** Open or close the details list. False when there is no list. */
setDetailsOpen: (open: boolean) => boolean;
}
export interface ProgressNoticeProps extends Omit, 'title' | 'role' | 'children'> {
/** Heading, for example "Preparing your figures". Translated. */
title: string;
/**
* Heading level of the title. Set it one below the heading that
* introduces the page or board. Unset, it is Alert's default (h5).
*/
headingLevel?: 2 | 3 | 4 | 5 | 6;
/** Progress so far, in the units of `max`. */
value: number;
/** The value at which the import is done. Defaults to 100. */
max?: number;
/**
* One line under the title, for example "2 of 4 practices ready".
* Translated. Also the progress bar's value text.
*/
summary?: string;
/** One row each in the expandable details list. Omit for no list. */
items?: ProgressNoticeItem[];
/** Controlled: whether the details list is open. */
detailsOpen?: boolean;
/** Uncontrolled: whether the details list starts open. Defaults to false. */
defaultDetailsOpen?: boolean;
/** Fires when the details list opens or closes. */
onDetailsOpenChange?: (open: boolean) => void;
/** Controlled visibility. Defaults to shown. */
open?: boolean;
/** Fires when the user dismisses the notice (`dismissible`). */
onOpenChange?: (open: boolean) => void;
/** Shows the close button. Defaults to true when `dismissKey` is set. */
dismissible?: boolean;
/**
* Remember a dismissal in this browser, as on Alert: the notice stays
* hidden for this key, and a new key shows it again. Put the import in
* the key (for example its id). Never personal or patient data.
*/
dismissKey?: string;
/** How long a `dismissKey` dismissal lasts, in ms (default 30 days). */
dismissLifetimeMs?: number;
/**
* Fires once each time the import becomes complete: every item is
* ready, or `value` reaches `max`. Also on mount when it already is.
*/
onComplete?: () => void;
/**
* Announced when the import completes. Translated. Defaults to the
* kit's "Everything is ready."
*/
completeAnnouncement?: string;
/** Opaque instance id, emitted as `data-component-id` for agents. */
id?: string;
}
export declare const ProgressNotice: import("react").ForwardRefExoticComponent>;
//# sourceMappingURL=progress-notice.d.ts.map