/**
 * Helper: createStorageContextFromDataSetId
 *
 * Optimized helper to create a StorageContext for an existing dataset ID without
 * triggering the expensive "scan all client datasets" hotpath.
 *
 * This is a workaround for https://github.com/FilOzone/synapse-sdk/issues/435
 * until https://github.com/FilOzone/synapse-sdk/pull/438 is merged and published.
 *
 * Benefits:
 *  - Reuses Synapse's existing WarmStorageService (no extra initialization)
 *  - Only fetches data for the single dataset needed (~5-6 RPC calls vs 1500+)
 *  - Validates ownership, isLive, and isManaged
 *
 * TODO: Replace with synapse.storage.createContextFromDataSetId() once PR #438 is published
 */
import type { Synapse, WarmStorageService } from '@filoz/synapse-sdk';
import { StorageContext } from '@filoz/synapse-sdk';
import { type ProviderInfo, SPRegistryService } from '@filoz/synapse-sdk/sp-registry';
import type { Logger } from 'pino';
export type StorageContextHelperResult = {
    storage: StorageContext;
    providerInfo: ProviderInfo;
};
export type CreateStorageContextFromDataSetIdOptions = {
    /**
     * Whether to check if the provider is approved or not. We default to false here because for many read operations,
     * we might want to re-use the dataset even if it's not owned by an approved provider.
     * @default false
     */
    checkProviderApproval?: boolean;
};
/**
 * Create a StorageContext for an existing dataSetId without scanning all datasets.
 */
export declare function createStorageContextFromDataSetId(synapse: Synapse, dataSetId: number, options?: CreateStorageContextFromDataSetIdOptions): Promise<StorageContextHelperResult>;
export type CreateNewStorageContextOptions = {
    providerId?: number;
    providerAddress?: string;
    warmStorage?: WarmStorageService;
    spRegistry?: SPRegistryService;
    logger?: Logger;
};
/**
 * Create a StorageContext configured for creating a brand new dataset without scanning all
 * existing datasets. Provider selection favors explicit overrides and otherwise randomly selects
 * an active provider that exposes a PDP endpoint.
 */
export declare function createStorageContextForNewDataSet(synapse: Synapse, options?: CreateNewStorageContextOptions): Promise<StorageContextHelperResult>;
export default createStorageContextFromDataSetId;
//# sourceMappingURL=storage-context-helper.d.ts.map