// @flow

declare type UpdatePublishFormData = {
  filePath?: string,
  contentIsFree?: boolean,
  fee?: {
    amount: string,
    currency: string,
  },
  title?: string,
  thumbnail_url?: string,
  uploadThumbnailStatus?: string,
  thumbnailPath?: string,
  description?: string,
  language?: string,
  channel?: string,
  channelId?: string,
  name?: string,
  nameError?: string,
  bid?: number,
  bidError?: string,
  otherLicenseDescription?: string,
  licenseUrl?: string,
  licenseType?: string,
  uri?: string,
  nsfw: boolean,
  isMarkdownPost: boolean,
};

declare type PublishParams = {
  name: ?string,
  bid: ?number,
  filePath?: string,
  description: ?string,
  language: string,
  publishingLicense?: string,
  publishingLicenseUrl?: string,
  thumbnail: ?string,
  channel: string,
  channelId?: string,
  title: string,
  contentIsFree: boolean,
  uri?: string,
  license: ?string,
  licenseUrl: ?string,
  fee?: {
    amount: string,
    currency: string,
  },
  claim: StreamClaim,
  nsfw: boolean,
  tags: Array<Tag>,
};