import * as React from 'react'; import type { StyletronComponent } from 'styletron-react'; import type { StyleObject } from 'styletron-standard'; import type { Theme } from './types'; export type { StyletronComponent }; type StyleFn = { , P extends {}, Theme = DefaultTheme>(component: C, style: StyleObject | ((props: Omit & { $theme: Theme; }) => StyleObject)): StyletronComponent; >(component: C, style: StyleObject): StyletronComponent; }; type WithStyleFn = { , P extends {}, Theme = DefaultTheme>(component: C, style: ((props: Omit & { $theme: Theme; } & (C extends StyletronComponent ? PP : never)) => StyleObject) | StyleObject): C extends StyletronComponent ? StyletronComponent : never; >(component: C, style: StyleObject): C; }; export declare function createThemedStyled(): StyleFn; export declare const styled: StyleFn; export declare function createThemedWithStyle(): WithStyleFn; export declare const withStyle: WithStyleFn; type UseStyletronFn = () => [(a: StyleObject) => string, Theme]; export declare function createThemedUseStyletron(): UseStyletronFn; export declare const useStyletron: UseStyletronFn; export declare function withWrapper, Props>(StyledElement: C, wrapperFn: (component: C) => (props: Props & (C extends StyletronComponent ? CP : never)) => React.ReactElement): C extends StyletronComponent ? StyletronComponent : never; /** @deprecated use StyleFn instead. To be removed in future versions.*/ export type StyletronStyledFn = StyleFn; /** @deprecated use WithStyleFn instead. To be removed in future versions.*/ export type StyletronWithStyleFn = WithStyleFn; /** @deprecated use StyleFn instead. To be removed in future versions.*/ export type StyledFn = StyleFn;