import { SchemaOutputType, Options, ParseSchemaType, TypeScriptCodeOptions } from '../core/types.js';
import SwaggerParser from '@apidevtools/swagger-parser';
import { OpenAPIV3_1 } from 'openapi-types';

/**
 * OpenAPI 스키마 파싱 및 값 생성 로직
 */

/**
 * OpenAPI 스키마를 파싱하여 실제 값을 생성
 */
declare const parseSchema: (schemaValue: OpenAPIV3_1.ReferenceObject | OpenAPIV3_1.SchemaObject, specialSchema: {
    titleSpecial: Record<string, SchemaOutputType>;
    descriptionSpecial: Record<string, SchemaOutputType>;
}, options: Options, outputSchema?: ParseSchemaType) => ParseSchemaType;
/**
 * 참조 스키마를 파싱하여 이름과 값을 반환
 */
declare const refSchemaParser: (ref: string, refs: SwaggerParser["$refs"]) => {
    name: string;
    value: OpenAPIV3_1.SchemaObject;
};
/**
 * 스키마 타입별로 실제 값을 생성하는 함수
 */
declare const valueGenerator: (schemaValue: OpenAPIV3_1.SchemaObject, specialSchema: {
    titleSpecial: Record<string, SchemaOutputType>;
    descriptionSpecial: Record<string, SchemaOutputType>;
}, options: TypeScriptCodeOptions) => ParseSchemaType;

export { parseSchema, refSchemaParser, valueGenerator };
