import * as React from 'react'; export type EventKey = string | number; export type IntrinsicElementTypes = keyof React.JSX.IntrinsicElements; export type AssignPropsWithRef, P> = Omit, keyof P> & P; export type { AssignPropsWithRef as AssignProps }; export type AssignPropsWithoutRef, P> = Omit, keyof P> & P; export interface DynamicRefForwardingComponent, P = { children?: React.ReactNode; }> { = TInitial>(props: AssignPropsWithRef, context?: any): React.ReactElement | null; propTypes?: any; contextTypes?: any; defaultProps?: Partial

; displayName?: string; } export interface DynamicFunctionComponent, P = { children?: React.ReactNode; }> { = TInitial>(props: AssignPropsWithoutRef, context?: any): React.ReactElement | null; propTypes?: any; contextTypes?: any; defaultProps?: Partial

; displayName?: string; } export declare class DynamicComponent, P = unknown> extends React.Component> { } export type DynamicComponentClass, P = unknown> = React.ComponentClass>; export type SelectCallback = (eventKey: string | null, e: React.SyntheticEvent) => void; export interface TransitionCallbacks { /** * Callback fired before the component transitions in */ onEnter?(node: HTMLElement, isAppearing: boolean): any; /** * Callback fired as the component begins to transition in */ onEntering?(node: HTMLElement, isAppearing: boolean): any; /** * Callback fired after the component finishes transitioning in */ onEntered?(node: HTMLElement, isAppearing: boolean): any; /** * Callback fired right before the component transitions out */ onExit?(node: HTMLElement): any; /** * Callback fired as the component begins to transition out */ onExiting?(node: HTMLElement): any; /** * Callback fired after the component finishes transitioning out */ onExited?(node: HTMLElement): any; } export interface TransitionProps extends TransitionCallbacks { in?: boolean; appear?: boolean; children: React.ReactElement; mountOnEnter?: boolean; unmountOnExit?: boolean; } export type TransitionComponent = React.ComponentType;