import type { StylableExports } from './stylable-transformer';
interface InjectCSSOptions {
    /**
     *  omitting the id will fallback to module.id/import.meta.url
     */
    id?: string | undefined;
    /**
     * css string to inject
     */
    css: string;
    /**
     * code to generate the css string to inject
     */
    cssCode?: string;
    /**
     *  calculated style depth
     */
    depth: number | string;
    /**
     *  use code to get the depth
     */
    depthCode?: string;
    /**
     *  reconciliation will happen only for style with the same runtimeId
     */
    runtimeId: string;
}
interface ModuleOptions {
    /**
     * module namespace
     */
    namespace: string;
    /**
     * static imports for the module
     */
    imports?: Array<{
        from: string;
        defaultImport?: string;
    }>;
    /**
     * Stylable transforms exports
     */
    jsExports: StylableExports | {
        [K in keyof StylableExports]: string;
    };
    /**
     * the request of the module runtime api e.g @stylable/runtime
     */
    runtimeRequest?: string;
    /**
     * target module format
     */
    moduleType: 'esm' | 'cjs';
    /**
     * es3 compat mode
     */
    varType?: 'const' | 'var';
    /**
     * inject code immediately after imports
     */
    header?: string;
    /**
     * inject code after the entire module code
     */
    footer?: string;
}
export declare function generateStylableJSModuleSource(moduleOptions: ModuleOptions, injectOptions?: InjectCSSOptions): string;
export {};
//# sourceMappingURL=stylable-js-module-source.d.ts.map