/**
 * Structured logger for SocratiCode MCP server.
 * Outputs JSON-structured log lines to stderr (stdout is reserved for MCP JSON-RPC).
 * Also forwards log entries as MCP notifications/message so hosts like Cline
 * can display them in their UI.
 *
 * When SOCRATICODE_LOG_FILE is set to an absolute path, all log entries are
 * also appended to that file — useful for debugging when the MCP host doesn't
 * surface log notifications.
 */
export type LogLevel = "debug" | "info" | "warn" | "error";
/** MCP spec levels — "warning" is the spec spelling (our "warn"). */
type McpLogLevel = "debug" | "info" | "warning" | "error";
/**
 * Override the active log level. Intended for tests so they don't depend on
 * `SOCRATICODE_LOG_LEVEL` from the host shell. Production callers normally
 * leave this alone and rely on the env-derived initial level.
 */
export declare function setLogLevel(level: LogLevel): void;
/** Get the active log level. Useful for tests asserting their setup. */
export declare function getLogLevel(): LogLevel;
type LogSenderFn = (params: {
    level: McpLogLevel;
    logger: string;
    data: string;
}) => void;
/**
 * Register a function that forwards log entries as MCP notifications/message.
 * Called once from index.ts immediately after `new McpServer(...)`.
 */
export declare function setMcpLogSender(fn: LogSenderFn): void;
export declare const logger: {
    debug(message: string, context?: Record<string, unknown>): void;
    info(message: string, context?: Record<string, unknown>): void;
    warn(message: string, context?: Record<string, unknown>): void;
    error(message: string, context?: Record<string, unknown>): void;
};
export {};
//# sourceMappingURL=logger.d.ts.map