import * as React from 'react'; import { Color } from './colors'; import { ViewStyle, TextStyle, ImageStyle, ImageBackgroundProps } from 'react-native'; export type Typography = { fontFamily: string; fontSize: number; fontWeightLight: 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'; fontWeightRegular: 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'; fontWeightMedium: 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'; }; export type ThemeConfig = Record> = Partial<{ shape: Shape; palette: Partial; spacing: number; business: B; overrides: O; typography: Partial; }>; export type Theme = Record> = { shape: Shape; palette: Palette; spacing: number; business: Status & B; overrides: O; typography: Typography; }; export type Shape = { borderRadius: number; }; export type PaletteIntention = Partial; export type Palette = { common: CommonColors; type: PaletteType; contrastThreshold: number; tonalOffset: number; primary: PaletteColor; secondary: PaletteColor; grey: Color; text: Text; divider: Divider; modifier: Modifier; background: Background; state: { hover: OverlayOpacity; focus: OverlayOpacity; selected: OverlayOpacity; activated: OverlayOpacity; pressed: OverlayOpacity; draged: OverlayOpacity; }; }; type CommonColors = { black: string; white: string; }; type PaletteType = 'light' | 'dark'; export type PaletteColor = { light: string; main: string; dark: string; contrastText: string; }; type BackgroundTheme = { container: ImageBackgroundProps['style']; image?: ImageBackgroundProps['imageStyle']; }; type Background = { statusBar: BackgroundTheme; appBar: BackgroundTheme; default: BackgroundTheme; paper: BackgroundTheme; }; type Divider = string; type Text = { primary: string; secondary: string; disabled: string; hint: string; }; type Modifier = { active: string; hover: string; hoverOpacity: number; selected: string; disabled: string; disabledBackground: string; }; type Status = { error: PaletteColor; valid: PaletteColor; warning: PaletteColor; }; export type DefaultTheme = Theme; export type OverlayOpacity = { light: number; medium: number; dark: number; }; export declare const defaultTheme: DefaultTheme; export type NamedStyles = Record; export declare function override>(overrides: C, compName: K, slot: S): NamedStyles | undefined; export declare function createThemeContext(theme: T): React.Context; export {};