import {ComponentType, ReactNode, Context, RefObject} from 'react' import { CreateGenerateId, GenerateId, Jss, SheetsRegistry, Styles, StyleSheetFactoryOptions, CreateGenerateIdOptions, Classes } from 'jss' import {createTheming, useTheme, withTheme, ThemeProvider, Theming} from 'theming' declare const jss: Jss declare const createGenerateId: CreateGenerateId declare const JssProvider: ComponentType<{ jss?: Jss registry?: SheetsRegistry generateId?: GenerateId classNamePrefix?: string disableStylesGeneration?: boolean children: ReactNode id?: CreateGenerateIdOptions }> interface Managers { [key: number]: StyleSheet } declare const JssContext: Context<{ jss?: Jss registry?: SheetsRegistry managers?: Managers sheetOptions: StyleSheetFactoryOptions disableStylesGeneration: boolean }> interface WithStylesProps Styles)> { classes: Classes Styles ? keyof ReturnType : keyof S> } /** * @deprecated Please use `WithStylesProps` instead */ type WithStyles Styles)> = WithStylesProps export interface DefaultTheme {} interface BaseOptions extends StyleSheetFactoryOptions { index?: number theming?: Theming } interface WithStylesOptions extends BaseOptions { injectTheme?: boolean jss?: Jss } interface CreateUseStylesOptions extends BaseOptions { name?: string } declare function createUseStyles( styles: Styles | ((theme: Theme) => Styles), options?: CreateUseStylesOptions ): (data?: unknown) => Classes type GetProps = C extends ComponentType ? P : never declare function withStyles< ClassNames extends string | number | symbol, S extends Styles | ((theme: any) => Styles) >( styles: S, options?: WithStylesOptions ): ( comp: C ) => ComponentType< JSX.LibraryManagedAttributes< C, Omit, 'classes'> & Partial> & {innerRef?: RefObject | ((instance: any) => void)} > > export { SheetsRegistry, jss, createGenerateId, JssProvider, WithStylesProps, ThemeProvider, withTheme, createTheming, Theming, useTheme, JssContext, createUseStyles, Styles } export default withStyles