import { type CodeGenOpts, type ICodeGen, type TypeColl } from "./api.js";
export declare const DEFAULT_CODEGEN_OPTS: CodeGenOpts;
/**
 * Takes a type collection and analyzes each analyzed to compute individual
 * alignments and sizes.
 *
 * @remarks
 * This function is idempotent and called automatically by
 * {@link generateTypes}. Only exported for dev/debug purposes.
 *
 * @param coll
 *
 * @internal
 */
export declare const prepareTypes: (coll: TypeColl, opts: CodeGenOpts) => TypeColl;
/**
 * Code generator main entry point. Takes an object of {@link TopLevelType}
 * definitions, an actual code generator implementation for a single target
 * language and (optional) global codegen options. Returns generated source code
 * for all given types as a single string.
 *
 * @remarks
 * Before actual code generation the types are first analyzed to compute their
 * alignments and sizes. This is only ever done once (idempotent), even if
 * `generateTypes()` is called multiple times for different target langs.
 *
 * @param coll
 * @param codegen
 * @param opts
 */
export declare const generateTypes: (coll: TypeColl, codegen: ICodeGen, opts?: Partial<CodeGenOpts>) => string;
//# sourceMappingURL=codegen.d.ts.map