export declare const projectFileRenameTestHooks: {
    beforeCommit: null | ((paths: {
        source: string;
        target: string;
    }) => Promise<void> | void);
};
export declare function projectDir(projectsRoot: any, projectId: any): string;
export declare function resolveProjectDir(projectsRoot: any, projectId: any, metadata?: any): string;
export declare function ensureProject(projectsRoot: any, projectId: any, metadata?: any): Promise<string>;
export declare function listFiles(projectsRoot: any, projectId: any, opts?: {}): Promise<any[]>;
export declare function detectEntryFile(dir: string): Promise<string | null>;
export declare function buildProjectArchive(projectsRoot: any, projectId: any, root: any, metadata?: any): Promise<{
    buffer: Buffer<ArrayBufferLike>;
    baseName: string;
}>;
export declare function buildBatchArchive(projectsRoot: any, projectId: any, fileNames: any, metadata?: any): Promise<{
    buffer: Buffer<ArrayBufferLike>;
    baseName: string;
}>;
export declare function readProjectFile(projectsRoot: any, projectId: any, name: any, metadata?: any): Promise<{
    buffer: NonSharedBuffer;
    name: any;
    path: any;
    size: number;
    mtime: number;
    mime: any;
    kind: string;
    artifactKind: unknown;
    artifactManifest: {
        [x: string]: unknown;
    } | null;
}>;
export declare function resolveProjectFilePath(projectsRoot: any, projectId: any, name: any, metadata?: any): Promise<{
    filePath: any;
    name: any;
    size: number;
    mtime: number;
    mime: any;
    kind: string;
}>;
export declare function writeProjectFile(projectsRoot: any, projectId: any, name: any, body: any, { overwrite, artifactManifest }?: {
    overwrite?: boolean | undefined;
    artifactManifest?: null | undefined;
}, metadata?: any): Promise<{
    name: string;
    path: string;
    size: number;
    mtime: number;
    kind: string;
    mime: any;
    artifactKind: unknown;
    artifactManifest: {
        [x: string]: unknown;
    } | null;
}>;
export declare function deleteProjectFile(projectsRoot: any, projectId: any, name: any, metadata?: any): Promise<void>;
export declare function renameProjectFile(projectsRoot: any, projectId: any, fromName: any, toName: any, metadata?: any): Promise<{
    file: {
        name: string;
        path: string;
        size: number;
        mtime: number;
        kind: string;
        mime: any;
        artifactKind: unknown;
        artifactManifest: {
            [x: string]: unknown;
        } | null;
    };
    oldName: string;
    newName: string;
}>;
export declare function removeProjectDir(projectsRoot: any, projectId: any): Promise<void>;
export declare function sanitizePath(raw: any): string;
export declare function validateProjectPath(raw: any): string;
export declare function isReservedProjectFilePath(raw: any): boolean;
export declare function sanitizeName(raw: any): string;
export declare function decodeMultipartFilename(name: any): any;
export declare function isSafeId(id: any): boolean;
export declare function mimeFor(name: any): any;
export declare function parseByteRange(header: any, fileSize: any): "unsatisfiable" | {
    start: number;
    end: number;
} | null;
export declare function searchProjectFiles(projectsRoot: any, projectId: any, query: any, opts?: {}): Promise<{
    file: any;
    line: number;
    snippet: string | undefined;
}[]>;
export declare function kindFor(name: any): "binary" | "text" | "image" | "video" | "audio" | "html" | "code" | "pdf" | "sketch" | "document" | "presentation" | "spreadsheet";
