"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const utils = tslib_1.__importStar(require("../utils")); const class_1 = tslib_1.__importDefault(require("./class")); function AutoGenerator(config, baseConfig) { config.interfaceHandle = config.interfaceHandle || 'AutoInstanceType'; const result = (0, class_1.default)(config, baseConfig); /* istanbul ignore else */ if (result.content) { result.content = [ 'type AnyClass = new (...args: any[]) => any;', 'type AnyFunc = (...args: any[]) => T;', 'type CanExportFunc = AnyFunc> | AnyFunc>;', 'type AutoInstanceType : T> = U extends AnyClass ? InstanceType : U;', result.content, ].join('\n'); } return result; } exports.default = AutoGenerator; AutoGenerator.defaultConfig = utils.extend({}, class_1.default.defaultConfig);