import { type ReactNode } from "react";
import type { ResourceRef } from "@stigmer/sdk";
import type { UseGitHubConnectionReturn } from "../github/useGitHubConnection";
import type { WorkspaceFileLister } from "../workspace/WorkspaceFileLister";
/** Props for {@link NewSessionViewer}. */
export interface NewSessionViewerProps {
    /** Organization slug. Required for session creation. */
    readonly org: string;
    /** Called after the session and first execution are created. */
    readonly onSessionCreated: (sessionId: string) => void;
    /** Called on error (for toast notifications or other UI feedback). */
    readonly onError?: (message: string) => void;
    /**
     * GitHub connection state for the workspace repo picker.
     * Platform-specific — web passes `useGitHubConnection(org)`,
     * desktop omits it.
     */
    readonly gitHubConnection?: UseGitHubConnectionReturn;
    /** Whether to enable GitHub workspace sources. @default true */
    readonly enableGitHub?: boolean;
    /** Whether to enable local workspace sources. @default false */
    readonly enableLocal?: boolean;
    /**
     * Native folder picker callback for desktop environments.
     * Desktop supplies this via Tauri's dialog plugin.
     */
    readonly onBrowseLocalFolder?: () => Promise<string | null>;
    /**
     * Platform-injected file lister for workspace entries. When provided,
     * each entry in the Setup tab's workspace section renders an
     * expandable file tree. (DD-004 capability injection, DD-011 opt-in.)
     */
    readonly workspaceFileLister?: WorkspaceFileLister;
    /** Agent to auto-select on mount (used for draft flows). */
    readonly initialAgentRef?: ResourceRef;
    /**
     * Pre-bind the new session to a specific `AgentInstance` on mount.
     *
     * Requires `initialAgentRef`. When both are set, the session is created
     * against this exact configured deployment (the env-collection flow is
     * skipped because the instance already binds its environment). Powers the
     * "Start session" action on the Agent detail page's Instances tab.
     */
    readonly initialInstanceId?: string;
    /** Files to auto-attach on mount (used for edit flows). */
    readonly initialAttachments?: File[];
    /** Heading text above the composer. @default "What would you like to work on?" */
    readonly heading?: string;
    /** Placeholder for the composer textarea. */
    readonly placeholder?: string;
    /** Initial number of visible textarea rows. @default 3 */
    readonly initialRows?: number;
    /** Auto-focus the textarea on mount. @default true */
    readonly autoFocus?: boolean;
    /**
     * Slot for host-injected actions rendered below the composer
     * (e.g., submit error messages). Keeps the SDK organism unopinionated
     * about Console-specific error rendering (DD-004).
     */
    readonly footerContent?: ReactNode;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
}
/**
 * Full-featured new-session launcher organism — the pre-session analog
 * of `SessionViewer`.
 *
 * Owns `useNewSessionFlow` internally and composes:
 * - **Centered composer** (primary pane): `SessionComposer` with all
 *   context pickers (agent, workspace, MCP servers, skills)
 * - **SessionInspector** (secondary pane): progressively revealed when
 *   context is attached (workspace/agent/MCP/skills/vars non-empty),
 *   showing only the Setup tab with interactive workspace actions.
 *
 * Framework-agnostic — no Next.js, no Tauri, no routing deps. Host
 * apps inject platform-specific values via props (DD-004/DD-016).
 *
 * @example
 * ```tsx
 * // Desktop
 * <NewSessionViewer
 *   org={org}
 *   onSessionCreated={(id) => navigate(`/sessions/${id}`)}
 *   onError={(msg) => toast.error(msg)}
 *   enableLocal
 *   onBrowseLocalFolder={browseLocalFolder}
 * />
 *
 * // Web
 * <NewSessionViewer
 *   org={org}
 *   onSessionCreated={navigateToSession}
 *   onError={(msg) => toast.error(msg)}
 *   enableGitHub
 *   gitHubConnection={gitHubConnection}
 * />
 * ```
 */
export declare function NewSessionViewer({ org, onSessionCreated, onError, gitHubConnection, enableGitHub, enableLocal, onBrowseLocalFolder, workspaceFileLister, initialAgentRef, initialInstanceId, initialAttachments, heading, placeholder, initialRows, autoFocus, footerContent, className, }: NewSessionViewerProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=NewSessionViewer.d.ts.map