import type { AgentInstance } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
import type { AdditionalTab, DetailAction } from "../resource-detail/types";
/** Props for {@link AgentDetailView}. */
export interface AgentDetailViewProps {
    /** Organization slug that owns the agent. */
    readonly org: string;
    /** Agent slug (URL-friendly identifier unique within the org). */
    readonly slug: string;
    /**
     * Called when an MCP server reference is clicked.
     * Provides `org` and `slug` of the referenced MCP server so the
     * consumer can wire navigation. When the reference has no explicit
     * org, the agent's own org is used as fallback.
     */
    readonly onMcpServerClick?: (ref: {
        org: string;
        slug: string;
    }) => void;
    /**
     * Called when a skill reference is clicked.
     * Provides `org` and `slug` of the referenced skill.
     */
    readonly onSkillClick?: (ref: {
        org: string;
        slug: string;
    }) => void;
    /**
     * Called once when the agent resource has been fetched successfully.
     * Provides the resource display name for use cases like breadcrumbs,
     * document titles, or analytics — without requiring the consumer to
     * also call {@link useAgent}.
     *
     * Not called on error or not-found states.
     */
    readonly onResourceLoad?: (meta: {
        name: string;
        id: string;
    }) => void;
    /**
     * Called when the user toggles visibility via the inline control.
     * When provided, the header renders an interactive
     * {@link VisibilityToggle} instead of a read-only badge.
     * When omitted, visibility is displayed as a static "Public" pill.
     */
    readonly onVisibilityChange?: (v: ApiResourceVisibility) => void;
    /** `true` while a visibility update RPC is in flight. */
    readonly isVisibilityPending?: boolean;
    /**
     * Primary action rendered as a visible button in the header area.
     * Typically "Edit" for agent detail pages.
     */
    readonly primaryAction?: DetailAction;
    /**
     * Secondary actions rendered in the kebab overflow menu.
     * Typically: Copy ID, Copy slug, Export JSON, Duplicate, Delete.
     */
    readonly actions?: readonly DetailAction[];
    /**
     * Additional tabs to render alongside the built-in "Overview" tab.
     * When provided (with at least one entry), a tab bar appears.
     * When omitted or empty, no tab bar is shown (single-tab suppression).
     *
     * Each entry provides both the tab metadata and the content to render.
     * The SDK manages the tab switching logic internally.
     *
     * @example
     * ```tsx
     * <AgentDetailView
     *   org="acme"
     *   slug="my-agent"
     *   additionalTabs={[
     *     { id: "dependencies", label: "Dependencies", content: <DependencyGraph /> },
     *   ]}
     * />
     * ```
     */
    readonly additionalTabs?: readonly AdditionalTab[];
    /**
     * Controlled active tab ID. When provided together with `onTabChange`,
     * the component operates in controlled mode — the consumer owns tab state.
     * When omitted, the component manages its own internal tab state.
     */
    readonly activeTab?: string;
    /**
     * Controlled tab change handler. When provided together with `activeTab`,
     * the component operates in controlled mode.
     */
    readonly onTabChange?: (tabId: string) => void;
    /**
     * Default active tab ID when in uncontrolled mode.
     * @default "overview"
     */
    readonly defaultTab?: string;
    /**
     * When `true`, fields on the detail view become click-to-edit.
     * Each field saves independently via `stigmer.agent.update()`.
     * @default false
     */
    readonly editable?: boolean;
    /**
     * Called after a successful inline field save with the updated agent.
     * Consumers can use this to refresh breadcrumbs, sync URL state, etc.
     */
    readonly onResourceUpdated?: (agent: import("@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb").Agent) => void;
    /**
     * Called when the user clicks "Create Instance" in the Instances tab.
     * Opens the create instance dialog.
     */
    readonly onCreateInstanceClick?: () => void;
    /**
     * Called when the user clicks an instance row in the Instances tab.
     * Typically opens an instance detail panel.
     */
    readonly onInstanceClick?: (instance: AgentInstance) => void;
    /**
     * Called when the user clicks "Start session" on a specific instance.
     * The session is created pre-bound to the chosen instance's environment.
     */
    readonly onInstanceStartSessionClick?: (instance: AgentInstance) => void;
    /**
     * Called when the user clicks "Delete" on a specific instance.
     */
    readonly onInstanceDeleteClick?: (instance: AgentInstance) => void;
    /**
     * Increment this value to trigger a refetch of the instance list.
     * Useful after externally creating or deleting an instance.
     */
    readonly instancesRefreshKey?: number;
    /** Additional CSS classes for the root container. */
    readonly className?: string;
}
/**
 * Operational detail hub for an Agent blueprint.
 *
 * Fetches the agent via {@link useAgent} internally and renders its
 * full configuration inside a {@link ResourceDetailShell}: a
 * standardized header with action bar, followed by structured content
 * sections (instructions, MCP server usages, skills, sub-agents, and
 * environment variables). Sections with no data are omitted entirely
 * — reducing visual noise per Nielsen heuristic #8.
 *
 * The action bar transforms this from a read-only view into an
 * operational hub. Actions are provided by the consumer via
 * `primaryAction` and `actions` props.
 *
 * Handles loading, error, and not-found states automatically.
 * Zero Console dependencies — safe for platform builder embedding.
 * All visual properties flow through `--stgm-*` design tokens.
 *
 * @example
 * ```tsx
 * // Minimal — self-contained, fetches its own data
 * <AgentDetailView org="acme" slug="pr-review-agent" />
 * ```
 *
 * @example
 * ```tsx
 * // Operational hub with actions in a Console page
 * <AgentDetailView
 *   org={org}
 *   slug={slug}
 *   primaryAction={{ id: "edit", label: "Edit", onAction: handleEdit }}
 *   actions={[
 *     { id: "copy-id", label: "Copy ID", onAction: () => copyId(id) },
 *     { id: "delete", label: "Delete", variant: "destructive", onAction: handleDelete },
 *   ]}
 *   onMcpServerClick={({ org, slug }) => navigateToDetail("mcp-servers", org, slug)}
 *   onSkillClick={({ org, slug }) => navigateToDetail("skills", org, slug)}
 * />
 * ```
 */
export declare function AgentDetailView({ org, slug, onMcpServerClick, onSkillClick, onResourceLoad, onVisibilityChange, isVisibilityPending, primaryAction, actions, additionalTabs, activeTab, onTabChange, defaultTab, editable, onResourceUpdated, onCreateInstanceClick, onInstanceClick, onInstanceStartSessionClick, onInstanceDeleteClick, instancesRefreshKey, className, }: AgentDetailViewProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=AgentDetailView.d.ts.map