import { type Entity } from "../entity/entity"; import { type FilterQuery } from "./types"; /** * Fastify가 파싱한 sonamuFilter 객체를 정규화 * 문자열 값을 적절한 타입(숫자, 불린)으로 변환 * * @example * // URL: ?sonamuFilter[status]=hidden&sonamuFilter[budget][gt]=10000 * // Fastify 파싱 결과: * const rawFilter = { status: "hidden", budget: { gt: "10000" } }; * * // 정규화: * const normalized = normalizeFilterQuery(rawFilter); * // → { status: "hidden", budget: { gt: 10000 } } * * @param rawFilter Fastify가 파싱한 원본 sonamuFilter 객체 * @returns 타입이 변환된 FilterQuery 객체 */ export declare function normalizeFilterQuery>(rawFilter: unknown): FilterQuery; /** * sonamuFilter를 Entity 기반으로 검증 * * 필터링 불가능한 필드, 지원하지 않는 연산자, 잘못된 enum 값 등을 체크 * * @param filters 검증할 필터 쿼리 * @param entity Entity 객체 * @throws {Error} 검증 실패 시 상세한 에러 메시지와 함께 예외 발생 * * @example * validateSonamuFilters({ status: "active", id: { gte: 1 } }, ProjectEntity); */ export declare function validateSonamuFilters>(filters: FilterQuery | undefined, entity: Entity): void; /** * Enum 값 목록 추출 helper */ export declare function getEnumValues(entity: Entity, enumId: string): string[] | undefined; //# sourceMappingURL=utils.d.ts.map