Depending on its status, a proposal can be either a draft, template or a sent proposal.

{
  archived_at: number | null
  attachments: {
    id: number
    mime_type: string
    name: string
    url?: string
    uuid: string
  }[]
  background_image: {
    id: number
    uuid: string
  } | null
  background_video: {
    id: number
    uuid: string
  } | null
  blocks: Block[]
  company_powerups: Powerups
  company_registration_number: string | null
  company_tax_mode_live: 'standard' | 'simplified' | 'tax-free' | 'none'
  company_website: string | null
  contact_avatar_uuid: string | null
  contact_email: string
  contact_id: number
  contact_name: string | null
  contact_phone: string | null
  contact_title: string | null
  creator_id: number
  creator_name: string | null
  currency: string
  data: ProposalData
  description_md: string | null
  editor: {
    cc?: number[]
    notification_user_ids?: number[]
  }
  expires_at: number | null
  invoicing: {
    data_prefill?: any
    data?: {
      [x: string]: string
    }
    enabled?: boolean
    form_overrides?: object
    reminder_sent_at?: string
    submitted_at?: string
  }
  is_agreement: boolean
  is_only_proposal_in_series: boolean
  is_test: boolean
  language: string
  pending: boolean
  pending_reason: string | null
  recipient_company_name: string | null
  recipient_email: string | null
  recipient_id: number | null
  recipient_is_set: boolean
  recipient_name: string | null
  recipient_phone: string | null
  signatures: {
    date: string
    ip: string
    name: string
    user_agent: string
    user_id?: number
  }[]
  status_changed_at: number
  status: ('accepted' | 'active' | 'draft' | 'expired' | 'rejected' | 'template' | 'withdrawn') | null
  tax_options: {
    mode?: ('standard' | 'simplified' | 'tax-free' | 'none')
    tax_included?: boolean
    tax_label_key?: string
  }
  title_md: string | null
  tracking: {
    accepted_at?: string
    accepted_by_mobile?: boolean
    created_from_proposal?: string
    created_from_rfp?: number
    created_from_template?: string
    expired_at?: string
    expiration_reminder_sent_at?: string
    first_viewed_at?: string
    last_viewed_at?: string
    number_of_views?: number
    rejected_at?: string
    sent_at?: string
    withdrawn_at?: string
    marked_as_accepted_by_user?: {
      email?: string
      id: number
      name?: string
    }
  }
  updated_at: number
  uuid: string
  value_with_tax: number
  value_without_tax: number
  version: number | null
}