1 | import React from 'react';
|
2 | import { FullTheme, Theme } from './theme';
|
3 | declare type RecursivePartial<T> = {
|
4 | [P in keyof T]?: RecursivePartial<T[P]>;
|
5 | };
|
6 | export interface ThemeProps<T> {
|
7 | theme: Theme<T>;
|
8 | updateTheme: (updates: RecursivePartial<FullTheme>) => void;
|
9 | replaceTheme: (updates: RecursivePartial<FullTheme>) => void;
|
10 | }
|
11 | export declare const ThemeContext: React.Context<ThemeProps<{}>>;
|
12 | export declare type ThemeProviderProps = {
|
13 | useDark?: boolean;
|
14 | };
|
15 | declare type ThemeProviderState = {
|
16 | theme: Theme;
|
17 | useDark: boolean;
|
18 | };
|
19 | export default class ThemeProvider extends React.Component<ThemeProviderProps, ThemeProviderState> {
|
20 | static defaultProps: {
|
21 | theme: {};
|
22 | useDark: boolean;
|
23 | };
|
24 | defaultTheme: Partial<FullTheme>;
|
25 | constructor(props: {
|
26 | theme: Theme;
|
27 | useDark?: boolean;
|
28 | });
|
29 | static getDerivedStateFromProps(props: {
|
30 | theme: Theme;
|
31 | useDark?: boolean;
|
32 | }, state: ThemeProviderState): {
|
33 | theme: FullTheme;
|
34 | useDark: boolean;
|
35 | };
|
36 | updateTheme: (updates: RecursivePartial<FullTheme>) => void;
|
37 | replaceTheme: (theme: RecursivePartial<FullTheme>) => void;
|
38 | getTheme: () => Partial<FullTheme>;
|
39 | render(): JSX.Element;
|
40 | }
|
41 | export declare const ThemeConsumer: React.Consumer<ThemeProps<{}>>;
|
42 | export {};
|