import { TextStyle, ViewStyle } from 'react-native'; export interface ColorTheme { primary: string; primaryLight: string; primaryDark: string; secondary: string; secondaryLight: string; secondaryDark: string; background: string; surface: string; card: string; text: string; subtext: string; textSecondary: string; textDisabled: string; success: string; warning: string; error: string; info: string; border: string; divider: string; overlay: string; shadow: string; [key: string]: string; } export interface NavigationTheme { height: number; backgroundColor: string; borderColor: string; shadowColor: string; titleColor: string; titleSize: number; titleWeight: TextStyle['fontWeight']; iconColor: string; iconActiveColor: string; iconSize: number; labelColor: string; labelActiveColor: string; labelSize: number; labelWeight: TextStyle['fontWeight']; badgeBackgroundColor: string; badgeTextColor: string; badgeSize: number; } export interface TextTheme { h1: TextStyle; h2: TextStyle; h3: TextStyle; h4: TextStyle; h5: TextStyle; h6: TextStyle; body1: TextStyle; body2: TextStyle; caption: TextStyle; overline: TextStyle; button: TextStyle; link: TextStyle; [key: string]: TextStyle; } export interface ButtonTheme { primary: { backgroundColor: string; textColor: string; borderWidth: number; borderColor: string; borderRadius: number; height: number; paddingHorizontal: number; fontSize: number; fontWeight: TextStyle['fontWeight']; }; secondary: { backgroundColor: string; textColor: string; borderColor: string; borderRadius: number; height: number; paddingHorizontal: number; fontSize: number; fontWeight: TextStyle['fontWeight']; }; outline: { backgroundColor: string; textColor: string; borderColor: string; borderRadius: number; height: number; paddingHorizontal: number; fontSize: number; fontWeight: TextStyle['fontWeight']; }; text: { backgroundColor: string; textColor: string; borderColor: string; borderRadius: number; height: number; paddingHorizontal: number; fontSize: number; fontWeight: TextStyle['fontWeight']; }; disabled: { backgroundColor: string; textColor: string; borderColor: string; }; } export interface InputTheme { default: { backgroundColor: string; borderWidth: number; borderColor: string; borderRadius: number; height: number; paddingHorizontal: number; paddingVertical: number; fontSize: number; textColor: string; placeholderColor: string; }; focused: { borderColor: string; borderWidth: number; shadowColor: string; }; error: { borderColor: string; backgroundColor: string; }; disabled: { backgroundColor: string; textColor: string; borderColor: string; }; label: { fontSize: number; fontWeight: TextStyle['fontWeight']; color: string; marginBottom: number; }; helperText: { fontSize: number; color: string; marginTop: number; }; errorText: { fontSize: number; color: string; marginTop: number; }; } export interface SpacingTheme { xs: number; sm: number; md: number; lg: number; xl: number; xxl: number; } export interface BorderRadiusTheme { xs: number; sm: number; md: number; lg: number; xl: number; round: number; } export interface ShadowTheme { small: ViewStyle; medium: ViewStyle; large: ViewStyle; } export interface BaseTheme { colors: ColorTheme; navigation: NavigationTheme; text: TextTheme; button: ButtonTheme; input: InputTheme; spacing: SpacingTheme; borderRadius: BorderRadiusTheme; shadow: ShadowTheme; } export interface ThemeConfig { colors?: Partial; navigation?: Partial; text?: Partial; button?: Partial; input?: Partial; spacing?: Partial; borderRadius?: Partial; shadow?: Partial; } export interface LayoutTheme { container: ViewStyle; row: ViewStyle; column: ViewStyle; center: ViewStyle; flex1: ViewStyle; alignCenter: ViewStyle; alignStart: ViewStyle; alignEnd: ViewStyle; alignStretch: ViewStyle; justifyCenter: ViewStyle; justifyStart: ViewStyle; justifyEnd: ViewStyle; justifyBetween: ViewStyle; justifyAround: ViewStyle; justifyEvenly: ViewStyle; rowCenter: ViewStyle; rowStart: ViewStyle; rowEnd: ViewStyle; rowBetween: ViewStyle; rowAround: ViewStyle; rowEvenly: ViewStyle; columnCenter: ViewStyle; columnStart: ViewStyle; columnEnd: ViewStyle; columnBetween: ViewStyle; columnAround: ViewStyle; columnEvenly: ViewStyle; absolute: ViewStyle; relative: ViewStyle; absoluteFill: ViewStyle; absoluteTop: ViewStyle; absoluteBottom: ViewStyle; absoluteLeft: ViewStyle; absoluteRight: ViewStyle; absoluteCenter: ViewStyle; absoluteTopLeft: ViewStyle; absoluteTopRight: ViewStyle; absoluteBottomLeft: ViewStyle; absoluteBottomRight: ViewStyle; } export interface BorderRadiusStyles { none: ViewStyle; xs: ViewStyle; sm: ViewStyle; md: ViewStyle; lg: ViewStyle; xl: ViewStyle; round: ViewStyle; topLeft: (size: number) => ViewStyle; topRight: (size: number) => ViewStyle; bottomLeft: (size: number) => ViewStyle; bottomRight: (size: number) => ViewStyle; top: (size: number) => ViewStyle; bottom: (size: number) => ViewStyle; left: (size: number) => ViewStyle; right: (size: number) => ViewStyle; } export interface ShadowStyles { none: ViewStyle; xs: ViewStyle; sm: ViewStyle; md: ViewStyle; lg: ViewStyle; xl: ViewStyle; top: ViewStyle; bottom: ViewStyle; left: ViewStyle; right: ViewStyle; inner: ViewStyle; glow: ViewStyle; } export interface BorderStyles { none: ViewStyle; thin: ViewStyle; medium: ViewStyle; thick: ViewStyle; top: ViewStyle; bottom: ViewStyle; left: ViewStyle; right: ViewStyle; horizontal: ViewStyle; vertical: ViewStyle; solid: ViewStyle; dashed: ViewStyle; dotted: ViewStyle; } export interface SpacingStyles { p0: ViewStyle; pXs: ViewStyle; pSm: ViewStyle; pMd: ViewStyle; pLg: ViewStyle; pXl: ViewStyle; pXxl: ViewStyle; pxXs: ViewStyle; pxSm: ViewStyle; pxMd: ViewStyle; pxLg: ViewStyle; pxXl: ViewStyle; pxXxl: ViewStyle; pyXs: ViewStyle; pySm: ViewStyle; pyMd: ViewStyle; pyLg: ViewStyle; pyXl: ViewStyle; pyXxl: ViewStyle; ptXs: ViewStyle; ptSm: ViewStyle; ptMd: ViewStyle; ptLg: ViewStyle; ptXl: ViewStyle; ptXxl: ViewStyle; pbXs: ViewStyle; pbSm: ViewStyle; pbMd: ViewStyle; pbLg: ViewStyle; pbXl: ViewStyle; pbXxl: ViewStyle; plXs: ViewStyle; plSm: ViewStyle; plMd: ViewStyle; plLg: ViewStyle; plXl: ViewStyle; plXxl: ViewStyle; prXs: ViewStyle; prSm: ViewStyle; prMd: ViewStyle; prLg: ViewStyle; prXl: ViewStyle; prXxl: ViewStyle; m0: ViewStyle; mXs: ViewStyle; mSm: ViewStyle; mMd: ViewStyle; mLg: ViewStyle; mXl: ViewStyle; mXxl: ViewStyle; mxXs: ViewStyle; mxSm: ViewStyle; mxMd: ViewStyle; mxLg: ViewStyle; mxXl: ViewStyle; mxXxl: ViewStyle; myXs: ViewStyle; mySm: ViewStyle; myMd: ViewStyle; myLg: ViewStyle; myXl: ViewStyle; myXxl: ViewStyle; mtXs: ViewStyle; mtSm: ViewStyle; mtMd: ViewStyle; mtLg: ViewStyle; mtXl: ViewStyle; mtXxl: ViewStyle; mbXs: ViewStyle; mbSm: ViewStyle; mbMd: ViewStyle; mbLg: ViewStyle; mbXl: ViewStyle; mbXxl: ViewStyle; mlXs: ViewStyle; mlSm: ViewStyle; mlMd: ViewStyle; mlLg: ViewStyle; mlXl: ViewStyle; mlXxl: ViewStyle; mrXs: ViewStyle; mrSm: ViewStyle; mrMd: ViewStyle; mrLg: ViewStyle; mrXl: ViewStyle; mrXxl: ViewStyle; } export interface SizeStyles { w0: ViewStyle; wXs: ViewStyle; wSm: ViewStyle; wMd: ViewStyle; wLg: ViewStyle; wXl: ViewStyle; wFull: ViewStyle; wScreen: ViewStyle; h0: ViewStyle; hXs: ViewStyle; hSm: ViewStyle; hMd: ViewStyle; hLg: ViewStyle; hXl: ViewStyle; hFull: ViewStyle; hScreen: ViewStyle; minW0: ViewStyle; minWFull: ViewStyle; minH0: ViewStyle; minHFull: ViewStyle; minHScreen: ViewStyle; maxWFull: ViewStyle; maxWScreen: ViewStyle; maxHFull: ViewStyle; maxHScreen: ViewStyle; } export interface StylePresets { layout: LayoutTheme; borderRadius: BorderRadiusStyles; shadow: ShadowStyles; border: BorderStyles; spacing: SpacingStyles; size: SizeStyles; } export interface Theme extends BaseTheme { readonly styles: StylePresets; } export type ThemeMode = 'light' | 'dark' | 'system'; export interface UseThemeReturn { theme: BaseTheme; fullTheme: Theme; styles: StylePresets; updateTheme: (config: ThemeConfig) => Promise; resetTheme: () => Promise; isDark: boolean; toggleDarkMode: () => Promise; setThemeMode: (mode: ThemeMode) => Promise; currentMode: ThemeMode; } //# sourceMappingURL=types.d.ts.map