import type { UseWorkspaceEntriesReturn } from "./useWorkspaceEntries";
import type { UseGitHubConnectionReturn } from "../github/useGitHubConnection";
type ActivePanel = "github" | null;
/** 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. */
    readonly enableLocal?: boolean;
    /**
     * Native folder picker callback for desktop environments.
     *
     * When provided alongside `enableLocal`, renders a "Browse Folder"
     * button that opens the system folder dialog. Desktop-only enhancement.
     */
    readonly onBrowseLocalFolder?: () => Promise<string | null>;
    /**
     * When set, the editor starts with this panel active instead of the
     * default action-list view. Used to skip the intermediate menu when
     * only one source type is available and entries are empty.
     *
     * Ignored when `workspace.entries.length > 0` (the entry list takes
     * precedence as the default view in that case).
     */
    readonly initialPanel?: ActivePanel;
}
/**
 * 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
 *     />
 *   );
 * }
 * ```
 */
export declare function WorkspaceEditor({ workspace, className, disabled, gitHubConnection, enableGitHub, enableLocal, onBrowseLocalFolder, initialPanel, }: WorkspaceEditorProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=WorkspaceEditor.d.ts.map