import React from 'react'; import { StyleSheet } from 'react-native'; import { Ux4gColors } from '../foundation/colors'; import { Ux4gTypography } from '../foundation/typography'; import { Ux4gSpace, Ux4gRadius, Ux4gBorderWidth } from '../foundation/dimensions'; export interface Ux4gThemeData { isDark: boolean; colors: Ux4gColors; typography: Ux4gTypography; space: typeof Ux4gSpace; radius: typeof Ux4gRadius; borderWidth: typeof Ux4gBorderWidth; setTheme: (isDark: boolean) => void; toggleTheme: () => void; } export declare const Ux4gThemeContext: React.Context; export interface Ux4gThemeProviderProps { children: React.ReactNode; /** Initial or controlled dark theme state */ isDark?: boolean; /** Custom color overrides applied on top of light/dark defaults */ colors?: Partial; /** Custom typography overrides applied on top of default scale */ typography?: Partial; } export declare const Ux4gThemeProvider: React.FC; /** * Hook to access current UX4G theme tokens (`colors`, `typography`, `space`, `radius`, `borderWidth`, and theme controls). */ export declare const useUx4gTheme: () => Ux4gThemeData; /** * Hook to create dynamic, memoized React Native styles that recalculate automatically when theme tokens change. * * @example * ```tsx * const styles = useUx4gStyleSheet((theme) => ({ * container: { * backgroundColor: theme.colors.primary, * padding: theme.space.space16, * borderRadius: theme.radius.radius8, * }, * })); * ``` */ export declare const useUx4gStyleSheet: | StyleSheet.NamedStyles>(createStyles: (theme: Ux4gThemeData) => T) => T; //# sourceMappingURL=Ux4gThemeContext.d.ts.map