export type StepImage = { src: string; alt?: string; }; export type ChoiceItem = { id: string; label: string; description?: string; icon?: string; image?: StepImage; badge?: string; value?: string; }; export type InfoItem = { id: string; title: string; description?: string; icon?: string; image?: StepImage; badge?: string; meta?: string; }; export type QuoteItem = { id: string; quote: string; author: string; role?: string; avatar?: StepImage; rating?: number; }; export type ImageItem = { id: string; image: StepImage; label?: string; }; export type QaItem = { id: string; question: string; answer?: string; }; export type LinkItem = { id: string; label: string; href?: string; }; export type ReasonItem = { id: string; label: string; description?: string; icon?: string; }; export type StoreLinkItem = { id: string; eyebrow: string; title: string; href: string; variant?: string; }; export type PlanPresentationItem = { id: string; title?: string; description?: string; badge?: string; }; export type StepChoiceItem = ChoiceItem; export type StepInfoItem = InfoItem; export type StepQuoteItem = QuoteItem; export type StepImageItem = ImageItem; export type StepQaItem = QaItem; export type StepLinkItem = LinkItem; export type StepReasonItem = ReasonItem; export type StepStoreLinkItem = StoreLinkItem; export type StepPlanPresentationItem = PlanPresentationItem; export type LocalizedStepContent = { defaultLocale: TLocaleCode; locales: Record; }; export type CountryPricingOverride = { defaultOfferKey?: TOfferKey; offerOrder?: readonly TOfferKey[]; }; export type CountryPricingProfile = { defaultOfferKey: TOfferKey; defaultOfferOrder: readonly TOfferKey[]; countryOverrides?: Record>; }; export type ResolvedCountryPricing = { countryCode: string | null; defaultOfferKey: TOfferKey; offerOrder: readonly TOfferKey[]; }; export type StepEditorFieldKind = 'text' | 'textLines' | 'textarea' | 'image' | 'boolean' | 'select' | 'list' | 'pricingProfile'; export type StepEditorListPreset = 'choiceItems' | 'infoItems' | 'quoteItems' | 'imageItems' | 'qaItems' | 'linkItems' | 'reasonItems' | 'storeLinkItems' | 'planPresentationItems'; export type StepEditorSelectOption = { label: string; value: string; }; export type StepEditorFieldVariableSource = 'plan' | 'user'; export type StepEditorVariableMapping = { id: string; label: string; token: `user.${string}`; sourcePath: string; }; export type StepEditorField = { id: string; label: string; kind: StepEditorFieldKind; path: string; supportsVariables?: boolean; variableSources?: readonly StepEditorFieldVariableSource[]; preset?: StepEditorListPreset; options?: readonly StepEditorSelectOption[]; }; export type StepEditorSection = { id: string; label: string; variables?: readonly StepEditorVariableMapping[]; fields: readonly StepEditorField[]; }; export declare function validateStepContentDefinition(definition: LocalizedStepContent): LocalizedStepContent; export declare function validateCountryPricingProfile(profile: CountryPricingProfile): CountryPricingProfile; export declare function normalizeCountryPricingProfile(profile: CountryPricingProfile): CountryPricingProfile; export declare function validateStepEditorSections(sections: readonly StepEditorSection[]): readonly StepEditorSection[]; export declare const resolveUniversalContentVariables: (content: TContent, variables: Record) => TContent; export declare const collectStepEditorVariables: (sections: readonly StepEditorSection[]) => readonly StepEditorVariableMapping[]; export declare const resolveStepEditorUserVariableValues: (sections: readonly StepEditorSection[], answers: Record) => Record; export declare const resolveStepContentVariables: >(content: TContent, sections: readonly StepEditorSection[], variables: Record) => TContent; export declare function resolveLocalizedStepContent(definition: LocalizedStepContent, requestedLocale?: string | null): TLocaleContent; export declare function resolveCountryPricing(profile: CountryPricingProfile, requestedCountryCode?: string | null): ResolvedCountryPricing;