/** * @reach/polymorphic v0.18.0 * * Copyright (c) 2018-2022, React Training LLC * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */ import * as 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 };