import { type ComparisonOperator } from "../database/puri.types"; interface StackFrame { functionName: string | null; filePath: string; lineNumber: number; } interface NaiteTrace { key: string; data: any; stack: StackFrame[]; at: Date; } export type NaiteStore = Map; export type SerializedTrace = { key: string; value: any; filePath: string; lineNumber: number; at: string; }; /** * NaiteQuery 클래스 * 체이닝을 통한 trace 필터링 및 조회 */ export declare class NaiteQuery { private traces; constructor(traces: NaiteTrace[]); private isComparableValue; /** * 파일명으로 필터링 * @param fileName 파일명 (예: "syncer.test.ts") */ fromFile(fileName: string): NaiteQuery; /** * 함수명으로 필터링 * @param funcName 함수명 (includes 체크) * @param options.from 'direct' = 직접 호출만, 'indirect' = 간접 호출만, 'both' = 모두 */ fromFunction(funcName: string, options?: { from: "direct" | "indirect" | "both"; }): NaiteQuery; /** * 데이터 경로 기반 필터링 * @param path radash get 경로 (예: "data.userId") * @param operator 비교 연산자 * @param value 비교값 */ where(path: string, operator: ComparisonOperator | "includes", value: any): NaiteQuery; /** * 전체 데이터 배열 반환 */ result(): any[]; /** * 첫 번째 데이터 반환 */ first(): any | undefined; /** * 마지막 데이터 반환 */ last(): any | undefined; /** * n번째 데이터 반환 */ at(index: number): any | undefined; /** * 원본 trace 배열 반환 (디버깅/NaiteViewer용) */ getTraces(): NaiteTrace[]; } export declare class NaiteClass { t(name: string, value: any): void; /** * key 또는 wildcard 패턴으로 trace 조회 * 항상 NaiteQuery 반환하여 체이닝 가능 */ get(keyPattern: string): NaiteQuery; getAll(): { [key: string]: any; }; /** * 스토어에 들어있던 트레이스를 고대로 꺼내옵니다. * 이때 값들은 모두 직렬화 가능한 상태로 나가게 됩니다. * 테스트 정보와 함께 extensions에 보낼 용도로 만들었습니다. * @returns */ getAllTraces(): SerializedTrace[]; del(key: string): void; createStore(): NaiteStore; } export declare const Naite: NaiteClass; export {}; //# sourceMappingURL=naite.d.ts.map