// Type definitions for ReactWithAddons v0.13.1 (internal module) // Project: http://facebook.github.io/react/ // Definitions by: Asana , AssureSign // Definitions: https://github.com/borisyankov/DefinitelyTyped /// declare module React { // // React.addons // ---------------------------------------------------------------------- export module addons { export var CSSTransitionGroup: CSSTransitionGroup; export var TransitionGroup: TransitionGroup; export var LinkedStateMixin: LinkedStateMixin; export var PureRenderMixin: PureRenderMixin; export function batchedUpdates( callback: (a: A, b: B) => any, a: A, b: B): void; export function batchedUpdates(callback: (a: A) => any, a: A): void; export function batchedUpdates(callback: () => any): void; // deprecated: use petehunt/react-classset or JedWatson/classnames export function classSet(cx: { [key: string]: boolean }): string; export function classSet(...classList: string[]): string; export function cloneWithProps

( element: DOMElement

, props: P): DOMElement

; export function cloneWithProps

( element: ClassicElement

, props: P): ClassicElement

; export function cloneWithProps

( element: ReactElement

, props: P): ReactElement

; export function createFragment( object: { [key: string]: ReactNode }): ReactFragment; export function update(value: any[], spec: UpdateArraySpec): any[]; export function update(value: {}, spec: UpdateSpec): any; // Development tools export import Perf = ReactPerf; export import TestUtils = ReactTestUtils; } // // React.addons (Transitions) // ---------------------------------------------------------------------- interface TransitionGroupProps { component?: ReactType; childFactory?: (child: ReactElement) => ReactElement; } interface CSSTransitionGroupProps extends TransitionGroupProps { transitionName: string; transitionAppear?: boolean; transitionEnter?: boolean; transitionLeave?: boolean; } type CSSTransitionGroup = ComponentClass; type TransitionGroup = ComponentClass; // // React.addons (Mixins) // ---------------------------------------------------------------------- interface ReactLink { value: T; requestChange(newValue: T): void; } interface LinkedStateMixin extends Mixin { linkState(key: string): ReactLink; } interface PureRenderMixin extends Mixin { } // // Reat.addons.update // ---------------------------------------------------------------------- interface UpdateSpec { $set?: any; $merge?: {}; $apply?(value: any): any; // [key: string]: UpdateSpec; } interface UpdateArraySpec extends UpdateSpec { $push?: any[]; $unshift?: any[]; $splice?: any[][]; } // // React.addons.Perf // ---------------------------------------------------------------------- interface ComponentPerfContext { current: string; owner: string; } interface NumericPerfContext { [key: string]: number; } interface Measurements { exclusive: NumericPerfContext; inclusive: NumericPerfContext; render: NumericPerfContext; counts: NumericPerfContext; writes: NumericPerfContext; displayNames: { [key: string]: ComponentPerfContext; }; totalTime: number; } module ReactPerf { export function start(): void; export function stop(): void; export function printInclusive(measurements: Measurements[]): void; export function printExclusive(measurements: Measurements[]): void; export function printWasted(measurements: Measurements[]): void; export function printDOM(measurements: Measurements[]): void; export function getLastMeasurements(): Measurements[]; } // // React.addons.TestUtils // ---------------------------------------------------------------------- interface MockedComponentClass { new(): any; } module ReactTestUtils { export import Simulate = ReactSimulate; export function renderIntoDocument

( element: ReactElement

): Component; export function renderIntoDocument>( element: ReactElement): C; export function mockComponent( mocked: MockedComponentClass, mockTagName?: string): typeof ReactTestUtils; export function isElementOfType( element: ReactElement, type: ReactType): boolean; export function isTextComponent(instance: Component): boolean; export function isDOMComponent(instance: Component): boolean; export function isCompositeComponent(instance: Component): boolean; export function isCompositeComponentWithType( instance: Component, type: ComponentClass): boolean; export function findAllInRenderedTree( tree: Component, fn: (i: Component) => boolean): Component; export function scryRenderedDOMComponentsWithClass( tree: Component, className: string): DOMComponent[]; export function findRenderedDOMComponentWithClass( tree: Component, className: string): DOMComponent; export function scryRenderedDOMComponentsWithTag( tree: Component, tagName: string): DOMComponent[]; export function findRenderedDOMComponentWithTag( tree: Component, tagName: string): DOMComponent; export function scryRenderedComponentsWithType

( tree: Component, type: ComponentClass

): Component[]; export function scryRenderedComponentsWithType>( tree: Component, type: ComponentClass): C[]; export function findRenderedComponentWithType

( tree: Component, type: ComponentClass

): Component; export function findRenderedComponentWithType>( tree: Component, type: ComponentClass): C; export function createRenderer(): ShallowRenderer; } interface SyntheticEventData { altKey?: boolean; button?: number; buttons?: number; clientX?: number; clientY?: number; changedTouches?: TouchList; charCode?: boolean; clipboardData?: DataTransfer; ctrlKey?: boolean; deltaMode?: number; deltaX?: number; deltaY?: number; deltaZ?: number; detail?: number; getModifierState?(key: string): boolean; key?: string; keyCode?: number; locale?: string; location?: number; metaKey?: boolean; pageX?: number; pageY?: number; relatedTarget?: EventTarget; repeat?: boolean; screenX?: number; screenY?: number; shiftKey?: boolean; targetTouches?: TouchList; touches?: TouchList; view?: AbstractView; which?: number; } interface EventSimulator { (element: Element, eventData?: SyntheticEventData): void; (component: Component, eventData?: SyntheticEventData): void; } module ReactSimulate { export var blur: EventSimulator; export var change: EventSimulator; export var click: EventSimulator; export var cut: EventSimulator; export var doubleClick: EventSimulator; export var drag: EventSimulator; export var dragEnd: EventSimulator; export var dragEnter: EventSimulator; export var dragExit: EventSimulator; export var dragLeave: EventSimulator; export var dragOver: EventSimulator; export var dragStart: EventSimulator; export var drop: EventSimulator; export var focus: EventSimulator; export var input: EventSimulator; export var keyDown: EventSimulator; export var keyPress: EventSimulator; export var keyUp: EventSimulator; export var mouseDown: EventSimulator; export var mouseEnter: EventSimulator; export var mouseLeave: EventSimulator; export var mouseMove: EventSimulator; export var mouseOut: EventSimulator; export var mouseOver: EventSimulator; export var mouseUp: EventSimulator; export var paste: EventSimulator; export var scroll: EventSimulator; export var submit: EventSimulator; export var touchCancel: EventSimulator; export var touchEnd: EventSimulator; export var touchMove: EventSimulator; export var touchStart: EventSimulator; export var wheel: EventSimulator; } class ShallowRenderer { getRenderOutput>(): E; getRenderOutput(): ReactElement; render(element: ReactElement, context?: any): void; unmount(): void; } }