/** * Global type definitions for NotebookLM MCP Server */ import type { AuthManager } from "./auth/auth-manager.js"; import type { SessionManager } from "./session/session-manager.js"; /** * Session information returned by the API */ export interface SessionInfo { id: string; created_at: number; last_activity: number; age_seconds: number; inactive_seconds: number; message_count: number; notebook_url: string; } /** * Quota information included in ask_question responses */ export interface QuotaInfo { queries_remaining: number; queries_used_today: number; queries_limit: number; should_stop: boolean; tier: string; warnings: string[]; } /** * Result from asking a question */ export interface AskQuestionResult { status: "success" | "error"; question: string; answer?: string; error?: string; notebook_url: string; session_id?: string; session_info?: { age_seconds: number; message_count: number; last_activity: number; }; quota_info?: QuotaInfo; security_warnings?: string[]; } /** * Tool call result for MCP (generic wrapper for tool responses) */ export interface ToolResult { success: boolean; data?: T | null; error?: string; } export type { Tool } from "@modelcontextprotocol/sdk/types.js"; /** * Options for human-like typing */ export interface TypingOptions { wpm?: number; withTypos?: boolean; } /** * Options for waiting for answers */ export interface WaitForAnswerOptions { question?: string; timeoutMs?: number; pollIntervalMs?: number; ignoreTexts?: string[]; debug?: boolean; } /** * Progress callback function for MCP progress notifications */ export type ProgressCallback = (message: string, progress?: number, total?: number) => Promise; /** * Global state for the server */ export interface ServerState { playwright?: typeof import("patchright"); sessionManager: SessionManager; authManager: AuthManager; }