import * as plugins from './plugins.js';
import { SmartFile } from './classes.smartfile.js';
import { StreamFile } from './classes.streamfile.js';
import { VirtualDirectory } from './classes.virtualdirectory.js';
export declare class SmartFileFactory {
    private smartFs;
    constructor(smartFs: any);
    /**
     * Creates a default factory using Node.js filesystem provider
     */
    static nodeFs(): SmartFileFactory;
    /**
     * Get the underlying SmartFs instance
     */
    getSmartFs(): any;
    /**
     * Creates a SmartFile from a file path on disk
     */
    fromFilePath(filePath: string, baseArg?: string): Promise<SmartFile>;
    /**
     * Creates a SmartFile from a URL
     */
    fromUrl(urlArg: string): Promise<SmartFile>;
    /**
     * Creates a SmartFile from a Buffer
     */
    fromBuffer(filePath: string, contentBufferArg: Buffer, baseArg?: string): SmartFile;
    /**
     * Creates a SmartFile from a string
     */
    fromString(filePath: string, contentStringArg: string, encodingArg?: 'utf8' | 'binary', baseArg?: string): SmartFile;
    /**
     * Creates a SmartFile from a stream
     */
    fromStream(stream: plugins.stream.Readable, filePath: string, baseArg?: string): Promise<SmartFile>;
    /**
     * Creates a SmartFile from folded JSON
     */
    fromFoldedJson(foldedJsonArg: string): Promise<SmartFile>;
    /**
     * Creates a StreamFile from a file path
     */
    streamFromPath(filePath: string): Promise<StreamFile>;
    /**
     * Creates a StreamFile from a URL
     */
    streamFromUrl(url: string): Promise<StreamFile>;
    /**
     * Creates a StreamFile from a Buffer
     */
    streamFromBuffer(buffer: Buffer, relativeFilePath?: string): StreamFile;
    /**
     * Creates a StreamFile from a Node.js Readable stream
     */
    streamFromStream(stream: plugins.stream.Readable, relativeFilePath?: string, multiUse?: boolean): StreamFile;
    /**
     * Creates a VirtualDirectory from a filesystem directory path
     */
    virtualDirectoryFromPath(pathArg: string): Promise<VirtualDirectory>;
    /**
     * Creates an empty VirtualDirectory
     */
    virtualDirectoryEmpty(): VirtualDirectory;
    /**
     * Creates a VirtualDirectory from an array of SmartFiles
     */
    virtualDirectoryFromFileArray(files: SmartFile[]): VirtualDirectory;
    /**
     * Creates a VirtualDirectory from a transferable object
     */
    virtualDirectoryFromTransferable(virtualDirTransferableObjectArg: plugins.smartfileInterfaces.VirtualDirTransferableObject): Promise<VirtualDirectory>;
}
