import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
import type { SurfaceRailView } from "../workspace/WorkspaceSurface.js";
import type { SelectedThreadItem } from "../internal/store/selection-store.js";
import type { ApplyResourceResult } from "../library/useApplyResource.js";
import { type SetupTabProps } from "./facets/SetupTab.js";
/** Options for {@link useSessionRailViews}. */
export interface UseSessionRailViewsOptions {
    /** All executions in the session — drives Changes/Artifacts/Usage. */
    readonly allExecutions: readonly AgentExecution[];
    /** Organization slug for artifact Apply CTA. */
    readonly org: string;
    /** Session configuration for the Config facet. */
    readonly sessionConfig: SetupTabProps | undefined;
    /** Currently selected thread item — surfaces the Inspect facet. */
    readonly selectedItem: SelectedThreadItem | null;
    /** Called after a resource is applied from the Artifacts facet. */
    readonly onApplied?: (result: ApplyResourceResult) => void;
    /** Implement a plan — the Artifacts facet's preview action for `plan.md`. */
    readonly onImplementPlan?: () => void;
    /**
     * Open a plan in the panel's plan document tab. Routed to the Artifacts
     * facet so clicking `plan.md` there opens the editor-area document instead
     * of the preview modal.
     */
    readonly onOpenPlan?: (executionId: string) => void;
    /**
     * Whether to offer the execution-derived facets (Changes / Artifacts /
     * Usage). The launcher passes `false` — before a session exists there are no
     * executions to aggregate, so only Config applies.
     * @default true
     */
    readonly includeExecutionFacets?: boolean;
}
/**
 * Composes the session facets (Config / Changes / Artifacts / Usage / Inspect)
 * as {@link SurfaceRailView}s for the workspace surface's activity rail.
 *
 * This is the session-domain half of the unified panel: the surface stays a
 * domain-pure workspace organism and these views are injected into its rail
 * (DD-004 composition). Contextual visibility mirrors the retired inspector's
 * tab rules — Changes/Artifacts surface only when data exists (with count
 * badges), Inspect only when a thread item is selected.
 */
export declare function useSessionRailViews({ allExecutions, org, sessionConfig, selectedItem, onApplied, onImplementPlan, onOpenPlan, includeExecutionFacets, }: UseSessionRailViewsOptions): readonly SurfaceRailView[];
//# sourceMappingURL=useSessionRailViews.d.ts.map