/** * Masking Rule Builder - 마스킹 룰 생성 * * 파라미터 메타데이터와 사용자 설정을 기반으로 * 마스킹 룰을 생성합니다. * * 우선순위: * 1. excludeIndices (제외 설정) - 최우선 * 2. includeIndices (포함 설정) * 3. 자동 감지 (키워드 매칭) */ import { FunctionMetadata } from '../parser/function-parser'; /** * 마스킹 전략 */ export declare enum MaskingStrategy { /** 전체 마스킹 (Primitive 타입) */ FULL = "FULL", /** 객체 내부 특정 키만 마스킹 */ DEEP = "DEEP" } /** * 마스킹 룰 */ export interface MaskingRule { /** 마스킹 대상 인자 인덱스 */ targetIndex: number; /** 마스킹 전략 */ strategy: MaskingStrategy; /** DEEP 전략일 경우 마스킹할 키 목록 */ deepKeys?: string[]; } /** * 함수별 마스킹 Override 설정 */ export interface FunctionMaskingOverride { /** 대상 함수 이름 (문자열 또는 정규식) */ functionName: string | RegExp; /** 무조건 마스킹할 인자 인덱스 */ includeIndices?: number[]; /** 절대 마스킹하지 않을 인자 인덱스 */ excludeIndices?: number[]; } /** * 마스킹 설정 */ export interface MaskingConfig { /** 추가 민감 키워드 (기본 키워드에 추가됨) */ sensitiveKeywords?: string[]; /** 함수별 Override 설정 */ overrides?: FunctionMaskingOverride[]; } /** * 마스킹 룰을 생성합니다. * * @param metadata 함수 메타데이터 * @param functionName 함수 이름 * @param config 마스킹 설정 * @returns 마스킹 룰 배열 */ export declare function buildMaskingRules(metadata: FunctionMetadata, functionName: string, config?: MaskingConfig): MaskingRule[]; /** * 캐시를 사용하여 마스킹 룰을 생성합니다. */ export declare function buildMaskingRulesCached(metadata: FunctionMetadata, functionName: string, config?: MaskingConfig): MaskingRule[]; /** * 룰 캐시를 초기화합니다. */ export declare function clearRuleCache(): void;