import { IObjectStorageProvisioner, ProvisionerCapability, ProvisionerReadiness, ProvisionInput, ProvisionResult } from '../../../../storage/interfaces/object-storage-provisioner.interface';
import { StorageBackendProvider } from '../../../../storage/enums/storage-backend-provider.enum';
import { ApiTokenRepository } from '../../../../access/repositories/api-token.repository';
import { KeyStorageService } from '../../../../access/services/key-storage.service';
import { GenericS3Backend } from '../../../../storage/implementations/generic-s3.backend';
/**
 * Provisioner Scaleway Object Storage — FULL_AUTO.
 * Riusa le credenziali Scaleway compute esistenti (Scaleway IAM access keys
 * unificati: la stessa key opera su Compute API e Object Storage S3 API).
 *
 * Future: estendere ScalewayIamAdapter con createApplicationKey scoped al
 * bucket per least-privilege per-destination.
 */
export declare class ScalewayObjectStorageProvisioner implements IObjectStorageProvisioner {
    private readonly apiTokenRepo;
    private readonly keyStorage;
    private readonly genericS3;
    private readonly logger;
    readonly provider = StorageBackendProvider.SCALEWAY_OBJECT_STORAGE;
    readonly capability = ProvisionerCapability.FULL_AUTO;
    constructor(apiTokenRepo: ApiTokenRepository, keyStorage: KeyStorageService, genericS3: GenericS3Backend);
    isReady(_userId: string): Promise<ProvisionerReadiness>;
    provisionDestination(input: ProvisionInput): Promise<ProvisionResult>;
    private defaultBucketName;
    private loadScalewayCreds;
    private bucketExists;
}
