import { CodeMaker } from 'codemaker';
export declare enum Language {
    TYPESCRIPT = "typescript",
    PYTHON = "python",
    CSHARP = "csharp",
    JAVA = "java",
    GO = "go"
}
export interface ImportOptions {
    readonly moduleNamePrefix?: string;
    readonly targetLanguage: Language;
    readonly outdir: string;
    readonly save?: boolean;
    /**
     * Path to copy the output .jsii file.
     * @default - jsii file is not emitted
     */
    readonly outputJsii?: string;
    /**
     * A prefix for all construct classes.
     *
     * @default - default is determined by the specific import type. For example
     * k8s imports will add a "Kube" prefix by default.
     */
    readonly classNamePrefix?: string;
}
export interface GenerateOptions {
    readonly classNamePrefix?: string;
}
export declare abstract class ImportBase {
    abstract get moduleNames(): string[];
    protected abstract generateTypeScript(code: CodeMaker, moduleName: string, options: GenerateOptions): Promise<void>;
    import(options: ImportOptions): Promise<void>;
    /**
     * Traverses up directories until it finds a directory with a go.mod file,
     * and parses the module name from the file.
     */
    private getGoModuleName;
}
