/**
 * @typedef {object} OutputFile
 * @property {string} contents
 * @property {string} relativePath
 */
/**
 * @typedef {object} GenerateContext
 * @property {import("@compas/stdlib").Logger} log
 * @property {import("./generated/common/types.d.ts").StructureGenerateOptions} options
 * @property {import("./generated/common/types.d.ts").StructureStructure} structure
 * @property {import("./file/context.js").GenerateFileMap} files
 */
/**
 * Execute the generators based on de provided Generator instance and included options.
 *
 * TODO: expand docs
 *
 * - flat structure, no resolved references
 * - Preprocess everything
 * - talk about caching
 * - targetLanguageSwitch & targetCustomSwitch
 *
 * @param {import("./generator.js").Generator} generator
 * @param {import("./generated/common/types.js").StructureGenerateOptions} options
 * @returns {Array<OutputFile>}
 */
export function generateExecute(generator: import("./generator.js").Generator, options: import("./generated/common/types.js").StructureGenerateOptions): Array<OutputFile>;
/**
 * Write output files if an output directory is provided
 *
 * @param {GenerateContext} generateContext
 * @param {Array<OutputFile>} outputFiles
 */
export function generateWriteOutputFiles(generateContext: GenerateContext, outputFiles: Array<OutputFile>): void;
export type OutputFile = {
    contents: string;
    relativePath: string;
};
export type GenerateContext = {
    log: import("@compas/stdlib").Logger;
    options: import("./generated/common/types.d.ts").StructureGenerateOptions;
    structure: import("./generated/common/types.d.ts").StructureStructure;
    files: import("./file/context.js").GenerateFileMap;
};
