import type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
/** Props for {@link PlanArtifactCard}. */
export interface PlanArtifactCardProps {
    /** Execution that produced the plan — used to fetch the plan content. */
    readonly executionId: string;
    /** The published `plan.md` artifact (from `findPlanArtifact`). */
    readonly artifact: ExecutionArtifact;
    /**
     * The plan's title (its leading `# H1`). The card is the plan's compact
     * stand-in in the thread, so the title is what makes it recognizable.
     * Falls back to "Plan" when omitted.
     */
    readonly title?: string;
    /**
     * Organization slug. Required for the open-in-modal fallback (the shared
     * {@link ArtifactPreviewModal} uses it for its detection/apply pipeline and
     * to fetch the content). When omitted, that fallback is hidden — the
     * prominent "Build" action and the download icon remain.
     */
    readonly org?: string;
    /** Called when the user clicks "Build". Hidden when omitted. */
    readonly onImplement?: () => void;
    /**
     * Opens the plan in the session panel's plan document tab — the
     * side-by-side review/refine surface. When provided it REPLACES the
     * modal-based open fallback (one review affordance, not two). When
     * omitted (hosts without a session panel) the same "Open plan" icon
     * opens the preview modal instead.
     */
    readonly onOpenPlan?: () => void;
    /** Disables the primary CTA (e.g., while an execution is active). */
    readonly disabled?: boolean;
    /** When true, the primary button reads "Starting build…" (upload in flight). */
    readonly buildPending?: boolean;
    /** Additional CSS classes for the root element. */
    readonly className?: string;
}
/**
 * The compact plan card — a completed Plan turn's sole representation in the
 * thread. The plan document itself lives in the session panel's plan tab
 * (`PlanEditor`), Cursor-style: chat carries a recognizable, actionable card;
 * the panel carries the document.
 *
 * Anatomy: a document-style identity block (plan icon, the plan's title, a
 * `<name> · size` meta line) with the actions trailing — open, copy, and
 * download as icon-only secondaries (labelled via `aria-label`/`title`) and
 * one prominent, themeable primary, **Build** — so the next step is
 * unmistakable.
 *
 * Action-label rule (shared with `PlanStreamingCard`, which keeps its
 * labelled "Open plan"): a lone secondary keeps its text label; a row of
 * secondaries competing with a primary collapses to icons, so the primary
 * carries the card's one visible verb.
 *
 * Only the LATEST plan's card carries `onImplement`; a superseded plan's card
 * is review-only (its `onOpenPlan` opens the document read-only), so a stale
 * plan can never be implemented by accident.
 *
 * All visual properties flow through `--stgm-*` tokens; the component is
 * self-contained and embeddable.
 */
export declare const PlanArtifactCard: import("react").NamedExoticComponent<PlanArtifactCardProps>;
//# sourceMappingURL=PlanArtifactCard.d.ts.map