import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
import type { ApplyResourceResult } from "../library/useApplyResource";
/** Props for {@link ArtifactsWidget}. */
export interface ArtifactsWidgetProps {
    /**
     * All executions for the current session — both completed and
     * actively streaming. The widget aggregates artifacts across every
     * execution, deduplicates by `sandbox_path` (latest wins), and
     * sorts alphabetically by name.
     *
     * Renders nothing when the list is empty or no execution has
     * artifacts.
     */
    readonly executions: readonly AgentExecution[];
    /** Organization slug for the "Apply to [org]" CTA in the preview modal. */
    readonly org: string;
    /**
     * Called after a resource is successfully applied or a skill package
     * is pushed from the preview modal. The consumer can use this for
     * post-apply behavior such as showing a toast or navigating to the
     * Library.
     */
    readonly onApplied?: (result: ApplyResourceResult) => void;
    /** Additional CSS classes for the root element. */
    readonly className?: string;
}
/**
 * Right-sidebar widget that surfaces all artifacts produced during a
 * session as a unified, alphabetically-sorted file listing.
 *
 * Artifacts from multiple executions are aggregated and deduplicated
 * by `sandbox_path` (latest execution wins), presenting the user with
 * a file-explorer-like view of the conversation's output — no
 * execution/turn concepts are exposed.
 *
 * Composes {@link ArtifactCard} (summary + detection badges) with
 * {@link ArtifactPreviewModal} (full content review + Apply/Push CTA).
 * The card's "Preview" action opens the modal; the modal is the sole
 * location for Apply/Push actions (review-before-apply pattern).
 *
 * Returns `null` when the executions list is empty or no execution
 * has artifacts, matching the conditional-render pattern of
 * {@link ExecutionProgress} and {@link UsageWidget}.
 *
 * Renders without card chrome — each {@link ArtifactCard} provides its
 * own border and padding. The consumer controls the container styling
 * (or places the widget directly in a flex/grid layout).
 *
 * All visual properties flow through `--stgm-*` tokens.
 *
 * @example
 * ```tsx
 * const conv = useSessionConversation(sessionId, org);
 *
 * <ArtifactsWidget
 *   executions={[
 *     ...conv.completedExecutions,
 *     ...(conv.activeStreamExecution ? [conv.activeStreamExecution] : []),
 *   ]}
 *   org={activeOrg}
 *   onApplied={(result) => toast(`${result.kind} applied`)}
 * />
 * ```
 *
 * @see {@link ArtifactCard} — compact summary card per artifact
 * @see {@link ArtifactPreviewModal} — full preview with Apply/Push CTA
 * @see {@link useSessionArtifacts} — headless session-level artifact aggregation hook
 * @see {@link useExecutionArtifacts} — headless single-execution artifact extraction hook
 */
export declare function ArtifactsWidget({ executions, org, onApplied, className, }: ArtifactsWidgetProps): import("react/jsx-runtime").JSX.Element | null;
//# sourceMappingURL=ArtifactsWidget.d.ts.map