///
/**
* @fileOverview base class for page component
* @author Max
*/
import * as _expressStatic from 'express-serve-static-core';
import * as React from 'react';
import HTMLManager from '../../server/bootstrap/html-manager';
import { DeviceVars } from '../../server/utils/device-detect';
export interface BasePropTypes {
dispatch: Function;
params: any;
location: {
search: string;
pathname: string;
[key: string]: any;
};
initedFlag: {
[key: string]: boolean;
};
devTools: any;
}
export interface BaseStateTypes {
client?: boolean;
bodyHeight?: number;
}
declare abstract class BaseComponent
extends React.Component
{
constructor(props: any);
/**
* interceptor for server side control
* server side only
*/
abstract interceptor(req: _expressStatic.Request, res: _expressStatic.Response, next: _expressStatic.NextFunction): Promise;
/**
* implement page initialization stuff,
* server side only
*/
abstract setUpPage(manager: HTMLManager, datas?: any[]): any;
/**
* implement initializing page data,
* isomorphic method
*/
abstract getInitDataActionImp(props: any): void | any[];
getInitDataAction(props: any): any[];
componentDidMount(): void;
}
export default BaseComponent;