import { SxProps } from './theme'; export type SlotCommonProps = { /** * The root node component, which can be specified as either * a string representing an HTML tag or a React component. */ component?: React.ElementType; /** * The system prop that allows defining system overrides as well as additional CSS styles. */ sx?: SxProps; }; export type SlotProps = (Omit, 'color'> & TOverrides & SlotCommonProps & Record) | ((ownerState: TOwnerState) => Omit, 'color'> & TOverrides & SlotCommonProps & Record); /** * Use the keys of `Slots` to make sure that K contains all of the keys * * @example CreateSlotsAndSlotProps<{ root: React.ElementType, decorator: React.ElementType }, { root: ..., decorator: ... }> */ export type CreateSlotsAndSlotProps> = { /** * The components used for each slot inside. * @default {} */ slots?: Slots; /** * The props used for each slot inside. * @default {} */ slotProps?: { [P in keyof K]?: K[P]; }; };