/**
* React-Type-R component base class. Overrides React component.
*/
import * as React from 'react';
import { CallbacksByEvents, Messenger, Record, Store } from 'type-r';
import onDefine, { TypeSpecs } from './define';
import Link from './link';
export declare class Component
extends React.Component
{
cid: string;
static state?: TypeSpecs | typeof Record;
static store?: TypeSpecs | typeof Store;
static props?: TypeSpecs;
static context?: TypeSpecs;
static childContext?: TypeSpecs;
static pureRender?: boolean;
private _disposed;
private static propTypes;
private static defaultProps;
private static contextTypes;
private static childContextTypes;
private PropsChangeTokens;
static extend: (spec: object, statics?: object) => Component;
linkAt(key: string): Link;
linkAll(...keys: string[]): {
[key: string]: Link;
};
linkPath(path: string): Link;
readonly links: any;
static onDefine: typeof onDefine;
readonly state: S;
readonly store?: Store;
constructor(props?: any, context?: any);
_initializeState(): void;
assignToState(x: any, key: string): void;
setState(attrs: object | ((state: S, props: P) => object)): void;
isMounted: () => boolean;
on: (events: string | CallbacksByEvents, callback: any, context?: any) => this;
once: (events: string | CallbacksByEvents, callback: any, context?: any) => this;
off: (events?: string | CallbacksByEvents, callback?: any, context?: any) => this;
trigger: (name: string, a?: any, b?: any, c?: any, d?: any, e?: any) => this;
stopListening: (source?: Messenger, a?: string | CallbacksByEvents, b?: Function) => this;
listenTo: (source: Messenger, a: string | CallbacksByEvents, b?: Function) => this;
listenToOnce: (source: Messenger, a: string | CallbacksByEvents, b?: Function) => this;
dispose: () => void;
componentWillUnmount(): void;
/**
* Performs transactional update for both props and state.
* Suppress updates during the transaction, and force update aftewards.
* Wrapping the sequence of changes in a transactions guarantees that
* React component will be updated _after_ all the changes to the
* both props and local state are applied.
*/
transaction(fun: (state?: Record) => void): void;
asyncUpdate(): void;
}