import type { Skill } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/api_pb";
import type { AdditionalTab, DetailAction } from "../resource-detail/types.js";
/** Props for {@link SkillDetailView}. */
export interface SkillDetailViewProps {
    /** Organization slug that owns the skill. */
    readonly org: string;
    /** Skill slug (URL-friendly identifier unique within the org). */
    readonly slug: string;
    /** Optional version tag or content hash to pin to a specific version. */
    readonly version?: string;
    /**
     * Called once when the skill 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 useSkill}.
     *
     * Not called on error or not-found states.
     */
    readonly onResourceLoad?: (meta: {
        name: string;
        id: string;
    }) => void;
    /**
     * Primary action rendered as a visible button in the header area.
     */
    readonly primaryAction?: DetailAction;
    /**
     * Secondary actions rendered in the kebab overflow menu.
     */
    readonly actions?: readonly DetailAction[];
    /**
     * Additional tabs to render alongside the built-in "Content" 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
     * <SkillDetailView
     *   org="acme"
     *   slug="code-style-guide"
     *   additionalTabs={[
     *     { id: "versions", label: "Versions", content: <VersionTimeline /> },
     *   ]}
     * />
     * ```
     */
    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 "content"
     */
    readonly defaultTab?: string;
    /**
     * Called when the user selects a version in the Versions tab timeline.
     * Provides the version hash for use cases like navigation to a
     * version-specific detail view or triggering a diff comparison.
     */
    readonly onVersionSelect?: (versionHash: string) => void;
    /**
     * When `true`, metadata fields (description, tag) become click-to-edit.
     * Skill content (SKILL.md / artifact) is NOT editable inline — use the upload flow.
     * @default false
     */
    readonly editable?: boolean;
    /**
     * Called after a successful inline field save with the updated skill.
     * Consumers can use this to refresh breadcrumbs, sync URL state, etc.
     */
    readonly onResourceUpdated?: (skill: Skill) => void;
    /** Additional CSS classes for the root container. */
    readonly className?: string;
}
/**
 * Operational detail hub for a Skill knowledge package.
 *
 * Fetches the skill via {@link useSkill} internally and renders its
 * content inside a {@link ResourceDetailShell}: a standardized header
 * with action bar, the SKILL.md content with a source/rendered toggle,
 * and version/provenance information.
 *
 * The SKILL.md content is the primary value of this view — it IS the
 * skill. Users can toggle between rendered markdown and raw source
 * (like GitHub's Preview/Code toggle).
 *
 * 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
 * <SkillDetailView org="acme" slug="code-style-guide" />
 * ```
 *
 * @example
 * ```tsx
 * // Pinned to a specific version tag
 * <SkillDetailView org="acme" slug="code-style-guide" version="stable" />
 * ```
 */
export declare function SkillDetailView({ org, slug, version, onResourceLoad, primaryAction, actions, additionalTabs, activeTab, onTabChange, defaultTab, onVersionSelect, editable, onResourceUpdated, className, }: SkillDetailViewProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=SkillDetailView.d.ts.map