import type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
/** Props for {@link ArtifactCard}. */
export interface ArtifactCardProps {
    /** The execution artifact to render. */
    readonly artifact: ExecutionArtifact;
    /** ID of the execution that produced this artifact — used for content fetching. */
    readonly executionId: string;
    /**
     * Organization slug — used for skill package detection which fetches
     * `SKILL.md` frontmatter via the artifact content RPC.
     */
    readonly org: string;
    /**
     * Called when the user clicks "Preview". The consumer is responsible
     * for rendering a preview UI (e.g., {@link ArtifactPreviewModal}).
     *
     * When omitted, the Preview action is not rendered.
     */
    readonly onPreview?: (artifact: ExecutionArtifact) => void;
    /**
     * When `true`, another artifact in the list shares the same display
     * `name` but has a different `sandbox_path`. The card renders the
     * parent directory from `sandbox_path` as a muted subtitle for
     * disambiguation.
     *
     * Set by {@link ArtifactsWidget} via {@link useSessionArtifacts}.
     * Defaults to `false`.
     */
    readonly hasNameCollision?: boolean;
    /** Additional CSS classes for the root element. */
    readonly className?: string;
}
/**
 * Renders a single execution artifact as a compact summary card with
 * automatic Stigmer resource detection and a download link.
 *
 * The card's role is **signal and navigate**: it tells the user what
 * the artifact is (file/directory, size, detected resource type) and
 * provides two actions — Preview and Download. The Apply/Push CTA
 * lives exclusively in {@link ArtifactPreviewModal} so the user must
 * review content before acting (review-before-apply pattern).
 *
 * Internally orchestrates the detection pipeline:
 *
 * - **FILE artifacts**: Fetches text content via {@link useArtifactContent},
 *   then detects Agent/McpServer YAML via {@link useDetectStigmerResource}.
 *   Only text files under 256 KB are fetched for detection.
 *
 * - **DIRECTORY artifacts**: Detects skill packages via
 *   {@link useDetectSkillPackage} (checks for `SKILL.md` in the ZIP
 *   archive entries).
 *
 * Detection results are surfaced as a type badge ("Agent detected",
 * "Skill · N files"). Non-Stigmer artifacts render with file info
 * and a download link only — no error messages or "not detected"
 * indicators (detection is silent).
 *
 * @example
 * ```tsx
 * const { artifacts } = useExecutionArtifacts(execution);
 *
 * {artifacts.map((artifact) => (
 *   <ArtifactCard
 *     key={artifact.storageKey}
 *     artifact={artifact}
 *     executionId={execution.metadata!.id}
 *     org={activeOrg}
 *     onPreview={(a) => setPreviewArtifact(a)}
 *   />
 * ))}
 * ```
 *
 * @see {@link ArtifactPreviewModal} — full preview with Apply/Push CTA
 * @see {@link ArtifactsWidget} — container that composes cards + modal
 * @see {@link useExecutionArtifacts} — extracts artifact metadata from an execution
 * @see {@link useArtifactContent} — content-fetching hook (headless alternative)
 * @see {@link useDetectStigmerResource} — YAML resource detection (headless)
 * @see {@link useDetectSkillPackage} — skill package detection (headless)
 */
export declare function ArtifactCard({ artifact, executionId, org, onPreview, hasNameCollision, className, }: ArtifactCardProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=ArtifactCard.d.ts.map