///
import { MiniProgramCore, MiniProgramDevtools, MiniProgramSummer, ProjectConfigJSON } from '../types';
import WaitAble from '../utils/waitable';
type FileChange = (type: 'unlink' | 'unlinkDir' | 'add' | 'addDir' | 'change', targetPath: string) => void;
type ProjectEventEmitter = MiniProgramSummer.TypedEventEmitter<{
fileChange: FileChange;
optionsChange: any;
precompileOptionsChange: any;
}>;
export declare abstract class BaseProject extends WaitAble implements MiniProgramCore.IProject {
protected _nameMappingFromDevtools?: MiniProgramCore.IStringKeyMap | undefined;
protected _projectPath: string;
protected _injectedPages: string[];
protected _projectArchitecture: MiniProgramCore.IProjectArchitecture;
protected _miniprogramRoot: string;
protected _pluginRoot: string;
protected _appid: string;
protected _extAppid?: string | null;
protected _type: MiniProgramCore.ProjectType;
protected _privateKey: string;
ignores: string[];
protected _attr: any;
packOptions?: {
ignore: MiniProgramDevtools.IProjectConfigPackOption[];
include: MiniProgramDevtools.IProjectConfigPackOption[];
} | undefined;
setting: MiniProgramDevtools.IProjectSetting;
protected _dirSet: Set;
protected _fileSet: Set;
event: ProjectEventEmitter;
get projectPath(): string;
get injectedPages(): string[];
get projectArchitecture(): import("../types").MiniProgramCI.IProjectArchitecture;
get srcPath(): string;
get pluginSrcPath(): string;
get type(): import("../types").MiniProgramCI.ProjectType;
set type(type: import("../types").MiniProgramCI.ProjectType);
get appid(): string;
set appid(id: string);
get privateKey(): string;
set privateKey(key: string);
get miniprogramRoot(): string;
set miniprogramRoot(root: string);
get pluginRoot(): string;
set pluginRoot(root: string);
get nameMappingFromDevtools(): MiniProgramCore.IStringKeyMap | undefined;
set nameMappingFromDevtools(mapping: MiniProgramCore.IStringKeyMap | undefined);
attr(): Promise;
ready(): Promise;
protected getProjectType(attr: any, compileType: MiniProgramCore.ProjectType): import("../types").MiniProgramCI.ProjectType;
getProjectConfig(): ProjectConfigJSON.IProjectConfigJSON;
normalizeRootPath: (pathName?: string) => string;
serialize(): Promise;
abstract init(...args: any[]): void;
abstract updateFileAndDirs(...args: any[]): void;
updateFiles(): void;
updateOptions(options: MiniProgramDevtools.IDevtoolsProjectInfo): void;
protected cacheDirName(dirSet: Set, dir: string): void;
deleteDirOrFileOfSet(dirSet: Set, fileSet: Set, targetPath: string): void;
getTargetPath(prefix?: string, filePath?: string): string;
getFilesAndDirs(): {
files: string[];
dirs: string[];
};
exists(prefix?: string, filePath?: string): boolean;
stat(prefix?: string, filePath?: string): MiniProgramCore.IStat | undefined;
getAllFileInfo(prefix?: string): MiniProgramCore.IFileInfos;
getFileList(prefix?: string, extName?: string): string[];
getSrcFile(prefix: string, filePath: string): Buffer;
getFile(prefix: string, filePath: string): Buffer;
getJson(prefix?: string, filePath?: string): T;
getFileSize(prefix?: string, filePath?: string): number;
getExtAppid(): Promise;
onFileChange(type: MiniProgramCore.IWatchEventType, targetPath: string): Promise;
clearCache(): void;
}
export {};