/// <reference path="../ajax/definition.d.ts" />

interface TspComponentViewProps {
  className?: string
  /**
   * 加载中的视图
   */
  loadingView: any;
  /**
   * 完成的视图
   */
  render: (data: any) => any;
  /**
   * 失败的视图
   */
  failView: any;
  /**
   * 超时的视图
   */
  timeoutView: any;
  /**
   * 空视图
   */
  emptyView?: any; 
  /**
   * 视图状态
   */
  status?: TspComponentViewStatus;
  /**
   * 延迟的加载时间
   */
  delay?: number;
  /**
   * 网络请求函数
   */
  request?: Function;
  /**
   * 接口的配置
   */
  apiConfig?: TspComponentAjaxPostOption;
  /**
   * 数据源字段
   */
  dataKey?: string;
  /**
   * 重载Id
   */
  reloadId?: any;
  /**
   * 刷新id
   */
  refreshId?: any;
}

interface TspComponentViewState {
  /**
   * 视图状态
   */
  status: TspComponentViewStatus;
  /**
   * 更新Id
   */
  updateId: number;
}

type TspComponentViewStatus = 'loading' | 'complete' | 'fail' | 'timeout' | 'empty';