import type { SVGProps } from "react"; import React, { type ReactNode } from "react"; export interface Region { value: string; label: string; multiplier: number; } export interface CloudProvider { id: string; name: string; icon?: ReactNode; regions: Region[]; basePrice: number; } export interface InfrastructureConfig { cloudProvider: string; region: string; storageVolume: number; compression: boolean; activeHours: number; } export interface InfrastructureStepProps { /** Title displayed at the top of the step */ title?: string; /** Description text below the title */ description?: string; /** Array of cloud providers to choose from */ cloudProviders: CloudProvider[]; /** Initial configuration values */ defaultConfig?: Partial; /** Storage volume limits */ storageLimits?: { min: number; max: number; }; /** Called when configuration changes */ onConfigChange?: (config: InfrastructureConfig) => void; /** Called when the user submits the form */ onSubmit: (config: InfrastructureConfig) => void | Promise; /** Custom price calculator - receives config and returns formatted string */ calculatePrice?: (config: InfrastructureConfig, provider: CloudProvider) => string; /** Text for the submit button */ submitText?: string; /** Text shown while submitting */ loadingText?: string; /** Optional back button config */ backButton?: { text: string; onClick: () => void; }; } export declare const defaultCloudProviderIcons: Record>>; export declare function InfrastructureStep({ title, description, cloudProviders, defaultConfig, storageLimits, onConfigChange, onSubmit, calculatePrice, submitText, loadingText, backButton, }: InfrastructureStepProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=infrastructure-step.d.ts.map