/**
 * Controller for workbook scope selection in interactive mode.
 *
 * Before each user turn, ensureScopeChosen() checks which workbooks are open
 * and prompts the user to select a scope when multiple workbooks are available.
 * Automatically re-prompts when the set of open workbooks changes.
 */
import { type WorkbookConnectionState, type WorkbookScopeStateRef } from '../../app/workbook-scope.js';
import type { WorkbookScopeSelection } from '../components/selectors/workbook-scope-selector.js';
export type WorkbookScopeSelector = (workbookNames: string[], initialSelection: WorkbookScopeSelection) => Promise<WorkbookScopeSelection | undefined>;
export interface WorkbookScopeDeps {
    fetchState: () => Promise<WorkbookConnectionState>;
}
/**
 * Manages the workbook scope lifecycle: fetch open workbooks, detect changes,
 * prompt the user via a selector overlay, and persist the choice in stateRef.
 */
export declare class WorkbookScopeController {
    private readonly stateRef;
    private readonly showSelector;
    private readonly deps;
    constructor(stateRef: WorkbookScopeStateRef | undefined, showSelector: WorkbookScopeSelector, deps: WorkbookScopeDeps);
    /** Ensure a workbook scope has been chosen, prompting the user if needed. */
    ensureScopeChosen(): Promise<void>;
    /** Clear the current scope, forcing a re-prompt on next turn. */
    reset(): void;
}
//# sourceMappingURL=workbook-scope-controller.d.ts.map