import React, { MouseEventHandler, FC, JSX } from 'react'; import { ApiServiceV2 } from '@sunrise-upc/ajax-lib'; interface ButtonProps { type: 'primary' | 'secondary' | 'error'; text: string; onClick: MouseEventHandler; content: ButtonContent | null; } interface ButtonContent { text: string; type: string; } declare const Button: FC; interface LoginModalSchema { content: any; closeLogin: () => void; metadata: any; onSuccess: () => void; isProdEnv?: boolean; } declare const LoginModal: FC; type LinkTarget = '_blank' | '_parent' | '_self' | '_top'; type FalconButtonTypes = 'Primary-V1' | 'Secondary-V1' | 'Secondary-V4' | 'Secondary-Dark' | 'Secondary-V5'; interface Link { id: number; slug: string; name: string; is_folder: boolean; parent_id: number; published: boolean; path?: string; position: number; uuid: string; is_startpage: boolean; real_path: string; alternates: LinkAlternate[]; } interface LinkAlternate { path: string; name?: string; lang: string; } type Links = { [key: string]: Link; }; type Alignment = "left" | "center" | "right"; interface Asset { id: number; alt?: string; name: string; focus?: string; title?: string; filename: string; copyright?: string; fieldtype: "asset"; } interface GenericSBProps { _uid: string; component: string; } interface ComponentMetadata { lang: string; title: string; activePath: string; links: Links; locale: string; storyId: string; appId?: string; integrationId?: string; } type FalconBackgroundColor = 'grey-100' | 'ice-white' | 'transparent'; type FalconGradientTypes = 'rubyglow-diagonal' | 'rubyglow-vertical' | 'pinksky-diagonal' | 'pinksky-vertical' | 'bluehaze-diagonal' | 'bluehaze-vertical' | 'greencloud-diagonal' | 'greencloud-vertical' | 'peachfog-diagonal' | 'peachfog-vertical' | 'darkblue-haze' | 'none'; interface ComponentWithContentProps { content: T; metadata?: ComponentMetadata | undefined; } interface FalconButtonSchema extends GenericSBProps { buttonLabel?: string; buttonIcon?: Asset; buttonHoverIcon?: Asset; buttonClickedIcon?: Asset; buttonDisabledIcon?: Asset; buttonLink: MultiLink; linkTarget: LinkTarget; buttonType: FalconButtonTypes; iconPosition: string; buttonAlignment: Alignment; asset?: Asset; id?: string; bloks?: any; minWidth: number; enableScroll: boolean; targetElement: componentsInStory; blackFridayThemeIcon: Asset; fromTallhero?: boolean; } interface MultiLink { id: string; url: string; linktype: 'url' | 'story'; fieldtype: 'multilink'; cached_url: string; } interface componentsInStory { _uid: string; plugin: string; blockIdentifier: string; } interface CardSchema { content: any; updatedContent: any; indexKey: number; listLength: number; addToCart?: (e: any) => void; metadata?: ComponentMetadata | undefined; modalTriggered?: () => void; showPrice?: any; } declare const Card: FC; interface CardEntitlementSchema { content: any; product: any; indexKey: number; showEntitleValue: boolean; metadata: ComponentMetadata | undefined; modalTriggered?: () => void; } declare const CardEntitlement: FC; declare const CarouselComponent: (props: any) => JSX.Element; interface RichTextWithTooltip extends GenericSBProps { icon: Asset; mobIcon: Asset; text: Array; tooltipTxt: string; } interface ProductTeaserSlideSchema extends GenericSBProps { buttonLbl: string; conDuration: string; description: Array; desktopBGImage: Asset; details: RichTextWithTooltip[]; heading: string; mobileBGImage: Asset; priceDesc: string; productId: string; productType: string; promoId: string; subHeading: string; summaryURL: Links; tabBGImage: Asset; tabTitle: string; tvDetails: RichTextWithTooltip[]; tvPrice: string; tvProductId: string; tvSubHeading: string; textAlignment: any; gradientBackground: FalconGradientTypes; isFullWidthImage: boolean; } interface ProductTeaserCompSchema extends GenericSBProps { btnIcon: Asset; serviceabilityError: string; tvIcon: Asset; productTeaserSlides: ProductTeaserSlideSchema[]; } interface ProductTeaserSchema { content: ProductTeaserCompSchema; lineCheckCallBack?: () => void; linecheckSuccessCallBack?: () => void; changeAddressClicked?: boolean; offerDataCallBack?: (a: any, b: any, c?: string) => void; productCallBack?: (a: string) => void; tableSelectedTab?: string; lineCheckOnClear?: () => void; } declare const ProductTeaser: FC; interface ProductTableSchema { content: any; metadata: any; setGenericErrorModalDetails: any; loginSuccess?: boolean; lineCheckCallBack?: () => void; changeAddressClicked?: any; tabCheckCallBack?: (tabId: string) => void; ratePlansToRemove?: string[]; isProdEnv?: boolean; } declare const ProductTableV3: FC; declare const StickyProductAnchor: ({ content, offerData, lineCheckCallBack }: any) => React.JSX.Element; interface StaticLinetableSchema { content: any; tabCheckCallBack?: any; setGenericErrorModalDetails: any; metadata: any; loginSuccess?: boolean; changeAddressClicked?: any; lineCheckCallBack?: any; linecheckSuccessCallBack?: any; selectedOption?: string; basicConfigUrl?: string; selectedExistingOption?: any; setLoginSuccess?: any; deviceFlow?: any; deviceFlowCallBack?: any; ubRatePlanObj?: any; lineCheckOnClear?: any; pegaIntegration?: boolean; pegaCustomerInterest?: string; useStoryblokOrder?: boolean; isProdEnv?: boolean; localCacheDuration?: number; } declare const StaticLineTable: FC; declare const LincheckModal: FC; declare const BenefitWrapper: ({ content, metadata, setGenericErrorModalDetails, loginSuccess, basicConfigUrl, setLoginSuccess, isProdEnv, }: any) => React.JSX.Element; declare const Breadcrumb: FC; declare const PreToPostSubsPopup: ({ onClose, content, prepaid, }: any) => JSX.Element; declare const HeroLoginBanner: FC; declare const CheckCoverage: FC; declare const DpLinetableContainer: ({ content, metadata, isProdEnv }: any) => React.JSX.Element; declare const CoverageCheckModal: FC; interface FreshBannerProps { image: Asset; } interface AuthDataSchema { firstName: string; lastName: string; personalisedName?: string; authenticationtype: string; hashedId: string; lastLoginDate: string; siteId: string; focusFunction: (code: string, uniqueId: string) => void; } interface AuthserviceSchema { authvalues: AuthDataSchema | undefined; setAuthService: (authService: boolean) => void; checklogin: () => void; modalData: boolean; } interface FreshBannerSchema { content: FreshBannerProps; metadata?: any; lineCheckCallBack?: () => void; lineCheckSuccessCallBack?: () => void; tableSelectedTab?: string; baseConfig?: string; authData?: AuthserviceSchema | undefined; lineCheckOnClear?: () => void; isProdEnv: boolean; } declare const FreshProductBannerHome: FC; declare const DeviceCards: FC; declare const StickyBottomSheet: FC; type StepItem = { Title: string; subTitle?: string; }; type ProgressionBarProps = { step: number | string; steps: StepItem[]; }; declare const ProgressionBar: ({ step, steps }: ProgressionBarProps) => JSX.Element; interface OttServiceOptionsSmallPopupProps { content: any; addOptionsCallBack: (option?: any[] | undefined) => void; metadata: any; constants: any; mainContent: any; preSelectedOptions: any[]; optionsResponse: any[]; updateResponseList?: (list: any) => void; showPrice?: any; productData?: any; offeringData?: any; uniqueId?: any; deviceFlow?: any; } declare const OttServiceOptionsSmallPopup: ({ content, addOptionsCallBack, metadata, constants, mainContent, preSelectedOptions, optionsResponse, updateResponseList, showPrice, productData, offeringData, uniqueId, deviceFlow }: OttServiceOptionsSmallPopupProps) => React.JSX.Element; interface paymentOptionSchema { paymentSubText: string; paymentText: string; type: string; } interface MultiItemAccessoriesSchema extends GenericSBProps { component: '"AccessoriesRecommendationCards"'; accessoriesLabel: string; addCartBtnIcon: any; addCartBtntext: string; checkoutBtnText: string; checkoutLabel: string; compatibleText: string; customizeDeviceLabel: string; monthlyPaymentLabel: string; monthlyDownPaymentLabel: string; oneTimePaymentLabel: string; pickYourDeviceLabel: string; recommendationLabel: any; removeCartBtnIcon: any; removeCartBtnText: string; yourSubscriptionLabel: string; progressionBar: any; addtocartButton: FalconButtonSchema[]; removefromcartButton: FalconButtonSchema[]; proceedtocheckoutButton: FalconButtonSchema[]; parentSlugUrl: string; multiItemCheckoutUrl: any; accessoriesLimit: number; accessoriesColorLabel: string; totalText: string; monthlyText: string; errorModal: any; retryButton: any; cancelButtonLinkText: any; cartLimitWarningText: any; cartLimitModal: any; cartLimitBtnText: string; paymentOptions: paymentOptionSchema[]; paymentHeadingText: string; winAccessoriesLimit: number; winLimitWarningText: any; winCheckoutUrl: any; ratePlanAccessoriesLimit: number; recommendationType: []; defaultTabSelection: string; tabletMasterList: any; watchMasterList: any; continueButtonCartCreation: boolean; watchesInfoBannerText: any; learnMoreText: any; tabletsInfoBannerText: any; esimIcon: any; watchesHeading: any; tabletsHeading: any; watchesPopup: any; tabletsPopup: any; watchesSelectionPopup: any; tabletsSelectionPopup: any; accessoryTitle: string; watchesTitle: string; tabletsTitle: string; yourSelectionTitle: string; selectionSummaryPlusIcon: any; selectionSummaryExpandIcon: any; selectionSummaryCollapseIcon: any; enableSelectionSummary: boolean; selectionSummaryDeleteIcon: any; updatingCartBundling: string; accessoryAnalyticsTitle: string; watchesAnalyticsTitle: string; tabletsAnalyticsTitle: string; enableExistingSubscription: boolean; } interface MultiItemAccessoriesProps extends ComponentWithContentProps { setAccessoriesSelected?: (accessories: any[]) => void; } declare const MultiItemAccessoriesWithProvider: (props: MultiItemAccessoriesProps) => JSX.Element; interface NotificationToastProps { title: string; message: string; show: boolean; delay?: number; onClose: () => void; } declare const NotificationToast: ({ title, message, show, onClose, delay }: NotificationToastProps) => JSX.Element; type StoryblokReferenceBlock = { component?: string; reference?: { content?: { body?: any; }; }; }; interface RecommendedOptionsTabItem extends GenericSBProps { tabKey: string; tabLabel: string; active: boolean; optionsList: string[]; filterOptions?: StoryblokReferenceBlock | StoryblokReferenceBlock[]; } interface OptionCardData extends GenericSBProps { id: string; title: string; description: string | Array; price?: string; priceUnit?: string; priceHelpText?: string; isQuantifiable?: boolean; maxQuantity?: number; moreDetailsLink?: string; productImage?: Asset; } interface TranslationItem extends GenericSBProps { key: string; label: string; component: 'translationItem'; } type RecommendedOptionsTranslations = TranslationItem[]; interface RecommendedOptionsSchema extends GenericSBProps { segmentTypes: any; listHeightMobile: boolean; listHeightDesktop: number | string; categories: any; optionCatalogPath: string; headline: string; description: string | Array; tabs: RecommendedOptionsTabItem[]; translations: RecommendedOptionsTranslations; updateCartData: (cartData: any) => void; allowMultipleOptionsSelection?: boolean; optionSelected?: string; continueButtonLabel?: string; } type ServiceOptionSelectionPayload = { id: string; isSelected: boolean; quantity: number; category: string; tabKey: string; offer: any; product: any; }; interface RecommendedOptionsCallbacks { onAddToPlan?: (optionId: string, quantity?: number) => void; onQuantityChange?: (optionId: string, quantity: number) => void; onServiceOptionSelect?: (payload: ServiceOptionSelectionPayload) => void; className?: string; 'aria-label'?: string; optionDataResolver?: (optionIds: string[]) => OptionCardData[]; } declare const RecommendedOptions: React.FC & RecommendedOptionsCallbacks & { cartItem?: any; activelocaleId?: string; updateCartData?: (cartData: unknown) => void; isPartialFetching?: boolean; onSuccess?: () => void; }>; interface PriceCalculationStickyProps { totalOnetimeAmount?: number; totalRecurring?: number; onContinue?: () => void; currencySymbol?: string; isExpanded?: boolean; onToggle?: (expanded: boolean) => void; cartData?: Record; content?: any; flow?: string; } declare const PriceCalculationSticky: React.FC; interface ProductItem { changeText: string; month: string; changeIcon: any; title: string; hsDevicesLabel: string; hsAdditionalAccLabel: string; } interface OttMiniSummaryCardProps { content: ProductItem; cartData: any; redirectionUrl?: string; } declare const OttMiniSummaryCard: ({ content, cartData, redirectionUrl }: OttMiniSummaryCardProps) => JSX.Element; interface GenericMessageSchema { content: any; status: string; outerClass?: string; icon?: '' | 'message' | 'send' | 'warning' | 'tip'; } declare const GenericMessage: ({ content, status, outerClass, icon }: GenericMessageSchema) => JSX.Element; interface TimerSchema { startTime: string; endTime: string; labelPlacement?: 'top' | 'bottom'; promoLabel?: string; timerColor?: string; backgroundColor: string; dayLabel: string; hourLabel: string; minuteLabel: string; secondLabel: string; mainHeading: string; enableCounter: boolean; } interface StaticLineTabelTimer { content: TimerSchema; hasHighlightText?: boolean; onTimerChange?: (active: boolean) => void; } declare const StaticLineTabelTimer: ({ content, hasHighlightText, onTimerChange }: StaticLineTabelTimer) => JSX.Element | null; interface SpacerSchema extends GenericSBProps { height: number; mobHeight: number; backgroundColor: FalconBackgroundColor; desktopHeight: number; gradientBackgroundGlobal?: string; isFullWidth?: boolean; } declare const Spacer: FC>; interface LineTableBasicPropConfigSchema { baseURL: string | ''; cartURL?: string | ''; storyBlokURL?: string | ''; } declare class LineTableBasicPropConfig { private static instance; config: LineTableBasicPropConfigSchema; private constructor(); getConfig: () => LineTableBasicPropConfigSchema; getBaseUrl: () => string; getCartUrl: () => string; getSBUrl: () => string; static getInstance: () => LineTableBasicPropConfig; static create: (p_config: LineTableBasicPropConfigSchema) => void; } interface AssetPathPropConfigSchema { assetPath: string | ''; basicConfigUrl?: string | ''; } declare class AssetPathPropConfig { private static instance; config: AssetPathPropConfigSchema; private constructor(); getAssetPath: () => string; getBasicConfigUrl: () => string; static getInstance: () => AssetPathPropConfig; static create: (path_config: AssetPathPropConfigSchema) => void; } interface ProductTeaserPropConfigSchema { baseURL: string | ""; cartURL: string | ""; } declare class ProductTeaserPropConfig { private static instance; config: ProductTeaserPropConfigSchema; private constructor(); getConfig: () => ProductTeaserPropConfigSchema; getBaseUrl: () => string; getCartUrl: () => string; static getInstance: () => ProductTeaserPropConfig; static create: (p_config: ProductTeaserPropConfigSchema) => void; } interface LinecheckBasicPropConfigSchema { baseURL: string | ''; } declare class LinecheckBasicPropConfig { private static instance; config: LinecheckBasicPropConfigSchema; private constructor(); getConfig: () => LinecheckBasicPropConfigSchema; getBaseUrl: () => string; static getInstance: () => LinecheckBasicPropConfig; static create: (p_config: LinecheckBasicPropConfigSchema) => void; } interface LoginBasicPropConfigSchema { baseURL: string | ""; } declare class LoginBasicPropConfig { private static instance; apiServiceObject?: ApiServiceV2; prop: any; config: LoginBasicPropConfigSchema; private constructor(); getConfig: () => LoginBasicPropConfigSchema; getBaseUrl: () => string; static getInstance: () => LoginBasicPropConfig; static create: (p_config: LoginBasicPropConfigSchema) => void; getAPIServiceObject: () => ApiServiceV2; } interface DevicePropSchema { baseURL: string | ''; } declare class DevicePropConfig { private static instance; config: DevicePropSchema; private constructor(); getConfig: () => DevicePropSchema; getBaseUrl: () => string; static getInstance: () => DevicePropConfig; static create: (p_config: DevicePropSchema) => void; } interface StickyBottomSheetPropConfigSchema { baseURL: string | ''; cartURL: string | ''; } declare class StickyBottomSheetPropConfig { private static instance; config: StickyBottomSheetPropConfigSchema; private constructor(); getConfig: () => StickyBottomSheetPropConfigSchema; getBaseUrl: () => string; getCartUrl: () => string; static getInstance: () => StickyBottomSheetPropConfig; static create: (p_config: StickyBottomSheetPropConfigSchema) => void; } interface ServiceOptionsPropConfigSchema { baseURL: string | ''; cartURL: string | ''; storyBlokURL: string | ''; } declare class ServiceOptionsPropConfig { private static instance; config: ServiceOptionsPropConfigSchema; private constructor(); getConfig: () => ServiceOptionsPropConfigSchema; getBaseUrl: () => string; getCartUrl: () => string; getSBUrl: () => string; static getInstance: () => ServiceOptionsPropConfig; static create: (p_config: ServiceOptionsPropConfigSchema) => void; } export { AssetPathPropConfig, BenefitWrapper, Breadcrumb, Button, Card, CardEntitlement, CarouselComponent as CarouselComp, CheckCoverage, CoverageCheckModal, DeviceCards as DeviceCard, DevicePropConfig, DpLinetableContainer as DpLinetable, FreshProductBannerHome, GenericMessage, HeroLoginBanner as HeroLogin, LineTableBasicPropConfig, LinecheckBasicPropConfig, LincheckModal as LinecheckModal, LoginBasicPropConfig, LoginModal as LoginModalV2, MultiItemAccessoriesWithProvider, NotificationToast, OttMiniSummaryCard as OttMiniCard, OttServiceOptionsSmallPopup, PreToPostSubsPopup as PretoPostSubsPopup, PriceCalculationSticky, ProductTableV3, ProductTeaser, ProductTeaserPropConfig, ProgressionBar, RecommendedOptions, ServiceOptionsPropConfig, Spacer, StaticLineTabelTimer, StaticLineTable, StickyBottomSheet, StickyBottomSheetPropConfig, StickyProductAnchor }; export type { AssetPathPropConfigSchema, DevicePropSchema, LineTableBasicPropConfigSchema, LinecheckBasicPropConfigSchema, LoginBasicPropConfigSchema, ProductTeaserPropConfigSchema, ServiceOptionsPropConfigSchema, StickyBottomSheetPropConfigSchema, TimerSchema };