import { Palette, Theme, ThemeOptions, Breakpoints } from '@mui/material/styles'; import { SemanticThemeTokens, GlobalThemeTokens } from './tokens'; import { ILayout } from './create-layout'; import { IComponentsOptions } from './create-components'; import { IMixins } from './create-mixins'; import { ITypography, ITypographyOptions } from './create-typography'; export type IThemeOptions = Omit & { components?: IComponentsOptions['components']; typography?: ((partialTheme: { palette: Palette; breakpoints: Breakpoints; }) => ITypographyOptions) | ITypographyOptions; }; interface IThemeCustomProps { layout: ILayout; typography: ITypography; mixins: IMixins; /** Returns spacing as px number value without the unit */ spacingPX(factor: number): number; tokens: SemanticThemeTokens; unsafe_globalTokens: GlobalThemeTokens; } export type ITheme = Theme & IThemeCustomProps; export declare const createTheme: ({ layout: layoutOptions, components: componentsOptions, palette: paletteOptions, typography: typographyOptions, breakpoints: breakpointsOptions, tokens, ...options }?: IThemeOptions) => ITheme; export {};