import type { FocusState, FocusShift } from '../types/index.js';
/**
 * Sets the current focus for a session.
 * Call this when the user declares what they are working on.
 */
export declare function setFocus(sessionId: string, focus: FocusState): void;
/**
 * Returns the current focus for a session, or undefined if none is set.
 */
export declare function getFocus(sessionId: string): FocusState | undefined;
/**
 * Clears the focus for a session (e.g., when user explicitly changes objective).
 */
export declare function clearFocus(sessionId: string): void;
/**
 * Checks whether a new request is aligned with the current session focus.
 * Returns a FocusShift descriptor if drift is detected, or null if on-topic.
 *
 * @param sessionId - The session / project identifier.
 * @param requestText - The incoming request description.
 * @param requestedTool - The tool being called (used for whitelist check).
 */
export declare function checkFocusDrift(sessionId: string, requestText: string, requestedTool?: string): FocusShift | null;
/**
 * Parses a "change focus" directive from a request string.
 * Returns the new objective text, or null if no directive found.
 */
export declare function parseChangeFocusDirective(request: string): string | null;
/**
 * Returns the number of sessions currently tracked (for testing / debug).
 */
export declare function getActiveFocusCount(): number;
//# sourceMappingURL=focus-tracker.d.ts.map