import { VNetCreationResult, VNetDetails } from '../../interfaces/network-provider.interface';
import { ICredentialProvider } from '../../interfaces/credential-provider.interface';
import { ScalewayIamAdapter } from './scaleway-iam.adapter';
export declare class ScalewayVpcAdapter {
    private readonly credentialProvider;
    private readonly iamAdapter;
    private readonly logger;
    constructor(credentialProvider: ICredentialProvider, iamAdapter: ScalewayIamAdapter);
    /** Encode region + private network UUID into a Flui vnetId */
    buildVnetId(region: string, privateNetworkId: string): string;
    /** Decode a Flui vnetId back to { region, id } */
    parseVnetId(vnetId: string): {
        region: string;
        id: string;
    };
    /** Derive region from a Scaleway zone (e.g. 'fr-par-1' → 'fr-par') */
    zoneToRegion(zone: string): string;
    private createPrivateNetworksApi;
    private createSubnetsApi;
    private createBaremetalPrivateNetworksApi;
    createPrivateNetwork(region: string, name: string, tags: string[], subnets: string[]): Promise<VNetCreationResult>;
    deletePrivateNetwork(region: string, privateNetworkId: string): Promise<void>;
    getPrivateNetwork(region: string, privateNetworkId: string): Promise<VNetDetails | null>;
    listPrivateNetworks(region: string): Promise<VNetDetails[]>;
    addSubnets(region: string, privateNetworkId: string, subnets: string[]): Promise<void>;
    deleteSubnets(region: string, privateNetworkId: string, subnets: string[]): Promise<void>;
    attachBaremetalToPrivateNetwork(zone: string, serverId: string, privateNetworkId: string): Promise<void>;
    detachBaremetalFromPrivateNetwork(zone: string, serverId: string, privateNetworkId: string): Promise<void>;
    private mapPrivateNetwork;
}
