import { type ButtonHTMLAttributes } from 'react';
export interface ChatTicketItemData {
id: string;
title: string;
ticketNumber: string;
/** Accepts any known ticket status format (ACTIVE, active, ACTION_REQUIRED, etc.) */
status: string;
/** Optional badge label override. If set, the badge text reads this
* (e.g. HubSpot's `pipeline_stage_label` — "New" / "Closed" /
* "Waiting on contact" / "Waiting on version release") while the
* variant + check icon still come from the canonical `status`.
* When omitted, the canonical status's default label is used
* ("Resolved" for closed, "Active" for open, etc.). */
statusLabel?: string;
/** Lifecycle (custom-status) kind — drives canonical-vs-color styling. */
statusKind?: string;
/** Lifecycle (custom-status) hex color, used when the kind isn't canonical. */
statusColor?: string;
category?: string;
timeAgo?: string;
/** Explicit secondary line under the title. When set, it replaces the
* default `ticketNumber • category • timeAgo` composition verbatim, so
* the host decides how the reference reads - the Fae client passes
* `Ticket Number: 165 • 6m ago` (reference labelled but visually
* secondary). An empty string hides the line. */
subtitle?: string;
/** The ticket has activity the customer has not opened yet
* (Figma fae-chat 1-5592): the secondary line and the chevron switch to
* the brand yellow, and the line reads the unread notice unless
* `subtitle` overrides it. The host clears it once the ticket is
* opened, and the reference line comes back. */
unread?: boolean;
/** When set, renders a "Linked work" chip with a wrench icon next to
* the status tag — tells the customer at a glance that an internal
* delivery task is in flight for this ticket, even before they
* expand the row. The label is the linked task's status (e.g.
* "Waiting on version release") so the chip carries the actual
* progress signal, not just a generic marker. */
linkedTaskLabel?: string;
}
export interface ChatTicketItemProps extends Omit, 'onClick'> {
/** Optional while `isLoading` — the skeleton placeholder needs no data. */
ticket?: ChatTicketItemData;
onClick?: (ticketId: string) => void;
/** Render a non-interactive skeleton placeholder sized to a real row. */
isLoading?: boolean;
}
declare const ChatTicketItem: import("react").ForwardRefExoticComponent>;
export { ChatTicketItem };
//# sourceMappingURL=chat-ticket-item.d.ts.map