/**
 * schema-introspection.ts
 *
 * Issue #3 / #4 (2026-05-21) — CLI 가 도구 inputSchema 의 expected type 을 알 수 있도록
 * Zod schema 를 단순 JSON 메타로 변환. 의존성 0 원칙 — `zod-to-json-schema` 미사용.
 *
 * 두 가지 사용처:
 *   1. Issue #3 — parseKeyValueArgs 에서 각 키의 expected type 확인 후 coerce 결정.
 *      예: industryCode: ZodString 이면 "41" 을 string 으로 보존 (Number 변환 X).
 *   2. Issue #4 — tools --json / describe 출력에 properties · required 노출.
 */
import type { z } from "zod";
export declare function unwrapZodType(schema: z.ZodTypeAny): z.ZodTypeAny;
export declare function isOptional(schema: z.ZodTypeAny): boolean;
export type FieldKind = "string" | "number" | "boolean" | "array" | "object" | "enum" | "unknown";
export declare function getFieldKind(schema: z.ZodTypeAny): FieldKind;
export declare function getDescription(schema: z.ZodTypeAny): string | undefined;
export declare function getObjectShape(schema: z.ZodTypeAny): Record<string, z.ZodTypeAny> | null;
export interface FieldMeta {
    type: FieldKind;
    optional: boolean;
    description?: string;
    enumValues?: readonly string[];
    default?: unknown;
    itemsType?: FieldKind;
}
export declare function fieldToMeta(schema: z.ZodTypeAny): FieldMeta;
export interface ToolInputMeta {
    type: "object";
    properties: Record<string, FieldMeta>;
    required: string[];
}
export declare function toolInputToMeta(schema: z.ZodTypeAny): ToolInputMeta;
//# sourceMappingURL=schema-introspection.d.ts.map