import { ReactNode, ReactElement, JSXElementConstructor } from 'react'; export type ReactTag = keyof JSX.IntrinsicElements | JSXElementConstructor; declare let __: "1D45E01E-AF44-47C4-988A-19A94EBAF55C"; export type __ = typeof __; export type Expand = T extends infer O ? { [K in keyof O]: O[K]; } : never; export type PropsOf = TTag extends React.ElementType ? Omit, 'ref'> : never; type PropsWeControl = 'as' | 'children' | 'refName' | 'className'; type CleanProps = Omit, TOmitableProps | PropsWeControl>; type OurProps = { as?: TTag; children?: ReactNode | ((bag: TSlot) => ReactElement); refName?: string; }; type HasProperty = T extends never ? never : K extends keyof T ? true : never; type ClassNameOverride = true extends HasProperty, 'className'> ? { className?: PropsOf['className'] | ((bag: TSlot) => string); } : {}; export type Props = CleanProps & OurProps & ClassNameOverride & Overrides; type Without = { [P in Exclude]?: never; }; export type XOR = T | U extends __ ? never : T extends __ ? U : U extends __ ? T : T | U extends object ? (Without & U) | (Without & T) : T | U; export type ByComparator = (T extends null ? string : keyof T & string) | ((a: T, b: T) => boolean); export type EnsureArray = T extends any[] ? T : Expand[]; export {};