import { type HTMLAttributes, type ReactNode } from 'react';
export interface NoticeGroupHandle {
/** What the group shows now: counts and flags only. */
getState: () => {
/** Notes that fold (not errors or progress), still shown. */
noteCount: number;
/** True while the notes sit behind the summary row (two or more). */
grouped: boolean;
/** Whether the summary row is open (expanded). */
open: boolean;
};
/**
* Open or fold the notes. False when there is no summary row. With a
* controlled `open`, this asks the host through `onOpenChange`.
*/
setOpen: (open: boolean) => boolean;
}
export interface NoticeGroupProps extends Omit, 'children'> {
/**
* `Alert` and `ProgressNotice` elements, passed directly (fragments are
* fine). Give each a `key`. Anything else shows as given, outside the
* fold.
*/
children: ReactNode;
/**
* The summary row's text, for example "3 notes about these figures".
* A function receives the count of notes (and of warnings among them),
* so your own translation can pluralise it. Defaults to the kit's
* "{{count}} notes". When warnings are folded, the row also says how
* many ("1 warning"), whatever the summary.
*/
summary?: string | ((count: number, warnings: number) => string);
/** Controlled: whether the summary row is open, showing every note. */
open?: boolean;
/** Uncontrolled initial state. Defaults to folded. */
defaultOpen?: boolean;
/** Fires when the summary row opens or folds. */
onOpenChange?: (open: boolean) => void;
/** Opaque instance id, emitted as `data-component-id` for agents. */
id?: string;
}
export declare const NoticeGroup: import("react").ForwardRefExoticComponent>;
//# sourceMappingURL=notice-group.d.ts.map