/** 页面的类类型导出*/
type CGReactPageState = { [key: string]: any };// 默认页面数据类型

type CGReactToastState = {
    level?: "info" | "warn" | "error" | "success", //吐司级别
    title?: string,//吐司标题
    last?: number,//吐司时长
    message?: string //吐司消息
};
type CGReactLoadingState = {
    type: "dot" | "circle",//加载中的类型可以是点点或者是转圈的圆两种
    last: number | true, //持续时间，如果配置为true则一直不消失，需要显示调用this.dismiss()才消失
};//加载对话框配置
export interface PageState extends CGReactPageState {} //页面配置导出
export interface LoadingState extends CGReactLoadingState {} //等待对话框配置导出
export interface ToastState extends CGReactToastState {} //吐司配置导出

/** 页面参数类型：PROP*/
type CGReactRouterConfig = {
    pathname: string, // 路径
    search?: string, // 查询参数
    hash?: string  //
};// 页面路由配置
type CGReactPageProp = {
    title?: string, // 标题
    location?: CGReactRouterConfig,// 当前路由路径
    history?: {
        push(location: CGReactRouterConfig): void,//
        goBack(): void,//
        goForward(): void//
    } // 当前路由历史
} //页面参数默认配置
export interface PageProp extends CGReactPageProp
{
    [key: string]: any //在基础配饰上支持配置任意类型
}

/** 转化的配置数据结构*/
export interface ToastConfig extends CGReactToastState
{
    key: string,//吐司的唯一标识
    proref: React.RefObject<HTMLSpanElement> //吐司进度条引用
}
