import { ScalewayIamV1alpha1SSHKey } from './generated/iam';
import { ICredentialProvider } from '../../interfaces/credential-provider.interface';
export declare class ScalewayIamAdapter {
    private readonly credentialProvider;
    private readonly iamBaseUrl;
    private readonly logger;
    private cachedOrganizationId;
    private cachedProjectId;
    constructor(credentialProvider: ICredentialProvider);
    private createConfiguration;
    private createSSHKeysApi;
    /**
     * Returns the organization ID for the configured Scaleway API key.
     * Uses getAPIKey(accessKey) which requires no additional parameters.
     * The generated TypeScript types don't include organization_id but the real API returns it.
     * Result is cached for the lifetime of the adapter instance.
     */
    getOrganizationId(): Promise<string>;
    /**
     * Returns the default project ID for the configured Scaleway API key.
     * Uses getAPIKey(accessKey) which requires no additional parameters.
     * Used for server and security group creation (requires project_id, not organization_id).
     */
    getDefaultProjectId(): Promise<string>;
    listSSHKeys(): Promise<ScalewayIamV1alpha1SSHKey[]>;
    createSSHKey(name: string, publicKey: string, _labels?: Record<string, string>): Promise<{
        id: string;
        fingerprint?: string;
    }>;
    deleteSSHKey(id: string): Promise<void>;
    getSSHKey(id: string): Promise<ScalewayIamV1alpha1SSHKey>;
}
