import { AdminOptions } from '@medusajs/types';
import { IRouter } from 'express';

type BundlerOptions = Required<Pick<AdminOptions, "path">> & Pick<AdminOptions, "vite" | "backendUrl" | "storefrontUrl"> & {
    outDir: string;
    sources?: string[];
    plugins?: string[];
};

declare function build(options: BundlerOptions): Promise<void>;

declare function develop(options: BundlerOptions): Promise<IRouter>;

interface PluginOptions {
    root: string;
    outDir: string;
}
declare function plugin(options: PluginOptions): Promise<void>;

type ServeOptions = {
    outDir: string;
};
declare function serve(options: ServeOptions): Promise<IRouter>;

export { type BundlerOptions, build, develop, plugin, serve };
