/**
 * Provider sync service - Synchronizes CLI provider configuration to API
 */
export declare enum CloudProvider {
    HETZNER = "hetzner",
    SCALEWAY = "scaleway"
}
export declare enum CredentialType {
    API_KEY = "api_key",
    ACCESS_KEY_SECRET = "access_key_secret",
    USER_PASSWORD = "user_password",
    BEARER_TOKEN = "bearer_token"
}
export interface ProviderCredentialsDto {
    provider: CloudProvider;
    type: CredentialType;
    apiKey?: string;
    accessKey?: string;
    secretKey?: string;
    username?: string;
    password?: string;
    clientId?: string;
    clientSecret?: string;
    bearerToken?: string;
}
export interface ConfigureProviderDto {
    provider: CloudProvider;
    credentials: ProviderCredentialsDto;
    enabledRegions: string[];
    additionalConfig?: Record<string, any>;
}
export interface ProviderConfiguration {
    id: string;
    provider: CloudProvider;
    status: string;
    enabledRegions: string[];
    configuration: Record<string, any>;
    isActive: boolean;
    lastHealthCheck?: Date;
    metadata: Record<string, any>;
    createdAt: Date;
    updatedAt: Date;
}
export interface ProviderSyncResult {
    success: boolean;
    message: string;
    providerConfiguration?: ProviderConfiguration;
    error?: string;
}
export declare class ProviderSyncService {
    private readonly configStorage;
    private apiClient;
    constructor(apiUrl: string);
    setApiKey(apiKey: string): void;
    /**
     * Check if provider exists in API
     */
    checkProviderExists(provider: CloudProvider): Promise<boolean>;
    /**
     * Get provider configuration from API
     */
    getProviderConfiguration(provider: CloudProvider): Promise<ProviderConfiguration | null>;
    /**
     * Validate provider is supported
     */
    private validateProvider;
    /**
     * Get credential type for provider
     */
    private getCredentialType;
    /**
     * Get regions to enable for provider
     */
    private getRegionsToEnable;
    /**
     * Build ConfigureProviderDto from CLI config
     */
    private buildConfigureDto;
    /**
     * Sync provider from CLI to API
     */
    syncProvider(providerName: string, options?: {
        regions?: string[];
        force?: boolean;
    }): Promise<ProviderSyncResult>;
    /**
     * Get API client base URL
     */
    getApiUrl(): string;
}
