import * as React from "react"; import { FCReturn, JSXIntrinsicElementProps, ReactAttr, ReactComponentConstructor, ReactDivAttr, } from "../../../typings/shared"; // These are the props not spread onto the component supplied from the "as" prop (aliased BaseComponent in the src). interface GridBaseIsolatedProps { columns?: number | undefined; condensed?: boolean | undefined; fullWidth?: boolean | undefined; narrow?: boolean | undefined; } type SafeProps

= Omit; interface GridBaseProps extends GridBaseIsolatedProps { children?: React.ReactNode | undefined; className?: ReactAttr["className"] | undefined; } export type GridDefaultProps = & GridBaseProps & ReactDivAttr & { as?: undefined; }; export type GridIntrinsicProps = & GridBaseProps & SafeProps> & { as: K; }; export type GridCustomComponentProps< C extends ReactComponentConstructor, > = C extends ReactComponentConstructor ? & GridBaseProps & SafeProps

& { as: C; } : never; declare function Grid(props: GridDefaultProps): FCReturn; declare function Grid(props: GridIntrinsicProps): FCReturn; declare function Grid>(props: GridCustomComponentProps): FCReturn; export default Grid;