//#region src/in-page-ui/issue-card.d.ts type IssueCardKind = "error" | "warning"; declare function getIssueCardCSS(scopeSelector: string): string; declare function copyTextToClipboard(text: string): Promise; type IssueCardOptions = { kind: IssueCardKind; /** Short uppercase label in the card's badge, eg. "Config error". */ badge: string; title: string; /** One or two sentences on what this means for the running app. */ bodyText: string; messageLabel: string; message: string; /** Concrete steps the developer should take; rendered as a list above the footer. */ howToFix?: readonly string[]; footerText: string; ariaLabel: string; /** Prompt for the "copy AI prompt" button, ie. the message plus enough context for a coding agent to fix it. */ aiPrompt: string; onCopyError: (error: unknown) => void; onCopyAiPromptError: (error: unknown) => void; onMinimize: () => void; }; declare function renderIssueCard(options: IssueCardOptions): HTMLElement; type IssueCardFocusTrap = { /** * Whatever had focus before the card first appeared. Callers that rebind the trap to a re-rendered card pass it back * in, so focus still returns to where the developer left it once the card is gone for good. */ previouslyFocused: HTMLElement | null; release: (releaseOptions?: { restoreFocus?: boolean; }) => void; }; /** * Keeps keyboard focus inside a mounted card, which claims to be an `aria-modal` alertdialog and therefore has to behave * like one: the flow behind the card is dead until the problem is fixed, so tabbing into it would only let a keyboard * user wander through a page that cannot work while the card stays invisible to them. * * Call right after mounting the card, and release the trap when the card is minimized, replaced or removed. Releasing * hands focus back to `previouslyFocused` unless `restoreFocus: false` is passed, which is what a caller that is about * to rebind the trap to a freshly rendered card wants. */ declare function trapFocusInIssueCard(cardRoot: HTMLElement, options?: { moveFocusIntoCard?: boolean; previouslyFocused?: HTMLElement | null; }): IssueCardFocusTrap; declare function renderIssuePill(options: { kind: IssueCardKind; label: string; ariaLabel: string; onClick: () => void; }): HTMLElement; //#endregion export { IssueCardFocusTrap, IssueCardKind, IssueCardOptions, copyTextToClipboard, getIssueCardCSS, renderIssueCard, renderIssuePill, trapFocusInIssueCard }; //# sourceMappingURL=issue-card.d.ts.map