import { IconPrefix, IconName } from '@fortawesome/fontawesome-svg-core'; import React, { ReactElement } from 'react'; import { CardStyling } from '../../organisms/Card/Card/Card'; import { Severity } from '../../atoms/Alert/Alert'; export declare type CustomIconVariant = 'exclamation'; interface ButtonTheme { text: string; bg: string; hover: string; border?: string; disabled?: { text?: string; bg?: string; border?: string; }; } interface ButtonsTheme { primary: ButtonTheme; secondary: ButtonTheme; link: ButtonTheme; borderRadius?: string; text?: { size?: string; height?: string; weight?: number; }; } export declare type AlertTheme = Record ReactElement; faVariant?: { prefix: IconPrefix; iconName: IconName; }; customVariant?: { iconName: CustomIconVariant; color: string; }; }>; interface CardInfo { headingSize: string; textSize: string; boxShadowStyle: string; borderStyle: string; backgroundStyle: string; borderRadius: string; } declare type CardTheme = Record; interface ErrorMessageTheme { textColor: string; backgroundColor: string; padding: string; icon: boolean; } interface FooterTheme { bgColor: string; className: string; showFooterLinks: boolean; showLogoBlock: boolean; showSocialBlock: boolean; showLegalBlock: boolean; legalBlock: { isFullWidth: boolean; color: string; }; } interface LabelTheme { margin: string; } interface InputTheme { color: string; placeholderColor: string; borderRadius: string; boxShadow: string; hover: { border: string; error: string; boxShadow: string; }; focus: { border: string; error: string; boxShadow: string; }; disabled: { color: string; backgroundColor: string; }; borderColorByStatus: { error: string; valid: string; disabled: string; default: string; }; iconColor: string; iconBackgroundColor: string; searchInput: { boxShadow: string; borderRadius: string; borderColor: string; customIcon: boolean; options: { borderRadius: string; hover: { color: string; backgroundColor: string; }; }; }; checkBox: { defaultColor: string; borderRadius: string; label: { borderRadius: string; backgroundColor: string; }; customIcon: boolean; }; } interface LinkTheme { color: string; weight: number; hover: { color: string; }; active: { color: string; }; disableTargetIcon: boolean; } interface NavbarTheme { iconContainer: { display: string; }; logo: { render: boolean; }; mobile: { minHeight: string; bgColor: string; }; } interface ProgressBarTheme { color: string; } interface ScrollableAreaTheme { scrollBarThumb: { borderRadius: string; border: string; bgColor: string; }; scrollBarTrack: { background: string; borderRadius: string; }; } interface ProductTemplate { title?: { backgroundColor?: string; }; } interface SpinnerTheme { spinnerTheme: 'zopa' | 'unbranded'; customSpinner?: { color: string; negativeColor: string; fillWidth: string; speed: number; }; } interface TypographyTheme { primary: string; text: { color: string; sizes: { lead: string; body: string; small: string; }; }; heading: { sizes: { display: string; h1: string; h2: string; h3: string; h4: string; h5: string; h6: string; }; }; lineHeight: { display: string; h1: string; h2: string; h3: string; h4: string; h5: string; h6: string; lead: string; body: string; small: string; }; letterSpacingMap: { text: string | 0; button: string | 0; display: string; h1: string; h2: string; h3: string; h4: string; h5: string; h6: string; }; weights: { regular: number; semiBold: number; bold: number; extraBold: number; }; } export interface AppTheme { alert: AlertTheme; button: ButtonsTheme; card: CardTheme; errorMessage: ErrorMessageTheme; footer: FooterTheme; label: LabelTheme; input: InputTheme; link: LinkTheme; progressBar: ProgressBarTheme; navbar: NavbarTheme; typography: TypographyTheme; scrollableArea: ScrollableAreaTheme; spinner: SpinnerTheme; productTemplate?: ProductTemplate; } export interface AppThemeProps { theme: AppTheme; } export declare const zopaTheme: AppTheme; export declare const useThemeContext: () => AppTheme; export declare const ThemeProvider: ({ children, theme, }: { children: React.ReactNode; theme: Partial | undefined; }) => JSX.Element; export {};