// @flow
import {Component} from 'react'

import type {SimpleProofState, UserInfo} from '../constants/tracker'
import type {Proof} from '../constants/tracker'
import type {Exact} from '../constants/types/more'
import type {ErrorProps} from './error'

export type RenderPropsUnshaped = {
  loading: boolean,
  currentlyFollowing: boolean,
  inviteLink?: ?string,
  isPrivate?: boolean,
  lastAction: ?('followed' | 'refollowed' | 'unfollowed' | 'error'),
  loggedIn: boolean,
  name?: string,
  nonUser?: ?boolean,
  onClose: () => void,
  onFollow: () => void,
  onIgnore: () => void,
  onRefollow: () => void,
  onUnfollow: () => void,
  proofs: Array<Proof>,
  reason: string,
  serviceName?: string,
  trackerState: SimpleProofState,
  userInfo: ?UserInfo,
  username: string,
  waiting: boolean,
  afterMount?: any,
  loading: boolean,
  actionBarReady: boolean,
  onClickAvatar: () => void,
  onClickFollowers: () => void,
  onClickFollowing: () => void,
  error: ?ErrorProps,
}

export type RenderProps = Exact<RenderPropsUnshaped>

export default class Render extends Component<void, RenderProps, void> { }
