import { ValueOf } from '@il2js/core';
import { CodegenApi, TargetOptions, Targets } from './Targets';
import { TargetOutputOptions } from './Targets/TargetOutputOptions';
import { Il2CppTypeDefinitionInfo } from './Types';
import { TypeImport } from './TypeRegistry';
import { IGameAssembly } from './IGameAssembly';
export interface CodegenOptions {
    gasm: IGameAssembly;
    targets: [ValueOf<typeof Targets>['targetName'], TargetOptions][];
    output: TargetOutputOptions;
    types?: (string | TypeImport)[];
    force?: boolean;
    api?: CodegenApi;
    optimize?: boolean;
    progressCallback?: (n: number, m: number, label: string, item?: Il2CppTypeDefinitionInfo) => void;
}
export declare function codegen({ gasm, output, targets, types, force, progressCallback, api, optimize, }: CodegenOptions): Promise<void>;
