import * as React from 'react'; import { StyleObject, StyletronComponent, WithStyleFn as StyletronWithStyleFn, StyledFn as StyletronStyledFn, } from 'styletron-react'; import {Override, Overrides} from './overrides'; import {Locale} from './locale'; import {Theme, ThemePrimitives} from './theme'; type UseStyletronFn = () => [(arg: StyleObject) => string, Theme]; export function createThemedUseStyletron(): UseStyletronFn; export const useStyletron: UseStyletronFn; export function createTheme

( primitives: Partial, overrides?: P, ): Theme & P; export function createLightTheme

( primitives: Partial, overrides?: P, ): Theme & P; export function createDarkTheme

( primitives: Partial, overrides?: P, ): Theme & P; export function mergeOverrides( target?: Overrides, source?: Overrides, ): Overrides; export function styled< P extends object, C extends keyof JSX.IntrinsicElements | React.ComponentType, T = Theme >( component: C, styledFn: StyleObject | ((props: {$theme: T} & P) => StyleObject), ): StyletronComponent< Pick< React.ComponentProps, Exclude, {className: string}> > & P >; export const LightTheme: Theme; export const LightThemeMove: Theme; export const lightThemePrimitives: ThemePrimitives; export const DarkTheme: Theme; export const DarkThemeMove: Theme; export const darkThemePrimitives: ThemePrimitives; export interface BaseProviderOverrides { AppContainer?: Override; LayersContainer?: Override; } export interface BaseProviderProps { children: React.ReactNode; theme: Theme; overrides?: BaseProviderOverrides; zIndex?: number; } export const BaseProvider: React.FC; export interface LocaleProviderProps { locale: Partial; children?: React.ReactNode; } export const LocaleProvider: React.FC; export interface ThemeProviderProps { theme: Theme; children?: React.ReactNode; } export const ThemeProvider: React.FC; export interface StyledFn extends StyletronStyledFn { < C extends keyof JSX.IntrinsicElements | React.ComponentType, P extends object >( component: C, style: (props: {$theme: T} & P) => StyleObject, ): StyletronComponent< Pick< React.ComponentProps, Exclude, {className: string}> > & P >; } export function createThemedStyled(): StyledFn; export interface WithStyleFn extends StyletronWithStyleFn { , P extends object, T1 = T>( component: C, style: (props: P & {$theme: T1}) => StyleObject, ): StyletronComponent & P>; } export const withStyle: WithStyleFn; export function createThemedWithStyle(): WithStyleFn;