import type { GenOptions, GenResult, RegistryEntry } from './types';
export type { GenOptions, GenResult, RegistryEntry } from './types';
export type { FieldRegistryMeta } from './types';
/**
 * entry 목록에서 checksum 입력용 canonical string을 만든다.
 *
 * JSON 직렬화로 구분자 충돌(field 이름에 `,`·`|` 포함 시)을 방지한다.
 * runtime validator의 `canonicalFromLiveRegistry`와 동일한 규칙이어야 한다.
 */
export declare const canonicalEntries: (entries: RegistryEntry[]) => string;
/** bootstrap stub 파일 내용을 생성 */
export declare const bootstrapStub: () => string;
/**
 * registry entry 목록에서 생성 파일 내용을 만든다.
 *
 * 파일 시스템 scan 순서가 바뀌어도 diff가 흔들리지 않도록 registry key 기준으로 정렬한다.
 */
export declare const renderRegistry: (entries: RegistryEntry[]) => string;
/**
 * consumer project의 concrete field registry를 생성한다.
 *
 * **처리 순서**
 * 1. `tsconfig`로 consumer TypeScript project를 로드한다.
 * 2. migrate 된 `fieldKeys.<name><T>()`와 optional legacy 호출을 스캔한다.
 * 3. TypeScript checker로 `<T>`의 field를 해석한다.
 * 4. 결정적인 registry 내용을 render하고 변경 여부를 반환한다.
 */
export declare const runGen: (opts: GenOptions) => GenResult;
/** 생성 파일과 parent directory를 함께 기록 */
export declare const writeRegistry: (outAbs: string, content: string) => void;
