/** * Configuration management for NeuBird MCP Server * Loads and validates environment variables and provides application constants * * Supports both NEUBIRD_* (preferred) and HAWKEYE_* (legacy) env var prefixes. * NEUBIRD_* takes precedence when both are set. */ /** * Get the tool name prefix. Defaults to 'neubird'. * Set NEUBIRD_TOOL_PREFIX=hawkeye for backward compatibility. */ export declare function getToolPrefix(): string; export interface NeuBirdConfig { email: string; password: string; baseUrl: string; uiBaseUrl: string; bearerToken?: string; defaultProjectUuid?: string; defaultOrganizationUuid: string; defaultTimeframe: string; enableStreaming: boolean; maxPollAttempts: number; pollIntervalMs: number; tokenRefreshBufferMs: number; projectCacheTtlMs: number; serverName: string; serverVersion: string; toolPrefix: string; } export type HawkeyeConfig = NeuBirdConfig; /** * Load and validate configuration. * * Credential resolution order (stdio mode): * 1. NEUBIRD_ / HAWKEYE_ env vars (preserved for server-mode / K8s deploys). * 2. ~/.config/neubird/neubird.json (or profile variant) written by * `neubird login` — lets plugin entries spawn without an env block. * 3. Error. * * HTTP mode does not use file fallback; credentials come from request headers. */ export declare function loadConfig(): NeuBirdConfig; /** * Get the global configuration instance */ export declare function getConfig(): NeuBirdConfig; /** * Update the base URL for NeuBird API at runtime * This allows switching between different NeuBird instances * @param newBaseUrl The new base URL (e.g., "https://prod.app.neubird.ai/api") * @returns The updated configuration */ export declare function setBaseUrl(newBaseUrl: string): NeuBirdConfig; /** * Get the current base URL */ export declare function getCurrentBaseUrl(): string; /** * Get the current UI base URL */ export declare function getCurrentUiBaseUrl(): string; /** * Constants used throughout the application */ export declare const CONSTANTS: { readonly ENDPOINTS: { readonly LOGIN: "/v1/user/login"; readonly PROJECTS: "/v1/project"; readonly SESSION_LIST: "/v1/inference/session/list"; readonly SESSION_CREATE: "/v1/inference/new_session"; readonly SESSION_PROMPT: "/v1/inference/session"; readonly SESSION_INSPECT: "/v1/inference/session/inspect"; readonly SESSION_REPORT: "/v1/inference/session_report"; readonly SESSION_SUMMARY: "/v1/inference/session/summary"; readonly INCIDENT_REPORT: "/v1/inference/incident_report"; }; readonly HEADERS: { readonly CONTENT_TYPE: "application/json"; readonly ACCEPT: "application/json"; readonly CLIENT_IDENTIFIER: "mcp-server"; }; readonly TIMEOUTS: { readonly DEFAULT_REQUEST: 30000; readonly LONG_REQUEST: 60000; readonly AUTH_REQUEST: 30000; }; readonly RETRY: { readonly MAX_ATTEMPTS: 3; readonly BACKOFF_MS: 1000; readonly BACKOFF_MULTIPLIER: 2; }; };