import type { KeyValueStorage } from './KeyValueStorage';
/**
 * Transforms the keys into relative paths, to be used by the source storage.
 * Encodes the input key with base64 encoding,
 * to make sure there are no invalid or special path characters,
 * and prepends it with the stored relative path.
 * This can be useful to eventually generate URLs in specific containers
 * without having to worry about cleaning the input keys.
 */
export declare class EncodingPathStorage<T> implements KeyValueStorage<string, T> {
    protected readonly basePath: string;
    protected readonly source: KeyValueStorage<string, T>;
    constructor(relativePath: string, source: KeyValueStorage<string, T>);
    get(key: string): Promise<T | undefined>;
    has(key: string): Promise<boolean>;
    set(key: string, value: T): Promise<this>;
    delete(key: string): Promise<boolean>;
    entries(): AsyncIterableIterator<[string, T]>;
    /**
     * Converts a key into a path for internal storage.
     */
    protected keyToPath(key: string): string;
    /**
     * Converts an internal storage path string into the original path key.
     */
    protected pathToKey(path: string): string;
}
