// Type definitions for React with Addons 0.11.2 // 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: Factory; LinkedStateMixin: LinkedStateMixin; Perf: Perf; PureRenderMixin: Mixin; TestUtils: TestUtils; TransitionGroup: Factory; update(object: Object, changes: Object): Object; }; export interface CloneWithProps

{ (instance: Descriptor

, extraProps?: P): Descriptor

; } 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: Descriptor): Descriptor; mockComponent(componentClass: Factory, mockTagName?: string): TestUtils; isDescriptorOfType(descriptor: Descriptor, componentClass: Factory): boolean; isDOMComponent(instance: Descriptor): boolean; isCompositeComponent(instance: Descriptor): boolean; isCompositeComponentWithType(instance: Descriptor, componentClass: Function): boolean; isTextComponent(instance: Descriptor): boolean; findAllInRenderedTree(tree: Descriptor, test: Function): Descriptor[]; scryRenderedDOMComponentsWithClass(tree: Descriptor, className: string): Descriptor[]; findRenderedDOMComponentWithClass(tree: Descriptor, className: string): Descriptor; scryRenderedDOMComponentsWithTag(tree: Descriptor, className: string): Descriptor[]; findRenderedDOMComponentWithTag(tree: Descriptor, tagName: string): Descriptor; scryFindRenderedComponentsWithTag(tree: Descriptor, componentClass: Function): Descriptor[]; findRenderedComponentWithType(tree: Descriptor, componentClass: Function): Descriptor; } 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; } 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; } }