import { StateTree, ChildMap, EventHandler } from "./purview";
import { PNodeRegular } from "./types/ws";
import { JSX } from "./purview";
declare type UpdateFn = (state: Readonly) => Partial;
export interface ComponentConstructor
{ _stateless: boolean; getUniqueName(): string; new (props: P): Component
; } interface Component
{
getInitialState?(): Promise;
}
export declare const MAX_SET_STATE_AFTER_UNMOUNT = 10;
declare abstract class Component
{ protected props: Readonly
;
_id: string;
_childMap: ChildMap );
abstract render(): JSX.Element;
componentDidMount(): void;
componentWillUnmount(): void;
componentWillReceiveProps(_: P): void;
setState(changes: Partial ): void;
}
export default Component;
;
private _changesets;
private _lockedPromise;
private _numSetStateAfterUnmount;
static getUniqueName(): string;
static _stateless: boolean;
static _statelessName: string | undefined;
constructor(props: Readonly | UpdateFn): Promise