import { ImageStyle, TextStyle, ViewStyle } from 'react-native';
import { Palette, PaletteInput } from './Palette';
import { ThemeTypography, ThemeTypographyInput } from './Typography';
import { MaybeThunk } from '../../utils';
export interface ComponentStyles {
    [key: string]: ViewStyle | TextStyle | ImageStyle | {
        [prop: string]: string;
    };
}
export interface ThemeValue {
    /** Component styles */
    components: {
        [key: string]: MaybeThunk<ComponentStyles>;
    };
    shape: {
        borderRadius: number;
        [key: string]: any;
    };
    spacing: {
        unit: number;
        [key: string]: any;
    };
    typography: ThemeTypography;
    palette: Palette;
    [key: string]: any;
}
export interface ThemeValueInput {
    components?: ThemeValue['components'];
    shape?: Partial<ThemeValue['shape']>;
    spacing?: Partial<ThemeValue['spacing']>;
    typography?: ThemeTypographyInput;
    palette?: PaletteInput;
}
