import { OverridableTypeMap } from "."; import { DoRequired } from "./misc"; import { DefaultComponentProps, OverridableComponent } from "./overridable"; import { ElementType } from "./solid"; import { ComponentProps as _ComponentProps, JSX } from "solid-js"; export {}; export interface SuidComponentType { props: {}; name?: string; selfProps?: {}; defaultPropNames?: string; } export interface SuidElement { (props: DefaultComponentProps): JSX.Element; } export type InferPropsType = T extends (props: infer PropsType) => any ? PropsType : T extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[T] : never; export type PropsOf = T extends OverridableTypeMap ? DefaultComponentProps & { component?: ElementType; } : T extends SuidComponentType ? DefaultComponentProps : T extends OverridableComponent ? DefaultComponentProps & { component?: ElementType; } : T extends ElementType ? _ComponentProps : unknown; export type InPropsOf = T extends OverridableTypeMap | SuidComponentType ? OverridableInProps : T extends OverridableComponent ? OverridableInProps : T extends ElementType ? _ComponentProps : unknown; export type DefaultPropsOf = T extends OverridableTypeMap | SuidComponentType ? OverridableDefaultProps : T extends OverridableComponent ? OverridableDefaultProps : T extends ElementType ? _ComponentProps : unknown; export type OverridableDefaultProps = DoRequired & (T extends OverridableTypeMap ? { component: ElementType; } : {})>, T extends { defaultPropNames: keyof DefaultComponentProps; } ? T["defaultPropNames"] : never>; export type OverridableInProps = DoRequired & (T extends OverridableTypeMap ? { component: ElementType; } : {}), T extends { defaultPropNames: keyof DefaultComponentProps; } ? T["defaultPropNames"] : never>; //# sourceMappingURL=component.d.ts.map