import type { UseWorkspaceEntriesReturn } from "./useWorkspaceEntries";
import type { UseGitHubConnectionReturn } from "../github/useGitHubConnection";
/** Props for {@link WorkspaceEditor}. */
export interface WorkspaceEditorProps {
    /** Workspace state from {@link useWorkspaceEntries}. */
    readonly workspace: UseWorkspaceEntriesReturn;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
    /** Disables all add/remove interactions. */
    readonly disabled?: boolean;
    /** GitHub connection state. When provided, enables the GitHub repo picker. */
    readonly gitHubConnection?: UseGitHubConnectionReturn;
    /** Enable the "Connect GitHub" action. Default: true. */
    readonly enableGitHub?: boolean;
    /**
     * Enable the "Browse Folder" action.
     *
     * The action is only functional when `runnerId` is also provided,
     * since the file browser requires a connected runner to query.
     * When `runnerId` is null (Auto selected), the action is disabled.
     */
    readonly enableLocal?: boolean;
    /**
     * ID of the runner to use for filesystem browsing.
     *
     * When provided together with `enableLocal`, the "Browse Folder"
     * action drills into a {@link RunnerFileBrowser} that queries the
     * runner's filesystem via the `ListDirectory` command.
     */
    readonly runnerId?: string | null;
    /**
     * Native folder picker callback for desktop environments.
     *
     * When provided alongside `runnerId`, renders an "Open system dialog"
     * button in the Browse Folder drill-in view. Desktop-only enhancement.
     */
    readonly onBrowseLocalFolder?: () => Promise<string | null>;
    /**
     * Display name of the currently selected runner.
     * Passed through to {@link RunnerFileBrowser} for the context header.
     */
    readonly runnerName?: string;
    /**
     * Hostname of the runner's machine (e.g. "Alice's MacBook Pro").
     * Passed through to {@link RunnerFileBrowser} for the context header.
     */
    readonly runnerHostname?: string;
}
/**
 * Styled component for managing workspace entries with a flat-list
 * layout and drill-in sub-views.
 *
 * The default view shows:
 * 1. Current workspace entries (with remove buttons)
 * 2. Action items: "Browse Folder" and "Connect GitHub"
 *
 * Each action drills into a sub-view (file browser or GitHub picker)
 * with a back button to return to the list. This follows the same
 * progressive-disclosure pattern as the Configure menu.
 *
 * All visual properties flow through `--stgm-*` tokens.
 *
 * @example
 * ```tsx
 * function SessionSetup({ org }: { org: string }) {
 *   const workspace = useWorkspaceEntries();
 *   const gh = useGitHubConnection(org);
 *
 *   return (
 *     <WorkspaceEditor
 *       workspace={workspace}
 *       gitHubConnection={gh}
 *       enableGitHub
 *       enableLocal
 *       runnerId={browseRunnerId}
 *     />
 *   );
 * }
 * ```
 */
export declare function WorkspaceEditor({ workspace, className, disabled, gitHubConnection, enableGitHub, enableLocal, runnerId, onBrowseLocalFolder, runnerName, runnerHostname, }: WorkspaceEditorProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=WorkspaceEditor.d.ts.map