import { type ReactNode } from "react";
/**
 * The catalog variant of AgentCard — identity + capability summary for
 * the agent catalog browse experience. Other variants ship as sibling
 * components (AgentStatusCard, AgentProviderCard, etc.) to keep the API
 * narrow and the typing precise per-shape.
 */
/** Agent runtime states. Added `success` in v1.1. Re-mapped `paused` to
 * a neutral surface (was status-pending which read as warning-in-progress). */
export type AgentStatus = "idle" | "running" | "success" | "failed" | "paused" | "draft";
/** DAG node taxonomy — drives the avatar surface color so the catalog
 * grid color-codes agents by their role at a glance. */
export type AgentType = "trigger" | "action" | "transform" | "condition" | "io";
/** Three sizes for different surfaces — sm for compact lists, md for catalog
 * grids (default), lg for hero / featured placements. */
export type AgentCardSize = "sm" | "md" | "lg";
/** Density modifier — comfortable matches the default; dense tightens
 * vertical rhythm for high-information surfaces (admin tables, etc.). */
export type AgentCardDensity = "comfortable" | "dense";
export interface AgentCardProps {
    /** Agent display name. */
    name: ReactNode;
    /** Optional role / one-line description (e.g. "Routing", "Schema drift detector"). */
    role?: ReactNode;
    /** Avatar / glyph for the agent. Defaults to the first character of `name`. */
    avatar?: ReactNode;
    /** Model identifier (e.g. "claude-opus-4-7", "gpt-4o"). */
    model?: string;
    /** Runtime status. Drives the right-aligned status pill. */
    status?: AgentStatus;
    /** Agent type — colors the avatar surface per the DAG node taxonomy. */
    agentType?: AgentType;
    /** Tool count badge. */
    toolCount?: number;
    /** Tags rendered as a chip cluster below the meta row. */
    tags?: readonly string[];
    /** Maximum number of tag chips to render before collapsing the rest
     * into a `+N` overflow chip. Defaults are size-aware (sm: 2, md: 3,
     * lg: 4). Pass `Infinity` or `0` to render every tag without overflow. */
    maxTags?: number;
    /** When the agent was last used. Accepts a Date or ISO string. Displayed as relative time. */
    lastUsedAt?: Date | string;
    /** Size variant. */
    size?: AgentCardSize;
    /** Density modifier. */
    density?: AgentCardDensity;
    /** Hover affordance. Use when the card is clickable. */
    interactive?: boolean;
    /** Renders a checkbox in the top-left for multi-select grids. */
    selectable?: boolean;
    /** Controlled selection state. Pair with `onSelectChange`. */
    selected?: boolean;
    /** Fires when the checkbox is toggled. */
    onSelectChange?: (selected: boolean) => void;
    /** Loading skeleton state — replaces content with shimmer blocks. */
    loading?: boolean;
    /** Error state — shows the message in place of content. */
    error?: string;
    /** Optional retry handler shown alongside the error message. */
    onRetry?: () => void;
    /** Actions slot (right side under status). */
    actions?: ReactNode;
    /** Stats slot at the bottom (e.g. runs / success rate). */
    stats?: ReactNode;
    /** Click handler. When set, the card becomes role="button" with Enter/Space keyboard activation. */
    onClick?: () => void;
    className?: string;
    id?: string;
}
export declare const AgentCard: import("react").ForwardRefExoticComponent<AgentCardProps & import("react").RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=AgentCard.d.ts.map