import { styled as scStyled } from 'styled-components';
import type * as React from 'react';
import type * as CSS from 'csstype';
import type * as hoistNonReactStatics from 'hoist-non-react-statics';
export type * from 'styled-components';
type WithOptionalTheme
= OmitU
& {
theme?: T | undefined;
};
export type PickU = T extends any ? { [P in K]: T[P] } : never;
export type OmitU = T extends any ? PickU> : never;
type Defaultize = P extends any ? string extends keyof P ? P : PickU
> & Partial>> & Partial>> : never;
export type IntrinsicElementsKeys = keyof React.JSX.IntrinsicElements;
type ReactDefaultizedProps = C extends {
defaultProps: infer D;
} ? Defaultize : P;
type MakeAttrsOptional, O extends object, A extends keyof P, P = React.ComponentPropsWithRef ? C : never>> = P extends any ? OmitU & O, A> & Partial> : never;
export type StyledComponentProps, T extends object, O extends object, A extends keyof any, FAsC extends string | React.ComponentType = C> = O extends object ? WithOptionalTheme & MakeAttrsOptional, T> : never;
export interface ThemeProps {
theme: T;
}
export type ThemedStyledProps = P & ThemeProps;
export interface Keyframes {
getName(): string;
}
declare const _default: typeof scStyled;
export default _default;
/**
* For internal usage in `@mui/system` package
*/
export declare function internal_mutateStyles(tag: React.ElementType, processor: (styles: any) => any): void;
export declare function internal_processStyles(tag: React.ElementType, processor: (styles: any) => any): void;
export declare function internal_serializeStyles(styles: Interpolation
): object;
export { ThemeContext, keyframes, css } from 'styled-components';
export { default as StyledEngineProvider } from "./StyledEngineProvider/index.js";
export { default as GlobalStyles } from "./GlobalStyles/index.js";
export type { GlobalStylesProps } from "./GlobalStyles/index.js";
export type CSSProperties = CSS.PropertiesFallback;
export type CSSPropertiesWithMultiValues = { [K in keyof CSSProperties]: CSSProperties[K] | Array> };
export type CSSPseudos = { [K in CSS.Pseudos]?: unknown | CSSObject };
export interface CSSOthersObject {
[propertiesName: string]: unknown | CSSInterpolation;
}
export type CSSPseudosForCSSObject = { [K in CSS.Pseudos]?: CSSObject };
export interface ArrayCSSInterpolation extends Array {}
export interface CSSOthersObjectForCSSObject {
[propertiesName: string]: CSSInterpolation;
}
export interface CSSObject extends CSSPropertiesWithMultiValues, CSSPseudos, Omit {}
interface CSSObjectWithVariants extends Omit {
variants: Array<{
props: Props | ((props: Props) => boolean);
style: CSSObject | ((args: Props extends {
theme: any;
} ? {
theme: Props['theme'];
} : any) => CSSObject);
}>;
}
export type FalseyValue = undefined | null | false;
export type Interpolation = InterpolationValue | CSSObjectWithVariants
| InterpolationFunction
| FlattenInterpolation
;
export type FlattenInterpolation
= ReadonlyArray>;
export type InterpolationValue = string | number | FalseyValue | Keyframes | StyledComponentInterpolation | CSSObject;
export type SimpleInterpolation = InterpolationValue | FlattenSimpleInterpolation;
export type CSSInterpolation = SimpleInterpolation;
export type FlattenSimpleInterpolation = ReadonlyArray;
export type InterpolationFunction = (props: P) => Interpolation
;
type ForwardRefExoticBase
= PickU, keyof React.ForwardRefExoticComponent>;
type StyledComponentPropsWithAs, T extends object, O extends object, A extends keyof any, AsC extends string | React.ComponentType = C, FAsC extends string | React.ComponentType = C> = StyledComponentProps & {
as?: AsC | undefined;
forwardedAs?: FAsC | undefined;
};
export type StyledComponent, T extends object = {}, O extends object = {}, A extends keyof any = never> = string & StyledComponentBase & hoistNonReactStatics.NonReactStatics ? C : never>;
export type AnyStyledComponent = StyledComponentInstance | React.FunctionComponent | React.ComponentType;
type StyledComponentInstance = StyledComponent | StyledComponent;
export type StyledComponentInnerComponent = C extends StyledComponent ? I : C extends StyledComponent ? I : C;
export type StyledComponentInnerOtherProps = C extends StyledComponent ? O : C extends StyledComponent ? O : never;
export type StyledComponentInnerAttrs = C extends StyledComponent ? A : never;
export type StyledComponentInnerProps = StyledComponentProps, T, StyledComponentInnerOtherProps, StyledComponentInnerAttrs>;
export interface StyledComponentBase, T extends object, O extends object = {}, A extends keyof any = never> extends ForwardRefExoticBase> {
(props: StyledComponentProps & {
as?: never | undefined;
forwardedAs?: never | undefined;
}): React.ReactElement>;
= C, FAsC extends string | React.ComponentType = AsC>(props: StyledComponentPropsWithAs): React.ReactElement>;
withComponent(component: WithC): StyledComponent, T, O & StyledComponentInnerOtherProps, A | StyledComponentInnerAttrs>;
withComponent>(component: WithC): StyledComponent;
}
type StyledComponentInterpolation = Pick, keyof StyledComponentBase> | Pick, keyof StyledComponentBase>;
type AnyIfEmpty = keyof T extends never ? any : T;
type ThemedStyledComponentFactories = { [TTag in keyof React.JSX.IntrinsicElements]: ThemedStyledFunctionBase };
export type StyledComponentPropsWithRef> = C extends AnyStyledComponent ? React.ComponentPropsWithRef> : React.ComponentPropsWithRef;
export interface ThemedStyledFunctionBase, T extends object, O extends object = {}, A extends keyof any = never> {
(first: TemplateStringsArray): StyledComponent;
(first: TemplateStringsArray | CSSObject | InterpolationFunction & O, T>>, ...other: Array & O, T>>>): StyledComponent;
(first: TemplateStringsArray | CSSObject | InterpolationFunction & O & U, T>>, ...other: Array & O & U, T>>>): StyledComponent;
}
export interface ThemedStyledFunction, T extends object, O extends object = {}, A extends keyof any = never> extends ThemedStyledFunctionBase {}
export type CreateStyledComponent = ThemedStyledFunction, T, SpecificComponentProps & JSXProps, A>;
export interface StyledConfig {
componentId?: string | undefined;
displayName?: string | undefined;
label?: string | undefined;
target?: string | undefined;
shouldForwardProp?: ((prop: keyof O, defaultValidatorFn: (prop: keyof O) => boolean) => boolean) | undefined;
}
/** Same as StyledConfig but shouldForwardProp must be a type guard */
export interface FilteringStyledOptions {
componentId?: string | undefined;
displayName?: string | undefined;
label?: string | undefined;
shouldForwardProp?(propName: PropertyKey): propName is ForwardedProps;
target?: string | undefined;
}
export interface ThemedBaseStyledInterface extends ThemedStyledComponentFactories {
= keyof StyledComponentInnerProps>(component: C, options: FilteringStyledOptions, ForwardedProps> & MuiStyledOptions): CreateStyledComponent, ForwardedProps> & MUIStyledCommonProps, StyledComponentInnerOtherProps, {}, Theme, StyledComponentInnerAttrs>;
(component: C, options?: StyledConfig & MUIStyledCommonProps> & MuiStyledOptions): CreateStyledComponent & MUIStyledCommonProps, StyledComponentInnerOtherProps, {}, Theme, StyledComponentInnerAttrs>;
>, ForwardedProps extends keyof React.ComponentProps = keyof React.ComponentProps>(component: C, options: FilteringStyledOptions, ForwardedProps> & MuiStyledOptions): CreateStyledComponent, ForwardedProps> & MUIStyledCommonProps, {}, {
ref?: React.Ref> | undefined;
}, Theme>;
>>(component: C, options?: StyledConfig & MUIStyledCommonProps> & MuiStyledOptions): CreateStyledComponent & MUIStyledCommonProps, {}, {
ref?: React.Ref> | undefined;
}, Theme>;
>, ForwardedProps extends keyof React.ComponentProps = keyof React.ComponentProps>(component: C, options: FilteringStyledOptions, ForwardedProps> & MuiStyledOptions): CreateStyledComponent, ForwardedProps> & MUIStyledCommonProps, {}, {}, Theme>;
>>(component: C, options?: StyledConfig & MUIStyledCommonProps> & MuiStyledOptions): CreateStyledComponent & MUIStyledCommonProps, {}, {}, Theme>;
(tag: Tag, options: FilteringStyledOptions & MuiStyledOptions): CreateStyledComponent, {}, Theme>;
(tag: Tag, options?: StyledConfig & MuiStyledOptions): CreateStyledComponent;
}
export type CreateMUIStyled = ThemedBaseStyledInterface>;
export type PropsOf> = React.JSX.LibraryManagedAttributes>;
export interface MUIStyledComponent extends React.FC {
withComponent>>(component: C): MUIStyledComponent, {}, {
ref?: React.Ref> | undefined;
}>;
withComponent>>(component: C): MUIStyledComponent>;
withComponent(tag: Tag): MUIStyledComponent;
}