/**
 * `<agent-suggestions-ui>` — Row of follow-up suggestion chips presented under an agent response.
Each suggestion is a <button-ui> child the user can tap to send the
text back as the next prompt. Composes <button-ui> with chip-style
visual treatment; the variant + size props cascade to children. Use
to lower input friction at the bottom of a chat response; not for
permanent navigation (that's <nav-ui>).

 *
 * @see https://ui-kit.exe.xyz/site/components/agent-suggestions
 *
 * Type declarations generated by scripts/build/dts-codegen.mjs from
 * the component's `.a2ui.json` sidecar(s). Edit the source `.yaml`,
 * run `npm run build:components`, then `npm run codegen:dts` to
 * regenerate; or hand-author this file fully if rich event types are
 * needed beyond what the yaml `events:` block can express.
 */

import { UIElement } from '../../core/element.js';

export interface AgentSuggestionsSuggestionSelectEventDetail {
  /** Index of the selected suggestion. */
  index: number;
  /** Suggestion label text. */
  label: string;
  /** Suggestion prompt content. */
  prompt: string;
}

export type AgentSuggestionsSuggestionSelectEvent = CustomEvent<AgentSuggestionsSuggestionSelectEventDetail>;

export class UIAgentSuggestions extends UIElement {
  /** Disable all chips. */
  disabled: boolean;
  /** sm | md */
  size: string;
  /** outline | ghost | subtle */
  variant: string;

  addEventListener<K extends keyof HTMLElementEventMap>(
    type: K,
    listener: (this: UIAgentSuggestions, ev: HTMLElementEventMap[K]) => unknown,
    options?: boolean | AddEventListenerOptions,
  ): void;
  addEventListener(type: 'suggestion-select', listener: (ev: AgentSuggestionsSuggestionSelectEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
}
