import { FileMetaInfo, Fs as IFs, WalkCallback, WalkwayConfig } from '../type';
import { OriginFs } from './originfs';
import { OverlayFs } from './overlayfs';
import { Service } from "../../../domain/fs";
/**
 * Fs entity - main filesystem entity
 * TypeScript version of Go's Fs struct
 */
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 work: IFs;
    readonly service: Service;
    constructor(originFs: OriginFs, prompts: OverlayFs, workflows: OverlayFs, content: OverlayFs, layouts: OverlayFs, statics: OverlayFs, assets: OverlayFs, work: IFs);
    /**
     * Get the OS filesystem
     */
    os(): IFs;
    /**
     * Get the work filesystem
     */
    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>>;
    /**
     * Create new base path filesystem
     */
    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(start: string, cb: WalkCallback, conf: WalkwayConfig): Promise<void>;
    walkStatics(start: string, cb: WalkCallback, conf: WalkwayConfig): Promise<void>;
    walk(fs: IFs, start: string, cb: WalkCallback, conf: WalkwayConfig): Promise<void>;
}
//# sourceMappingURL=fs.d.ts.map