export interface Subscriptions { billingDetails: { paymentMethod: { cardNumber: string | null; cardType: string | null; expirationMonth: number | null; expirationYear: number | null; }; }; cpn: string; currency: string; serviceCancellationDate: string | null; id: string; isActive: boolean; price: number; startDate: string; status: string; type: string; } export interface CustomerPaymentFailure { active: boolean; startDate?: string | null; } export interface Country { countryIsoCode?: string; name?: string; } export interface Address { line1: string | null; line2: string | null; line3: string | null; country: Country | null; county: string | null; city: string | null; postcode: string | null; } export interface Account { optOut: boolean; } export interface UserData { firstName: string; lastName: string; cpn: string; email: string; hash: string; mobile: string; phoneNumber: string; dateOfBirth: any; displayName?: string; subscriptions: Subscriptions[]; paymentFailure: CustomerPaymentFailure; address?: Address; account?: Account; } import { EventTrigger, MQ, UncompiledTheme } from 'newskit'; declare const IconFilledWarning: import("newskit").NewsKitIcon; export type NoticeProps = { bannerName: BannerName; noticeBanner: Notice; preset: BannerPresets; Icon: IconType; url: string; disableClose?: boolean; bannerContentOverrides?: Partial; hideBannerOverride?: { hideBanner: boolean; setHideBanner: React.Dispatch>; }; }; export type PastDueBannerTreshold = { firstNotice: number; secondNotice: number; }; export interface PastDueBannerType { firstNotice: Notice; secondNotice: Notice; terminated: Notice; toBeCancelled: Notice; paymentFailure?: Notice; toBeCancelledWithRefund: Notice | null; cancelled: Notice; treshold: PastDueBannerTreshold; cookieEnable?: boolean; disableClose?: boolean; bannerContentOverrides?: { content?: { spaceInline?: MQ; }; title?: { stylePreset?: MQ; typographyPreset?: MQ; }; message?: { stylePreset?: MQ; typographyPreset?: MQ; }; button?: { stylePreset?: MQ; eventContext?: { event_navigation_action: string; event_navigation_name: string; event_navigation_browsing_method: EventTrigger; }; }; }; } export type PastDueBannerExternalProps = { className?: string; pastDueBanner?: PastDueBannerType; user: UserData; wrapper?: React.ComponentType; theme?: UncompiledTheme; }; type BannerName = 'firstNoticeBanner' | 'secondNoticeBanner' | 'terminatedBanner' | 'toBeCancelledBanner' | 'toBeCancelledWithRefundBanner' | 'cancelledBanner' | 'paymentFailureBanner'; export type BannerInfo = { bannerName: BannerName; notice: Notice; preset: BannerPresets; buttonHref?: string; icon: IconType; }; export type BannerPresets = 'pastDueFirstNotice' | 'pastDueLastNotice' | 'sunInformative'; export type Notice = { title: string; text: string; alternativeText?: string; enabled?: boolean; dismissDays?: number; phoneNumber?: string; button?: string; buttonHref?: string; link?: { linkLocation: string; linkText: string; }; onClick?: (event: React.MouseEvent) => Promise; }; export interface NoticeDates { serviceCancellationDate?: string; pastDueDate?: string | null; status: string; } export type IconType = typeof IconFilledWarning; export {};