import React from 'react'; declare type Merge = Omit & P2; /** * Infers the OwnProps if E is a ForwardRefExoticComponentWithAs */ declare type OwnProps = E extends ForwardRefComponent ? P : {}; /** * Infers the JSX.IntrinsicElement if E is a ForwardRefExoticComponentWithAs */ declare type IntrinsicElement = E extends ForwardRefComponent ? I : never; declare type ForwardRefExoticComponent = React.ForwardRefExoticComponent : never, OwnProps & { as?: E; }>>; interface ForwardRefComponent extends ForwardRefExoticComponent { (props: As extends '' ? { as: keyof JSX.IntrinsicElements; } : As extends React.ComponentType ? Merge : As extends keyof JSX.IntrinsicElements ? Merge : never): React.ReactElement | null; } interface MemoComponent extends React.MemoExoticComponent> { (props: As extends '' ? { as: keyof JSX.IntrinsicElements; } : As extends React.ComponentType ? Merge : As extends keyof JSX.IntrinsicElements ? Merge : never): React.ReactElement | null; } export { ForwardRefComponent, IntrinsicElement, MemoComponent, Merge, OwnProps, }; declare const _default: {}; export default _default;