import { FileMetaInfo, Fs as IFs, WalkCallback, WalkwayConfig } from '../type';
import { OriginFs } from './originfs';
import { OverlayFs } from './overlayfs';
import { Service } from "@internal/domain/fs";
export declare class Fs {
    readonly originFs: OriginFs;
    readonly prompts: OverlayFs;
    readonly workflows: OverlayFs;
    readonly content: OverlayFs[];
    readonly layouts: OverlayFs;
    readonly statics: OverlayFs;
    readonly assets: OverlayFs;
    readonly i18n: OverlayFs;
    readonly work: IFs;
    readonly service: Service;
    constructor(originFs: OriginFs, prompts: OverlayFs, workflows: OverlayFs, content: OverlayFs[], layouts: OverlayFs, statics: OverlayFs, assets: OverlayFs, i18n: OverlayFs, work: IFs);
    os(): IFs;
    workFs(): IFs;
    workflowFs(): IFs;
    promptFs(): IFs;
    contentFs(): IFs[];
    layoutsFs(): IFs;
    staticFs(): IFs;
    assetsFs(): IFs;
    publishFs(): IFs;
    copyStatic(froms: IFs[], to: IFs): Promise<void>;
    newFileMetaInfo(filename: string): FileMetaInfo;
    newFileMetaInfoWithContent(content: string): FileMetaInfo;
    getFileMetaInfos(paths: string[]): Promise<Map<string, FileMetaInfo>>;
    newBasePathFs(source: IFs, path: string): IFs;
    walkPrompts(start: string, cb: WalkCallback, conf: WalkwayConfig): Promise<void>;
    walkWorkflows(start: string, cb: WalkCallback, conf: WalkwayConfig): Promise<void>;
    walkLayouts(start: string, cb: WalkCallback, conf: WalkwayConfig): Promise<void>;
    walkContent(fs: IFs, start: string, cb: WalkCallback, conf: WalkwayConfig): Promise<void>;
    walkStatics(start: string, cb: WalkCallback, conf: WalkwayConfig): Promise<void>;
    walkI18n(start: string, cb: WalkCallback, conf: WalkwayConfig): Promise<void>;
    walk(fs: IFs, start: string, cb: WalkCallback, conf: WalkwayConfig): Promise<void>;
}
