import { Node, CodeGeneratorRequest_RequestedFile_Import, Field } from 'capnp-es/capnp/schema';
import { ParsedCommandLine } from 'typescript';

interface CodeGeneratorFileContext {
    readonly nodes: Node[];
    readonly imports: CodeGeneratorRequest_RequestedFile_Import[];
    concreteLists: Array<[string, Field]>;
    generatedNodeIds: Set<string>;
    generatedResultsPromiseIds: Set<bigint>;
    tsPath: string;
    codeParts?: string[];
    constructor: any;
    toString: () => string;
}
declare class CodeGeneratorContext {
    files: CodeGeneratorFileContext[];
}
interface CapnpcCLIOptions {
    ts?: boolean;
    noTs?: boolean;
    js?: boolean;
    dts?: boolean;
    noDts?: boolean;
    schema: string;
    output?: string;
    importPath?: string[];
    tsconfig: string;
    generateId?: boolean;
    standardImport?: boolean;
    projectRoot: string;
    workspaceRoot: string;
    tty?: boolean;
}
type CapnpcOptions = Omit<CapnpcCLIOptions, "noTs" | "noDts" | "tsconfig" | "schema"> & {
    tsconfig: ParsedCommandLine;
    schemas: string[];
};
interface CapnpcResult {
    ctx: CodeGeneratorContext;
    files: Map<string, string>;
}

export { type CapnpcCLIOptions, type CapnpcOptions, type CapnpcResult, CodeGeneratorContext, type CodeGeneratorFileContext };
