// Type definitions for React with Addons 0.12.RC // Project: http://facebook.github.io/react/ // Definitions by: Asana // Definitions: https://github.com/borisyankov/DefinitelyTyped /// declare module "react/addons" { export = React; } declare module React { export var addons: { classSet: (classes: {[key: string]: boolean}) => string; cloneWithProps: CloneWithProps; CSSTransitionGroup: ReactComponentFactory; LinkedStateMixin: LinkedStateMixin; Perf: Perf; PureRenderMixin: Mixin; TestUtils: TestUtils; TransitionGroup: ReactComponentFactory; update(object: Object, changes: Object): Object; }; export interface CloneWithProps

{ (instance: ReactComponentElement

, extraProps?: P): ReactComponentElement

; } export interface ReactLink { value: T; requestChange(newValue: T): void; } export interface LinkedStateMixin extends Mixin { linkState(key: string): ReactLink; } export interface ComponentPerfContext { current: string; owner: string; } export interface CSSTransitionGroupProps { transitionName: string; } export interface TransitionsSpecification extends Specification { componentWillEnter?(callback: () => void): void; componentDidEnter?(): void; componentWillLeave?(callback: () => void): void; componentDidLeave?(): void; } export interface NumericPerfContext { [key: string]: number; } export interface Measurements { exclusive: NumericPerfContext; inclusive: NumericPerfContext; render: NumericPerfContext; counts: NumericPerfContext; writes: NumericPerfContext; displayNames: { [key: string]: ComponentPerfContext; }; totalTime: number; } export interface Perf { start(): void; stop(): void; printInclusive(measurements: Measurements[]): void; printExclusive(measurements: Measurements[]): void; printWasted(measurements: Measurements[]): void; printDOM(measurements: Measurements[]): void; getLastMeasurements(): Measurements[]; } export interface TestUtils { Simulate: Simulate; renderIntoDocument

(instance: ReactComponentElement

): ReactComponentElement

; renderIntoDocument(instnace: ReactHTMLElement): ReactHTMLElement; renderIntoDocument(instnace: ReactSVGElement): ReactSVGElement; mockComponent(componentClass: ReactComponentFactory, mockTagName?: string): TestUtils; isDescriptorOfType(descriptor: ReactElement, componentClass: ReactComponentFactory): boolean; isDOMComponent(instance: ReactElement): boolean; isCompositeComponent(instance: ReactElement): boolean; isCompositeComponentWithType(instance: ReactElement, componentClass: ReactComponentFactory): boolean; isTextComponent(instance: ReactElement): boolean; findAllInRenderedTree(tree: ReactElement, test: (component: ReactElement) => boolean): ReactElement[]; scryRenderedDOMComponentsWithClass(tree: ReactElement, className: string): ReactElement[]; findRenderedDOMComponentWithClass(tree: ReactElement, className: string): ReactElement; scryRenderedDOMComponentsWithTag(tree: ReactElement, className: string): ReactElement[]; findRenderedDOMComponentWithTag(tree: ReactElement, tagName: string): ReactElement; scryFindRenderedComponentsWithTag(tree: ReactElement, componentClass: Function): ReactElement[]; findRenderedComponentWithType(tree: ReactElement, componentClass: Function): ReactElement; } export 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; } export interface EventSimulator { (element: Element, eventData?: SyntheticEventData): void; (descriptor: ReactElement, eventData?: SyntheticEventData): void; } export interface Simulate { blur: EventSimulator; change: EventSimulator; click: EventSimulator; cut: EventSimulator; doubleClick: EventSimulator; drag: EventSimulator; dragEnd: EventSimulator; dragEnter: EventSimulator; dragExit: EventSimulator; dragLeave: EventSimulator; dragOver: EventSimulator; dragStart: EventSimulator; drop: EventSimulator; focus: EventSimulator; input: EventSimulator; keyDown: EventSimulator; keyPress: EventSimulator; keyUp: EventSimulator; mouseDown: EventSimulator; mouseEnter: EventSimulator; mouseLeave: EventSimulator; mouseMove: EventSimulator; mouseOut: EventSimulator; mouseOver: EventSimulator; mouseUp: EventSimulator; paste: EventSimulator; scroll: EventSimulator; submit: EventSimulator; touchCancel: EventSimulator; touchEnd: EventSimulator; touchMove: EventSimulator; touchStart: EventSimulator; wheel: EventSimulator; } }