/**
 * 중앙화된 로깅 시스템
 *
 * MCP 스펙 준수:
 * - MCP 모드: mcpLogger.logServer() 사용 (MCP 스펙 준수)
 * - 일반 모드: stderr.write() 사용
 * - PII 마스킹: 모든 로그 메시지와 메타데이터에 자동 적용
 * - 일관된 logger 이름: MCP 모드에서 'server' 사용
 *
 * 참조:
 * - MCP 스펙: https://spec.modelcontextprotocol.io/specification/server/#logging
 * - PRD 0019: 보안 강화 (Phase 1) - PII 마스킹 강화
 */
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
/**
 * 로깅 메타데이터 스키마
 * MCP 스펙 준수: 공통 필드 포함
 *
 * @see LoggingContext, LogMetadataSchema in logging-helpers.ts
 */
export interface LogMetadataSchema {
    agentId?: string;
    slot?: 'A' | 'B' | 'C';
    memoryId?: string;
    traceId?: string;
    requestId?: string;
    [key: string]: unknown;
}
/**
 * 로깅 메타데이터 검증 결과
 */
export interface LogMetadataValidationResult {
    valid: boolean;
    errors: string[];
    warnings: string[];
}
/**
 * 로깅 메타데이터 검증
 *
 * @param meta 메타데이터 객체
 * @returns 검증 결과
 */
export declare function validateLogMetadata(meta?: Record<string, unknown>): LogMetadataValidationResult;
/**
 * Logger 인터페이스
 *
 * 모든 로거가 구현해야 하는 표준 인터페이스입니다.
 * MCP 모드와 일반 모드를 자동으로 감지하여 적절한 로깅 방식을 사용합니다.
 *
 * @example
 * ```typescript
 * import { logger } from './logger.js';
 *
 * logger.info('User logged in', { userId: 'user123' });
 * logger.error('Database connection failed', { error: 'timeout' });
 * ```
 */
export interface Logger {
    /**
     * 디버그 레벨 로그 출력
     * 개발 및 디버깅 목적으로 사용됩니다.
     *
     * @param message 로그 메시지
     * @param meta 추가 메타데이터 (선택적)
     */
    debug(message: string, meta?: Record<string, unknown>): void;
    /**
     * 정보 레벨 로그 출력
     * 일반적인 정보성 메시지에 사용됩니다.
     *
     * @param message 로그 메시지
     * @param meta 추가 메타데이터 (선택적)
     */
    info(message: string, meta?: Record<string, unknown>): void;
    /**
     * 경고 레벨 로그 출력
     * 잠재적인 문제나 경고 상황에 사용됩니다.
     *
     * @param message 로그 메시지
     * @param meta 추가 메타데이터 (선택적)
     */
    warn(message: string, meta?: Record<string, unknown>): void;
    /**
     * 에러 레벨 로그 출력
     * 오류나 예외 상황에 사용됩니다.
     *
     * @param message 로그 메시지
     * @param meta 추가 메타데이터 (선택적)
     */
    error(message: string, meta?: Record<string, unknown>): void;
}
/**
 * 중앙화된 로거 인스턴스
 *
 * MCP 모드와 일반 모드를 자동으로 감지하여 적절한 로깅 방식을 사용합니다.
 * 모든 로그 메시지와 메타데이터에 PII 마스킹이 자동으로 적용됩니다.
 *
 * 중복 로그 방지:
 * - MCP 모드와 일반 모드가 동시에 작동하지 않도록 보장
 * - isMCPMode()가 정확히 감지되도록 개선
 *
 * 사용법:
 * ```typescript
 * import { logger } from './logger.js';
 *
 * logger.info('Operation completed', { operationId: 'op123' });
 * logger.error('Failed to process request', { error: 'timeout' });
 * ```
 *
 * MCP 모드:
 * - mcpLogger.logServer()를 사용하여 MCP 프로토콜 준수
 * - logger 이름: 'server'
 * - notifications/message 형식 자동 처리
 *
 * 일반 모드:
 * - stderr.write()를 사용하여 표준 에러 출력
 * - 구조화된 텍스트 형식 (ISO 8601 타임스탬프 + 레벨 + 메시지 + JSON 메타데이터)
 */
/**
 * CLI 모드에서 로그 억제 (REQ-IO-4, AC8).
 * MEMENTO_CLI_QUIET=1 이면 stdout/stderr에 로그를 남기지 않음.
 */
export declare function isCliQuiet(): boolean;
export declare const logger: Logger;
//# sourceMappingURL=logger.d.ts.map