/**
 * @fileoverview Provides a singleton service for interacting with the application's storage layer.
 * This service acts as a proxy to the configured storage provider, ensuring a consistent
 * interface for all storage operations throughout the application. It receives its concrete
 * provider via dependency injection.
 * @module src/storage/core/StorageService
 */
import type { IStorageProvider, ListOptions, ListResult, StorageOptions } from '../../storage/core/IStorageProvider.js';
import type { RequestContext } from '../../utils/internal/requestContext.js';
export declare class StorageService {
    private provider;
    constructor(provider: IStorageProvider);
    /**
     * Wraps a provider call with an OTel span and standard storage metrics.
     * Accepts optional extra span attributes (e.g. key count for batch ops).
     */
    private withStorageOp;
    get<T>(key: string, context: RequestContext): Promise<T | null>;
    set(key: string, value: unknown, context: RequestContext, options?: StorageOptions): Promise<void>;
    delete(key: string, context: RequestContext): Promise<boolean>;
    list(prefix: string, context: RequestContext, options?: ListOptions): Promise<ListResult>;
    getMany<T>(keys: string[], context: RequestContext): Promise<Map<string, T>>;
    setMany(entries: Map<string, unknown>, context: RequestContext, options?: StorageOptions): Promise<void>;
    deleteMany(keys: string[], context: RequestContext): Promise<number>;
    clear(context: RequestContext): Promise<number>;
}
//# sourceMappingURL=StorageService.d.ts.map