import type { ParsedClangAstItem, ParsedClangAstItem_Alias, ParsedClangAstItem_Builtin, ParsedClangAstItem_Enum, ParsedClangAstItem_FuncDecl, ParsedClangAstItem_FuncPointer, ParsedClangAstItem_Pointer, ParsedClangAstItem_Struct, ParsedClangAstResult } from "./parser"; type GenOpts = { identWidth: number; readers: boolean; writers: boolean; helpers: boolean; funcDeclTypes: boolean; funcWrappers: boolean; funcSymbolsImport: boolean; funcSymbolsImportLibPathCode: (out: string[]) => string; funcSymbolsImportLibPath: string; throwOnErrors: boolean; structSizes: boolean; structAllocs: boolean; }; export declare class CodeGen { out: string[]; constructor(opts?: Partial); readonly opts: GenOpts; failedSymbols: Set; tryDo(f: () => T, params: { message?: string; failedSymbol: string; }): T | Error; private writeLn; private mapFFITypeToTS; private mapFFITypeToReadFn; generateImports(out: string[]): void; generateHelpers(out: string[]): void; getFFIType(d: ParsedClangAstItem): string; generateBuiltin(out: string[], name: string, d: ParsedClangAstItem_Builtin): void; generateEnum(out: string[], name: string, d: ParsedClangAstItem_Enum): void; generateAlias(out: string[], name: string, d: ParsedClangAstItem_Alias): void; generatePointer(out: string[], name: string, d: ParsedClangAstItem_Pointer): void; generateFuncPointer(out: string[], name: string, d: ParsedClangAstItem_FuncPointer): void; inlineFuncDeclFFIType(d: ParsedClangAstItem_FuncDecl): string; inlineTsPointerType(d: ParsedClangAstItem_Pointer): string; inlineTsType(d: ParsedClangAstItem): string; inlineFuncDeclType(d: ParsedClangAstItem_FuncDecl): string; generateFuncDecl(out: string[], name: string, d: ParsedClangAstItem_FuncDecl): void; generateStruct(out: string[], name: string, d: ParsedClangAstItem_Struct): void; generateFuncSymbolImports(parsed: ParsedClangAstResult, out: string[]): void; generateFuncWrapper(out: string[], name: string, d: ParsedClangAstItem_FuncDecl): void; generateAll(parsed: ParsedClangAstResult, out?: string[]): void; writeToFile(filePath: string): Promise; } export {};