///
import { Server } from 'http';
import { Connect } from '@ream/server';
import { SetRequired } from './base';
import { UserConfig, ViteDevServer } from 'vite';
declare type State = {
constants: {
[k: string]: string;
};
pluginsFiles: {
'enhance-app': Set;
'enhance-server': Set;
};
};
declare class Store {
state: State;
defineConstant: (name: string, value: any) => void;
addPluginFile: (type: keyof State['pluginsFiles'], file: string) => void;
}
declare type ReamPlugin = {
name: string;
apply?: (api: Store) => void;
};
interface Options {
rootDir?: string;
srcDir?: string;
dev?: boolean;
server?: {
port?: number | string;
};
}
declare type ReamConfig = {
env?: {
[k: string]: string | boolean | number;
};
plugins?: Array;
imports?: string[];
server?: {
port?: number;
};
vue?: {
runtimeTemplateCompiler?: boolean;
};
vite?: (viteConfig: UserConfig, opts: {
dev: boolean;
ssr?: boolean;
}) => void;
};
declare class Ream {
rootDir: string;
srcDir: string;
isDev: boolean;
config: SetRequired;
configPath?: string;
store: Store;
viteDevServer?: ViteDevServer;
constructor(options?: Options, configOverride?: ReamConfig);
resolveRootDir(...args: string[]): string;
resolveSrcDir(...args: string[]): string;
resolveDotReam(...args: string[]): string;
resolveOwnDir(...args: string[]): string;
resolveInPackage(pkg: string, target: string): string;
prepare({ shouldCleanDir, shouldPrepreFiles, }: {
shouldCleanDir: boolean;
shouldPrepreFiles: boolean;
}): Promise;
localResolve(name: string): string | undefined;
localRequire(name: string): any;
getRequestHandler(): Promise;
serve(): Promise;
build(fullyExport?: boolean): Promise;
}
export { Options, Ream, ReamConfig, ReamPlugin };