///
///
///
import { IFileStore } from '../interfaces/IFileStore.js';
import type { Readable } from 'stream';
export declare abstract class LinkedFileStorage {
private static defaultStore;
private static url;
static get accessURL(): string;
static setDefaultAccessURL(accessURL: string): string;
static getDefaultStore(): IFileStore;
static setDefaultStore(store: IFileStore): void;
static deleteFile(filePath: string): Promise;
static fileExists(filePath: string): Promise;
static getFile(filePath: string): Promise;
static listFiles(prefix?: string): Promise;
static saveFile(filePath: string, fileContent: string | Uint8Array | Buffer | Readable, mimeType?: string, preventDuplicates?: boolean): Promise;
}
/**
* Get the full path of an asset based on the way LinkedFileStorage is configured
* Returns accessURL + directory (/public by default) + path
* @param path asset path
* @param directory asset directory (optional, default is /public)
* @returns asset url. e.g. https://cdn.example.com/public/image.png
*/
export declare function asset(path: string, directory?: string): string;