/**
 * SmartStorage (S3-compatible) Platform Service Provider
 *
 * Runs the serve.zone corestore image, which embeds @push.rocks/smartstorage
 * with scoped per-bucket tenant credentials and exposes a token-guarded
 * control API for provisioning. This is the same storage component cluster
 * workers run, so onebox and the fleet share one canonical storage layer.
 */
import { BasePlatformServiceProvider } from './base.js';
import type { IService, IPlatformResource, IPlatformServiceConfig, IProvisionedResource, IEnvVarMapping, TPlatformServiceType, TPlatformResourceType } from '../../../types.js';
import type { Onebox } from '../../onebox.js';
export declare class SmartStorageProvider extends BasePlatformServiceProvider {
    readonly type: TPlatformServiceType;
    readonly displayName = "S3 Storage (smartstorage)";
    readonly resourceTypes: TPlatformResourceType[];
    private static readonly CONTROL_PORT;
    private static readonly S3_PORT;
    constructor(oneboxRef: Onebox);
    getDefaultConfig(): Promise<IPlatformServiceConfig>;
    getEnvVarMappings(): IEnvVarMapping[];
    deployContainer(): Promise<string>;
    stopContainer(containerId: string): Promise<void>;
    healthCheck(): Promise<boolean>;
    provisionResource(userService: IService): Promise<IProvisionedResource>;
    deprovisionResource(resource: IPlatformResource, _credentials: Record<string, string>): Promise<void>;
    /**
     * Stable corestore-side service identity. Bucket names and scoped
     * credentials are derived from it, so it must never change for a service.
     */
    private getCorestoreServiceId;
    /**
     * Calls the corestore control API through the 127.0.0.1 published port.
     * The control port is never exposed beyond the host; requests carry the
     * stored API token.
     */
    private controlRequest;
}
