import { FileHandler } from './file-handler.js';
import * as fs from 'node:fs/promises';
import type { SourceAdapter, rmdirOptions, ObjectDirentInterface } from '@loom-io/core';
import { PathLike } from 'node:fs';
export declare class Adapter implements SourceAdapter {
    protected rootdir: string;
    constructor(rootdir?: PathLike);
    get raw(): typeof fs;
    protected getFullPath(path: string): string;
    protected getRelativePath(path: string): string;
    protected exists(path: string, ref: number): Promise<boolean>;
    fileExists(path: string): Promise<boolean>;
    dirExists(path: string): Promise<boolean>;
    mkdir(path: string): Promise<void>;
    readdir(path: PathLike): Promise<ObjectDirentInterface[]>;
    rmdir(path: string, options?: rmdirOptions): Promise<void>;
    stat(path: string): Promise<{
        size: number;
        atime: Date;
        mtime: Date;
        ctime: Date;
        birthtime: Date;
    }>;
    readFile(path: string): Promise<Buffer>;
    readFile(path: string, encoding: BufferEncoding): Promise<string>;
    writeFile(path: string, data: Buffer | string): Promise<void>;
    deleteFile(path: PathLike): Promise<void>;
    openFile(path: string, mode?: 'r' | 'w'): Promise<FileHandler>;
    isCopyable(adapter: SourceAdapter): Promise<boolean>;
    copyFile(from: string, to: string): Promise<void>;
}
