import { type CSSProperties, type ReactNode } from 'react'; import type { BoardTicket } from './types'; /** How solid the card under the pointer is. Jira's look: carried, not lifted off * the page entirely. */ export declare const DRAG_PREVIEW_OPACITY = 0.9; export interface TicketCardBodyProps { ticket: BoardTicket; columnColor?: string; renderAssignSlot?: (ticket: BoardTicket) => ReactNode; /** Approval callbacks receive the request id directly (the draggable * `TicketCard` adapts its own `(ticketId, requestId)` signature onto these). */ onApprove?: (requestId?: string) => void | Promise; onReject?: (requestId?: string) => void | Promise; } /** The card's inner content: title + device/org, priority + assignees, tags, * timestamp, "New Message", and the approval row. Pure — driven only by props. */ export declare function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }: TicketCardBodyProps): import("react").JSX.Element; export interface TicketCardViewProps extends TicketCardBodyProps { className?: string; /** Merged over the shell's own — the board uses it to fade the copy it leaves * behind and to place the one that follows the pointer. */ style?: CSSProperties; } /** * The exact board `TicketCard` visual, standalone — same shell + `TicketCardBody` * as the draggable card, but registering no drag behaviour, so it renders * anywhere from static props. Use this outside a ``. */ export declare function TicketCardView({ className, style, ...bodyProps }: TicketCardViewProps): import("react").JSX.Element; export interface TicketCardProps { ticket: BoardTicket; columnId: string; columnColor?: string; href?: string; dragDisabled?: boolean; /** The owning column's drop rules. A card is a drop target in its own right, * and Pragmatic does not let a lane's `canDrop` veto its children — so the * rules have to be answered here too, or a blocked lane still accepts a drop * straight onto one of its cards. */ dropDisabled?: boolean; allowedFromColumns?: string[]; renderAssignSlot?: (ticket: BoardTicket) => ReactNode; onApprove?: (ticketId: string, requestId?: string) => void | Promise; onReject?: (ticketId: string, requestId?: string) => void | Promise; } /** Memoized: a drag moves one card, but it re-renders the column lists around * it, and a board carries dozens of cards whose props did not change. Hosts * must pass stable `renderAssignSlot` / `onApprove` / `onReject` (useCallback) * for this to bite — an inline arrow re-renders every card on every keystroke * anywhere in the page. */ export declare const TicketCard: import("react").NamedExoticComponent; //# sourceMappingURL=ticket-card.d.ts.map