import { types as t } from "@marko/compiler";
/**
 * This plugin is designed to transform imports within Marko files to interop between ESM and CJS.
 * In Node, ESM files cannot reliably use named imports and default imports from CJS files.
 * Additionally, modules which are transpiled from ESM to CJS will use a `__esModule` property to
 * signal that the consuming ESM code should treat `exports.default` as the default import.
 * This plugin only modifies imports it determined to be for CJS modules.
 *
 * Examples:
 *   1. Named imports:
 *      Source:  import { bar as baz } from 'foo';
 *      Becomes: import * as _foo from 'foo';
 *               const { bar: baz } = importNS(_foo);
 *
 *   2. Default imports:
 *      Source:  import myFoo from 'foo';
 *      Becomes: import * as _myFoo from 'foo';
 *               const { default: myFoo } = importDefault(_myFoo);
 *
 *   3. Namespace imports:
 *      Source:  import * as nsFoo from 'foo';
 *      Becomes: import * as _nsFoo from 'foo';
 *               const nsFoo = importNS(_nsFoo);
 *
 *   4. Default and named imports:
 *      Source:  import myFoo, { bar as baz } from 'foo';
 *      Becomes: import * as _foo from 'foo';
 *               const { default: myFoo } = importDefault(_foo);
 *               const { bar: baz } = importNS(_foo);
 */
export declare const cjsInteropHelpersId = "\0marko-cjs-interop.js";
export declare const cjsInteropHelpersCode = "export const importNS = m => m && (m.default === void 0 || m.__esModule ? m : m.default);\nexport const importDefault = m => m?.default?.__esModule ? m.default : m;\n";
declare const _default: {
    Program: {
        exit(program: t.NodePath<t.Program>): void;
    };
};
export default _default;
