/* eslint-disable */

// This file is auto-generated by client/protocol/Makefile.
import {call, Effect} from 'redux-saga/effects'
import {getEngine as engine, getEngineSaga} from '../../engine/require'
import * as Gregor1 from './rpc-gregor-gen'
import * as Keybase1 from './rpc-gen'
import * as Stellar1 from './rpc-stellar-gen'
export {Gregor1}
export {Keybase1}
export {Stellar1}
export type Bool = boolean
export type Boolean = boolean
export type Bytes = Buffer
export type Double = number
export type Int = number
export type Int64 = number
export type Long = number
export type String = string
export type Uint = number
export type Uint64 = number
type WaitingKey = string | Array<string>
export type IncomingErrorCallback = (err?: {code?: number; desc?: string} | null) => void
type IncomingReturn = Effect | null | void | false | Array<Effect | null | void | false>

// Dummy calls to avoid undelcared warnings in TS strict mode
export const _doNotUse = (w: WaitingKey, i: IncomingReturn) =>
  console.log(
    'why did you call this function?',
    w,
    i,
    call(() => {}),
    engine(),
    getEngineSaga()
  )

export type MessageTypes = {
  'chat.1.NotifyChat.ChatAttachmentDownloadComplete': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly msgID: MessageID}
    outParam: void
  }
  'chat.1.NotifyChat.ChatAttachmentDownloadProgress': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly msgID: MessageID; readonly bytesComplete: Long; readonly bytesTotal: Long}
    outParam: void
  }
  'chat.1.NotifyChat.ChatAttachmentUploadProgress': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly outboxID: OutboxID; readonly bytesComplete: Long; readonly bytesTotal: Long}
    outParam: void
  }
  'chat.1.NotifyChat.ChatAttachmentUploadStart': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly outboxID: OutboxID}
    outParam: void
  }
  'chat.1.NotifyChat.ChatConvUpdate': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly conv?: InboxUIItem | null}
    outParam: void
  }
  'chat.1.NotifyChat.ChatIdentifyUpdate': {
    inParam: {readonly update: Keybase1.CanonicalTLFNameAndIDWithBreaks}
    outParam: void
  }
  'chat.1.NotifyChat.ChatInboxStale': {
    inParam: {readonly uid: Keybase1.UID}
    outParam: void
  }
  'chat.1.NotifyChat.ChatInboxSyncStarted': {
    inParam: {readonly uid: Keybase1.UID}
    outParam: void
  }
  'chat.1.NotifyChat.ChatInboxSynced': {
    inParam: {readonly uid: Keybase1.UID; readonly syncRes: ChatSyncResult}
    outParam: void
  }
  'chat.1.NotifyChat.ChatJoinedConversation': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly conv?: InboxUIItem | null}
    outParam: void
  }
  'chat.1.NotifyChat.ChatKBFSToImpteamUpgrade': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID}
    outParam: void
  }
  'chat.1.NotifyChat.ChatLeftConversation': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID}
    outParam: void
  }
  'chat.1.NotifyChat.ChatParticipantsInfo': {
    inParam: {readonly participants: {[key: string]: Array<UIParticipant> | null}}
    outParam: void
  }
  'chat.1.NotifyChat.ChatPaymentInfo': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly msgID: MessageID; readonly info: UIPaymentInfo}
    outParam: void
  }
  'chat.1.NotifyChat.ChatPromptUnfurl': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly msgID: MessageID; readonly domain: String}
    outParam: void
  }
  'chat.1.NotifyChat.ChatRequestInfo': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly msgID: MessageID; readonly info: UIRequestInfo}
    outParam: void
  }
  'chat.1.NotifyChat.ChatResetConversation': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID}
    outParam: void
  }
  'chat.1.NotifyChat.ChatSetConvRetention': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly conv?: InboxUIItem | null}
    outParam: void
  }
  'chat.1.NotifyChat.ChatSetConvSettings': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly conv?: InboxUIItem | null}
    outParam: void
  }
  'chat.1.NotifyChat.ChatSetTeamRetention': {
    inParam: {readonly uid: Keybase1.UID; readonly teamID: Keybase1.TeamID; readonly convs?: Array<InboxUIItem> | null}
    outParam: void
  }
  'chat.1.NotifyChat.ChatSubteamRename': {
    inParam: {readonly uid: Keybase1.UID; readonly convs?: Array<InboxUIItem> | null}
    outParam: void
  }
  'chat.1.NotifyChat.ChatTLFFinalize': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly finalizeInfo: ConversationFinalizeInfo; readonly conv?: InboxUIItem | null}
    outParam: void
  }
  'chat.1.NotifyChat.ChatTLFResolve': {
    inParam: {readonly uid: Keybase1.UID; readonly convID: ConversationID; readonly resolveInfo: ConversationResolveInfo}
    outParam: void
  }
  'chat.1.NotifyChat.ChatThreadsStale': {
    inParam: {readonly uid: Keybase1.UID; readonly updates?: Array<ConversationStaleUpdate> | null}
    outParam: void
  }
  'chat.1.NotifyChat.ChatTypingUpdate': {
    inParam: {readonly typingUpdates?: Array<ConvTypingUpdate> | null}
    outParam: void
  }
  'chat.1.NotifyChat.ChatWelcomeMessageLoaded': {
    inParam: {readonly teamID: Keybase1.TeamID; readonly message: WelcomeMessageDisplay}
    outParam: void
  }
  'chat.1.NotifyChat.NewChatActivity': {
    inParam: {readonly uid: Keybase1.UID; readonly activity: ChatActivity; readonly source: ChatActivitySource}
    outParam: void
  }
  'chat.1.chatUi.chatBotCommandsUpdateStatus': {
    inParam: {readonly convID: ConvIDStr; readonly status: UIBotCommandsUpdateStatus}
    outParam: void
  }
  'chat.1.chatUi.chatClearWatch': {
    inParam: {readonly id: LocationWatchID}
    outParam: void
  }
  'chat.1.chatUi.chatCoinFlipStatus': {
    inParam: {readonly statuses?: Array<UICoinFlipStatus> | null}
    outParam: void
  }
  'chat.1.chatUi.chatCommandMarkdown': {
    inParam: {readonly convID: ConvIDStr; readonly md?: UICommandMarkdown | null}
    outParam: void
  }
  'chat.1.chatUi.chatCommandStatus': {
    inParam: {readonly convID: ConvIDStr; readonly displayText: String; readonly typ: UICommandStatusDisplayTyp; readonly actions?: Array<UICommandStatusActionTyp> | null}
    outParam: void
  }
  'chat.1.chatUi.chatConfirmChannelDelete': {
    inParam: {readonly channel: String}
    outParam: Boolean
  }
  'chat.1.chatUi.chatGiphySearchResults': {
    inParam: {readonly convID: ConvIDStr; readonly results: GiphySearchResults}
    outParam: void
  }
  'chat.1.chatUi.chatGiphyToggleResultWindow': {
    inParam: {readonly convID: ConvIDStr; readonly show: Boolean; readonly clearInput: Boolean}
    outParam: void
  }
  'chat.1.chatUi.chatInboxConversation': {
    inParam: {readonly convs: String}
    outParam: void
  }
  'chat.1.chatUi.chatInboxFailed': {
    inParam: {readonly convID: ConversationID; readonly error: InboxUIItemError}
    outParam: void
  }
  'chat.1.chatUi.chatInboxLayout': {
    inParam: {readonly layout: String}
    outParam: void
  }
  'chat.1.chatUi.chatInboxUnverified': {
    inParam: {readonly inbox: String}
    outParam: void
  }
  'chat.1.chatUi.chatLoadGalleryHit': {
    inParam: {readonly message: UIMessage}
    outParam: void
  }
  'chat.1.chatUi.chatMaybeMentionUpdate': {
    inParam: {readonly teamName: String; readonly channel: String; readonly info: UIMaybeMentionInfo}
    outParam: void
  }
  'chat.1.chatUi.chatSearchBotHits': {
    inParam: {readonly hits: UIChatSearchBotHits}
    outParam: void
  }
  'chat.1.chatUi.chatSearchConvHits': {
    inParam: {readonly hits: UIChatSearchConvHits}
    outParam: void
  }
  'chat.1.chatUi.chatSearchDone': {
    inParam: {readonly numHits: Int}
    outParam: void
  }
  'chat.1.chatUi.chatSearchHit': {
    inParam: {readonly searchHit: ChatSearchHit}
    outParam: void
  }
  'chat.1.chatUi.chatSearchInboxDone': {
    inParam: {readonly res: ChatSearchInboxDone}
    outParam: void
  }
  'chat.1.chatUi.chatSearchInboxHit': {
    inParam: {readonly searchHit: ChatSearchInboxHit}
    outParam: void
  }
  'chat.1.chatUi.chatSearchInboxStart': {
    inParam: void
    outParam: void
  }
  'chat.1.chatUi.chatSearchIndexStatus': {
    inParam: {readonly status: ChatSearchIndexStatus}
    outParam: void
  }
  'chat.1.chatUi.chatSearchTeamHits': {
    inParam: {readonly hits: UIChatSearchTeamHits}
    outParam: void
  }
  'chat.1.chatUi.chatShowManageChannels': {
    inParam: {readonly teamname: String}
    outParam: void
  }
  'chat.1.chatUi.chatStellarDataConfirm': {
    inParam: {readonly summary: UIChatPaymentSummary}
    outParam: Boolean
  }
  'chat.1.chatUi.chatStellarDataError': {
    inParam: {readonly error: Keybase1.Status}
    outParam: Boolean
  }
  'chat.1.chatUi.chatStellarDone': {
    inParam: {readonly canceled: Boolean}
    outParam: void
  }
  'chat.1.chatUi.chatStellarShowConfirm': {
    inParam: void
    outParam: void
  }
  'chat.1.chatUi.chatThreadCached': {
    inParam: {readonly thread?: String | null}
    outParam: void
  }
  'chat.1.chatUi.chatThreadFull': {
    inParam: {readonly thread: String}
    outParam: void
  }
  'chat.1.chatUi.chatThreadStatus': {
    inParam: {readonly status: UIChatThreadStatus}
    outParam: void
  }
  'chat.1.chatUi.chatWatchPosition': {
    inParam: {readonly convID: ConversationID; readonly perm: UIWatchPositionPerm}
    outParam: LocationWatchID
  }
  'chat.1.chatUi.triggerContactSync': {
    inParam: void
    outParam: void
  }
  'chat.1.local.CancelPost': {
    inParam: {readonly outboxID: OutboxID}
    outParam: void
  }
  'chat.1.local.ConfigureFileAttachmentDownloadLocal': {
    inParam: {readonly cacheDirOverride: String; readonly downloadDirOverride: String}
    outParam: void
  }
  'chat.1.local.DownloadFileAttachmentLocal': {
    inParam: {readonly conversationID: ConversationID; readonly messageID: MessageID; readonly downloadToCache: Boolean; readonly preview: Boolean; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: DownloadFileAttachmentLocalRes
  }
  'chat.1.local.RetryPost': {
    inParam: {readonly outboxID: OutboxID; readonly identifyBehavior?: Keybase1.TLFIdentifyBehavior | null}
    outParam: void
  }
  'chat.1.local.SetConversationStatusLocal': {
    inParam: {readonly conversationID: ConversationID; readonly status: ConversationStatus; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: SetConversationStatusLocalRes
  }
  'chat.1.local.addBotConvSearch': {
    inParam: {readonly term: String}
    outParam: Array<ConvSearchHit> | null
  }
  'chat.1.local.addBotMember': {
    inParam: {readonly convID: ConversationID; readonly username: String; readonly botSettings?: Keybase1.TeamBotSettings | null; readonly role: Keybase1.TeamRole}
    outParam: void
  }
  'chat.1.local.addEmojiAlias': {
    inParam: {readonly convID: ConversationID; readonly newAlias: String; readonly existingAlias: String}
    outParam: AddEmojiAliasRes
  }
  'chat.1.local.addEmojis': {
    inParam: {readonly convID: ConversationID; readonly aliases?: Array<String> | null; readonly filenames?: Array<String> | null; readonly allowOverwrite?: Array<Boolean> | null}
    outParam: AddEmojisRes
  }
  'chat.1.local.addTeamMemberAfterReset': {
    inParam: {readonly username: String; readonly convID: ConversationID}
    outParam: void
  }
  'chat.1.local.bulkAddToConv': {
    inParam: {readonly convID: ConversationID; readonly usernames?: Array<String> | null}
    outParam: void
  }
  'chat.1.local.bulkAddToManyConvs': {
    inParam: {readonly conversations?: Array<ConversationID> | null; readonly usernames?: Array<String> | null}
    outParam: void
  }
  'chat.1.local.cancelActiveInboxSearch': {
    inParam: void
    outParam: void
  }
  'chat.1.local.cancelActiveSearch': {
    inParam: void
    outParam: void
  }
  'chat.1.local.cancelUploadTempFile': {
    inParam: {readonly outboxID: OutboxID}
    outParam: void
  }
  'chat.1.local.deleteConversationLocal': {
    inParam: {readonly convID: ConversationID; readonly channelName: String; readonly confirmed: Boolean}
    outParam: DeleteConversationLocalRes
  }
  'chat.1.local.dismissJourneycard': {
    inParam: {readonly convID: ConversationID; readonly cardType: JourneycardType}
    outParam: void
  }
  'chat.1.local.editBotMember': {
    inParam: {readonly convID: ConversationID; readonly username: String; readonly botSettings?: Keybase1.TeamBotSettings | null; readonly role: Keybase1.TeamRole}
    outParam: void
  }
  'chat.1.local.findConversationsLocal': {
    inParam: {readonly tlfName: String; readonly membersType: ConversationMembersType; readonly visibility: Keybase1.TLFVisibility; readonly topicType: TopicType; readonly topicName: String; readonly oneChatPerTLF?: Boolean | null; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: FindConversationsLocalRes
  }
  'chat.1.local.findGeneralConvFromTeamID': {
    inParam: {readonly teamID: Keybase1.TeamID}
    outParam: InboxUIItem
  }
  'chat.1.local.forwardMessageConvSearch': {
    inParam: {readonly term: String}
    outParam: Array<ConvSearchHit> | null
  }
  'chat.1.local.forwardMessageNonblock': {
    inParam: {readonly srcConvID: ConversationID; readonly dstConvID: ConversationID; readonly msgID: MessageID; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: PostLocalNonblockRes
  }
  'chat.1.local.getBotMemberSettings': {
    inParam: {readonly convID: ConversationID; readonly username: String}
    outParam: Keybase1.TeamBotSettings
  }
  'chat.1.local.getChannelMembershipsLocal': {
    inParam: {readonly teamID: Keybase1.TeamID; readonly uid: Gregor1.UID}
    outParam: GetChannelMembershipsLocalRes
  }
  'chat.1.local.getDefaultTeamChannelsLocal': {
    inParam: {readonly teamID: Keybase1.TeamID}
    outParam: GetDefaultTeamChannelsLocalRes
  }
  'chat.1.local.getGlobalAppNotificationSettingsLocal': {
    inParam: void
    outParam: GlobalAppNotificationSettings
  }
  'chat.1.local.getInboxAndUnboxUILocal': {
    inParam: {readonly query?: GetInboxLocalQuery | null; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: GetInboxAndUnboxUILocalRes
  }
  'chat.1.local.getInboxNonblockLocal': {
    inParam: {readonly maxUnbox?: Int | null; readonly skipUnverified: Boolean; readonly query?: GetInboxLocalQuery | null; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: NonblockFetchRes
  }
  'chat.1.local.getLastActiveAtMultiLocal': {
    inParam: {readonly teamIDs?: Array<Keybase1.TeamID> | null; readonly username: String}
    outParam: {[key: string]: Gregor1.Time}
  }
  'chat.1.local.getLastActiveForTLF': {
    inParam: {readonly tlfID: TLFIDStr}
    outParam: LastActiveStatus
  }
  'chat.1.local.getLastActiveForTeams': {
    inParam: void
    outParam: LastActiveStatusAll
  }
  'chat.1.local.getMutualTeamsLocal': {
    inParam: {readonly usernames?: Array<String> | null}
    outParam: GetMutualTeamsLocalRes
  }
  'chat.1.local.getNextAttachmentMessageLocal': {
    inParam: {readonly convID: ConversationID; readonly messageID: MessageID; readonly backInTime: Boolean; readonly assetTypes?: Array<AssetMetadataType> | null; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: GetNextAttachmentMessageLocalRes
  }
  'chat.1.local.getRecentJoinsLocal': {
    inParam: {readonly convID: ConversationID}
    outParam: Int
  }
  'chat.1.local.getStaticConfig': {
    inParam: void
    outParam: StaticConfig
  }
  'chat.1.local.getTLFConversationsLocal': {
    inParam: {readonly tlfName: String; readonly topicType: TopicType; readonly membersType: ConversationMembersType}
    outParam: GetTLFConversationsLocalRes
  }
  'chat.1.local.getTeamRetentionLocal': {
    inParam: {readonly teamID: Keybase1.TeamID}
    outParam: RetentionPolicy | null
  }
  'chat.1.local.getTeamRoleInConversation': {
    inParam: {readonly convID: ConversationID; readonly username: String}
    outParam: Keybase1.TeamRole
  }
  'chat.1.local.getThreadLocal': {
    inParam: {readonly conversationID: ConversationID; readonly reason: GetThreadReason; readonly query?: GetThreadQuery | null; readonly pagination?: Pagination | null; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: GetThreadLocalRes
  }
  'chat.1.local.getThreadNonblock': {
    inParam: {readonly conversationID: ConversationID; readonly cbMode: GetThreadNonblockCbMode; readonly reason: GetThreadReason; readonly pgmode: GetThreadNonblockPgMode; readonly query?: GetThreadQuery | null; readonly knownRemotes?: Array<String> | null; readonly pagination?: UIPagination | null; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: NonblockFetchRes
  }
  'chat.1.local.getUnfurlSettings': {
    inParam: void
    outParam: UnfurlSettingsDisplay
  }
  'chat.1.local.getUnreadline': {
    inParam: {readonly convID: ConversationID; readonly readMsgID: MessageID; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: UnreadlineRes
  }
  'chat.1.local.getUploadTempFile': {
    inParam: {readonly outboxID: OutboxID; readonly filename: String}
    outParam: String
  }
  'chat.1.local.getWelcomeMessage': {
    inParam: {readonly teamID: Keybase1.TeamID}
    outParam: WelcomeMessageDisplay
  }
  'chat.1.local.ignorePinnedMessage': {
    inParam: {readonly convID: ConversationID}
    outParam: void
  }
  'chat.1.local.joinConversationByIDLocal': {
    inParam: {readonly convID: ConversationID}
    outParam: JoinLeaveConversationLocalRes
  }
  'chat.1.local.leaveConversationLocal': {
    inParam: {readonly convID: ConversationID}
    outParam: JoinLeaveConversationLocalRes
  }
  'chat.1.local.listPublicBotCommandsLocal': {
    inParam: {readonly username: String}
    outParam: ListBotCommandsLocalRes
  }
  'chat.1.local.loadGallery': {
    inParam: {readonly convID: ConversationID; readonly typ: GalleryItemTyp; readonly num: Int; readonly fromMsgID?: MessageID | null}
    outParam: LoadGalleryRes
  }
  'chat.1.local.locationUpdate': {
    inParam: {readonly coord: Coordinate}
    outParam: void
  }
  'chat.1.local.makeAudioPreview': {
    inParam: {readonly amps?: Array<Double> | null; readonly duration: Int}
    outParam: MakePreviewRes
  }
  'chat.1.local.makePreview': {
    inParam: {readonly filename: String; readonly outboxID: OutboxID}
    outParam: MakePreviewRes
  }
  'chat.1.local.makeUploadTempFile': {
    inParam: {readonly outboxID: OutboxID; readonly filename: String; readonly data: Bytes}
    outParam: String
  }
  'chat.1.local.markAsReadLocal': {
    inParam: {readonly conversationID: ConversationID; readonly msgID?: MessageID | null}
    outParam: MarkAsReadLocalRes
  }
  'chat.1.local.markTLFAsReadLocal': {
    inParam: {readonly tlfID: TLFID}
    outParam: MarkTLFAsReadLocalRes
  }
  'chat.1.local.newConversationLocal': {
    inParam: {readonly tlfName: String; readonly topicType: TopicType; readonly tlfVisibility: Keybase1.TLFVisibility; readonly topicName?: String | null; readonly membersType: ConversationMembersType; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: NewConversationLocalRes
  }
  'chat.1.local.pinMessage': {
    inParam: {readonly convID: ConversationID; readonly msgID: MessageID}
    outParam: PinMessageRes
  }
  'chat.1.local.postDeleteHistoryByAge': {
    inParam: {readonly conversationID: ConversationID; readonly tlfName: String; readonly tlfPublic: Boolean; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior; readonly age: Gregor1.DurationSec}
    outParam: PostLocalRes
  }
  'chat.1.local.postDeleteNonblock': {
    inParam: {readonly conversationID: ConversationID; readonly tlfName: String; readonly tlfPublic: Boolean; readonly supersedes: MessageID; readonly clientPrev: MessageID; readonly outboxID?: OutboxID | null; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: PostLocalNonblockRes
  }
  'chat.1.local.postEditNonblock': {
    inParam: {readonly conversationID: ConversationID; readonly tlfName: String; readonly tlfPublic: Boolean; readonly target: EditTarget; readonly body: String; readonly outboxID?: OutboxID | null; readonly clientPrev: MessageID; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: PostLocalNonblockRes
  }
  'chat.1.local.postFileAttachmentLocalNonblock': {
    inParam: {readonly arg: PostFileAttachmentArg; readonly clientPrev: MessageID}
    outParam: PostLocalNonblockRes
  }
  'chat.1.local.postHeadline': {
    inParam: {readonly conversationID: ConversationID; readonly tlfName: String; readonly tlfPublic: Boolean; readonly headline: String; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: PostLocalRes
  }
  'chat.1.local.postHeadlineNonblock': {
    inParam: {readonly conversationID: ConversationID; readonly tlfName: String; readonly tlfPublic: Boolean; readonly headline: String; readonly outboxID?: OutboxID | null; readonly clientPrev: MessageID; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: PostLocalNonblockRes
  }
  'chat.1.local.postMetadata': {
    inParam: {readonly conversationID: ConversationID; readonly tlfName: String; readonly tlfPublic: Boolean; readonly channelName: String; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: PostLocalRes
  }
  'chat.1.local.postReactionNonblock': {
    inParam: {readonly conversationID: ConversationID; readonly tlfName: String; readonly tlfPublic: Boolean; readonly supersedes: MessageID; readonly body: String; readonly outboxID?: OutboxID | null; readonly clientPrev: MessageID; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: PostLocalNonblockRes
  }
  'chat.1.local.postTextNonblock': {
    inParam: {readonly conversationID: ConversationID; readonly tlfName: String; readonly tlfPublic: Boolean; readonly body: String; readonly clientPrev: MessageID; readonly replyTo?: MessageID | null; readonly outboxID?: OutboxID | null; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior; readonly ephemeralLifetime?: Gregor1.DurationSec | null}
    outParam: PostLocalNonblockRes
  }
  'chat.1.local.previewConversationByIDLocal': {
    inParam: {readonly convID: ConversationID}
    outParam: PreviewConversationLocalRes
  }
  'chat.1.local.profileChatSearch': {
    inParam: {readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: {[key: string]: ProfileSearchConvStats}
  }
  'chat.1.local.putReacjiSkinTone': {
    inParam: {readonly skinTone: Keybase1.ReacjiSkinTone}
    outParam: Keybase1.UserReacjis
  }
  'chat.1.local.refreshParticipants': {
    inParam: {readonly convID: ConversationID}
    outParam: void
  }
  'chat.1.local.removeBotMember': {
    inParam: {readonly convID: ConversationID; readonly username: String}
    outParam: void
  }
  'chat.1.local.removeEmoji': {
    inParam: {readonly convID: ConversationID; readonly alias: String}
    outParam: RemoveEmojiRes
  }
  'chat.1.local.removeFromConversationLocal': {
    inParam: {readonly convID: ConversationID; readonly usernames?: Array<String> | null}
    outParam: RemoveFromConversationLocalRes
  }
  'chat.1.local.requestInboxLayout': {
    inParam: {readonly reselectMode: InboxLayoutReselectMode}
    outParam: void
  }
  'chat.1.local.requestInboxSmallIncrease': {
    inParam: void
    outParam: void
  }
  'chat.1.local.requestInboxSmallReset': {
    inParam: void
    outParam: void
  }
  'chat.1.local.requestInboxUnbox': {
    inParam: {readonly convIDs?: Array<ConversationID> | null}
    outParam: void
  }
  'chat.1.local.resolveMaybeMention': {
    inParam: {readonly mention: MaybeMention}
    outParam: void
  }
  'chat.1.local.resolveUnfurlPrompt': {
    inParam: {readonly convID: ConversationID; readonly msgID: MessageID; readonly result: UnfurlPromptResult; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: void
  }
  'chat.1.local.saveUnfurlSettings': {
    inParam: {readonly mode: UnfurlMode; readonly whitelist?: Array<String> | null}
    outParam: void
  }
  'chat.1.local.searchInbox': {
    inParam: {readonly query: String; readonly opts: SearchOpts; readonly namesOnly: Boolean; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: SearchInboxRes
  }
  'chat.1.local.searchRegexp': {
    inParam: {readonly convID: ConversationID; readonly query: String; readonly opts: SearchOpts; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior}
    outParam: SearchRegexpRes
  }
  'chat.1.local.setAppNotificationSettingsLocal': {
    inParam: {readonly convID: ConversationID; readonly channelWide: Boolean; readonly settings?: Array<AppNotificationSettingLocal> | null}
    outParam: SetAppNotificationSettingsLocalRes
  }
  'chat.1.local.setBotMemberSettings': {
    inParam: {readonly convID: ConversationID; readonly username: String; readonly botSettings: Keybase1.TeamBotSettings}
    outParam: void
  }
  'chat.1.local.setConvMinWriterRoleLocal': {
    inParam: {readonly convID: ConversationID; readonly role: Keybase1.TeamRole}
    outParam: void
  }
  'chat.1.local.setConvRetentionLocal': {
    inParam: {readonly convID: ConversationID; readonly policy: RetentionPolicy}
    outParam: void
  }
  'chat.1.local.setDefaultTeamChannelsLocal': {
    inParam: {readonly teamID: Keybase1.TeamID; readonly convs?: Array<ConvIDStr> | null}
    outParam: SetDefaultTeamChannelsLocalRes
  }
  'chat.1.local.setGlobalAppNotificationSettingsLocal': {
    inParam: {readonly settings: {[key: string]: Bool}}
    outParam: void
  }
  'chat.1.local.setTeamRetentionLocal': {
    inParam: {readonly teamID: Keybase1.TeamID; readonly policy: RetentionPolicy}
    outParam: void
  }
  'chat.1.local.setWelcomeMessage': {
    inParam: {readonly teamID: Keybase1.TeamID; readonly message: WelcomeMessage}
    outParam: void
  }
  'chat.1.local.simpleSearchInboxConvNames': {
    inParam: {readonly query: String}
    outParam: Array<SimpleSearchInboxConvNamesHit> | null
  }
  'chat.1.local.toggleEmojiAnimations': {
    inParam: {readonly enabled: Boolean}
    outParam: void
  }
  'chat.1.local.toggleMessageCollapse': {
    inParam: {readonly convID: ConversationID; readonly msgID: MessageID; readonly collapse: Boolean}
    outParam: void
  }
  'chat.1.local.unboxMobilePushNotification': {
    inParam: {readonly payload: String; readonly convID: String; readonly membersType: ConversationMembersType; readonly pushIDs?: Array<String> | null; readonly shouldAck: Boolean}
    outParam: String
  }
  'chat.1.local.unpinMessage': {
    inParam: {readonly convID: ConversationID}
    outParam: PinMessageRes
  }
  'chat.1.local.updateTyping': {
    inParam: {readonly conversationID: ConversationID; readonly typing: Boolean}
    outParam: void
  }
  'chat.1.local.updateUnsentText': {
    inParam: {readonly conversationID: ConversationID; readonly tlfName: String; readonly text: String}
    outParam: void
  }
  'chat.1.local.userEmojis': {
    inParam: {readonly opts: EmojiFetchOpts; readonly convID?: ConversationID | null}
    outParam: UserEmojiRes
  }
}

export enum AssetMetadataType {
  none = 0,
  image = 1,
  video = 2,
}

export enum AssetTag {
  primary = 0,
}

export enum BodyPlaintextVersion {
  v1 = 1,
  v2 = 2,
  v3 = 3,
  v4 = 4,
  v5 = 5,
  v6 = 6,
  v7 = 7,
  v8 = 8,
  v9 = 9,
  v10 = 10,
}

export enum BotCommandsAdvertisementTyp {
  public = 0,
  tlfidMembers = 1,
  tlfidConvs = 2,
  conv = 3,
}

export enum BotInfoResponseTyp {
  uptodate = 0,
  info = 1,
}

export enum ChannelMention {
  none = 0,
  all = 1,
  here = 2,
}

export enum ChatActivitySource {
  local = 0,
  remote = 1,
}

export enum ChatActivityType {
  reserved = 0,
  incomingMessage = 1,
  readMessage = 2,
  newConversation = 3,
  setStatus = 4,
  failedMessage = 5,
  membersUpdate = 6,
  setAppNotificationSettings = 7,
  teamtype = 8,
  expunge = 9,
  ephemeralPurge = 10,
  reactionUpdate = 11,
  messagesUpdated = 12,
}

export enum ConversationBuiltinCommandTyp {
  none = 0,
  adhoc = 1,
  smallteam = 2,
  bigteam = 3,
  bigteamgeneral = 4,
}

export enum ConversationCommandGroupsTyp {
  builtin = 0,
  custom = 1,
  none = 2,
}

export enum ConversationErrorType {
  permanent = 0,
  missinginfo = 1,
  selfrekeyneeded = 2,
  otherrekeyneeded = 3,
  identify = 4,
  transient = 5,
  none = 6,
}

export enum ConversationExistence {
  active = 0,
  archived = 1,
  deleted = 2,
  abandoned = 3,
}

export enum ConversationMemberStatus {
  active = 0,
  removed = 1,
  left = 2,
  preview = 3,
  reset = 4,
  neverJoined = 5,
}

export enum ConversationMembersType {
  kbfs = 0,
  team = 1,
  impteamnative = 2,
  impteamupgrade = 3,
}

export enum ConversationStatus {
  unfiled = 0,
  favorite = 1,
  ignored = 2,
  blocked = 3,
  muted = 4,
  reported = 5,
}

export enum EmojiLoadSourceTyp {
  httpsrv = 0,
  str = 1,
}

export enum EmojiRemoteSourceTyp {
  message = 0,
  stockalias = 1,
}

export enum ExternalAPIKeyTyp {
  googlemaps = 0,
  giphy = 1,
}

export enum GalleryItemTyp {
  media = 0,
  link = 1,
  doc = 2,
}

export enum GetThreadNonblockCbMode {
  full = 0,
  incremental = 1,
}

export enum GetThreadNonblockPgMode {
  default = 0,
  server = 1,
}

export enum GetThreadReason {
  general = 0,
  push = 1,
  foreground = 2,
  backgroundconvload = 3,
  fixretry = 4,
  prepare = 5,
  searcher = 6,
  indexedSearch = 7,
  kbfsfileactivity = 8,
  coinflip = 9,
  botcommands = 10,
  emojisource = 11,
  forwardmsg = 12,
  localize = 13,
}

export enum GlobalAppNotificationSetting {
  newmessages = 0,
  plaintextmobile = 1,
  plaintextdesktop = 2,
  defaultsoundmobile = 3,
  disabletyping = 4,
}

export enum HeaderPlaintextVersion {
  v1 = 1,
  v2 = 2,
  v3 = 3,
  v4 = 4,
  v5 = 5,
  v6 = 6,
  v7 = 7,
  v8 = 8,
  v9 = 9,
  v10 = 10,
}

export enum InboxLayoutReselectMode {
  default = 0,
  force = 1,
}

export enum InboxParticipantsMode {
  all = 0,
  skipTeams = 1,
}

export enum InboxResType {
  versionhit = 0,
  full = 1,
}

export enum JourneycardType {
  welcome = 0,
  popularChannels = 1,
  addPeople = 2,
  createChannels = 3,
  msgAttention = 4,
  unused = 5,
  channelInactive = 6,
  msgNoAnswer = 7,
}

export enum LastActiveStatus {
  none = 0,
  active = 1,
  recentlyActive = 2,
}

export enum MessageBoxedVersion {
  vnone = 0,
  v1 = 1,
  v2 = 2,
  v3 = 3,
  v4 = 4,
}

export enum MessageIDControlMode {
  oldermessages = 0,
  newermessages = 1,
  centered = 2,
  unreadline = 3,
}

export enum MessageSystemType {
  addedtoteam = 0,
  inviteaddedtoteam = 1,
  complexteam = 2,
  createteam = 3,
  gitpush = 4,
  changeavatar = 5,
  changeretention = 6,
  bulkaddtoconv = 7,
  sbsresolve = 8,
  newchannel = 9,
}

export enum MessageType {
  none = 0,
  text = 1,
  attachment = 2,
  edit = 3,
  delete = 4,
  metadata = 5,
  tlfname = 6,
  headline = 7,
  attachmentuploaded = 8,
  join = 9,
  leave = 10,
  system = 11,
  deletehistory = 12,
  reaction = 13,
  sendpayment = 14,
  requestpayment = 15,
  unfurl = 16,
  flip = 17,
  pin = 18,
}

export enum MessageUnboxedErrorType {
  misc = 0,
  badversionCritical = 1,
  badversion = 2,
  identify = 3,
  ephemeral = 4,
  pairwiseMissing = 5,
}

export enum MessageUnboxedState {
  valid = 1,
  error = 2,
  outbox = 3,
  placeholder = 4,
  journeycard = 5,
}

export enum NotificationKind {
  generic = 0,
  atmention = 1,
}

export enum OutboxErrorType {
  misc = 0,
  offline = 1,
  identify = 2,
  toolong = 3,
  duplicate = 4,
  expired = 5,
  toomanyattempts = 6,
  alreadyDeleted = 7,
  uploadfailed = 8,
  restrictedbot = 9,
  minwriter = 10,
}

export enum OutboxStateType {
  sending = 0,
  error = 1,
}

export enum PreviewLocationTyp {
  url = 0,
  file = 1,
  bytes = 2,
}

export enum ReIndexingMode {
  none = 0,
  presearchSync = 1,
  postsearchSync = 2,
}

export enum RetentionPolicyType {
  none = 0,
  retain = 1,
  expire = 2,
  inherit = 3,
  ephemeral = 4,
}

export enum SnippetDecoration {
  none = 0,
  pendingMessage = 1,
  failedPendingMessage = 2,
  explodingMessage = 3,
  explodedMessage = 4,
  audioAttachment = 5,
  videoAttachment = 6,
  photoAttachment = 7,
  fileAttachment = 8,
  stellarReceived = 9,
  stellarSent = 10,
  pinnedMessage = 11,
}

export enum StaleUpdateType {
  clear = 0,
  newactivity = 1,
}

export enum SyncAllNotificationType {
  state = 0,
  incremental = 1,
}

export enum SyncAllProtVers {
  v0 = 0,
  v1 = 1,
}

export enum SyncInboxResType {
  current = 0,
  incremental = 1,
  clear = 2,
}

export enum TeamType {
  none = 0,
  simple = 1,
  complex = 2,
}

export enum TextPaymentResultTyp {
  sent = 0,
  error = 1,
}

export enum TopicType {
  none = 0,
  chat = 1,
  dev = 2,
  kbfsfileedit = 3,
  emoji = 4,
  emojicross = 5,
}

export enum UIBotCommandsUpdateStatusTyp {
  uptodate = 0,
  updating = 1,
  failed = 2,
  blank = 3,
}

export enum UIChatThreadStatusTyp {
  none = 0,
  server = 1,
  validating = 2,
  validated = 3,
}

export enum UICoinFlipErrorTyp {
  generic = 0,
  absentee = 1,
  timeout = 2,
  aborted = 3,
  dupreg = 4,
  dupcommitcomplete = 5,
  dupreveal = 6,
  commitmismatch = 7,
}

export enum UICoinFlipPhase {
  commitment = 0,
  reveals = 1,
  complete = 2,
  error = 3,
}

export enum UICoinFlipResultTyp {
  number = 0,
  shuffle = 1,
  deck = 2,
  hands = 3,
  coin = 4,
}

export enum UICommandStatusActionTyp {
  appsettings = 0,
}

export enum UICommandStatusDisplayTyp {
  status = 0,
  warning = 1,
  error = 2,
}

export enum UIInboxBigTeamRowTyp {
  label = 1,
  channel = 2,
}

export enum UIMaybeMentionStatus {
  unknown = 0,
  user = 1,
  team = 2,
  nothing = 3,
}

export enum UIParticipantType {
  none = 0,
  user = 1,
  phoneno = 2,
  email = 3,
}

export enum UITextDecorationTyp {
  payment = 0,
  atmention = 1,
  channelnamemention = 2,
  maybemention = 3,
  link = 4,
  mailto = 5,
  kbfspath = 6,
  emoji = 7,
}

export enum UIWatchPositionPerm {
  base = 0,
  always = 1,
}

export enum UnfurlMode {
  always = 0,
  never = 1,
  whitelisted = 2,
}

export enum UnfurlPromptAction {
  always = 0,
  never = 1,
  accept = 2,
  notnow = 3,
  onetime = 4,
}

export enum UnfurlType {
  generic = 0,
  youtube = 1,
  giphy = 2,
  maps = 3,
}
export type AddEmojiAliasRes = {readonly rateLimit?: RateLimit | null; readonly error?: EmojiError | null}
export type AddEmojiRes = {readonly rateLimit?: RateLimit | null; readonly error?: EmojiError | null}
export type AddEmojisRes = {readonly rateLimit?: RateLimit | null; readonly successFilenames?: Array<String> | null; readonly failedFilenames: {[key: string]: EmojiError}}
export type AdvertiseBotCommandsLocalRes = {readonly rateLimits?: Array<RateLimit> | null}
export type AdvertiseBotCommandsRes = {readonly rateLimit?: RateLimit | null}
export type AdvertiseCommandAPIParam = {readonly typ: String; readonly commands?: Array<UserBotCommandInput> | null; readonly teamName: String; readonly convID: ConvIDStr}
export type AdvertiseCommandsParam = {readonly typ: BotCommandsAdvertisementTyp; readonly commands?: Array<UserBotCommandInput> | null; readonly teamName?: String | null; readonly convID?: ConversationID | null}
export type AppNotificationSettingLocal = {readonly deviceType: Keybase1.DeviceType; readonly kind: NotificationKind; readonly enabled: Boolean}
export type Asset = {readonly filename: String; readonly region: String; readonly endpoint: String; readonly bucket: String; readonly path: String; readonly size: Long; readonly mimeType: String; readonly encHash: Hash; readonly ptHash: Hash; readonly key: Bytes; readonly verifyKey: Bytes; readonly title: String; readonly nonce: Bytes; readonly metadata: AssetMetadata; readonly tag: AssetTag}
export type AssetMetadata = {assetType: AssetMetadataType.image; image: AssetMetadataImage} | {assetType: AssetMetadataType.video; video: AssetMetadataVideo} | {assetType: AssetMetadataType.none}
export type AssetMetadataImage = {readonly width: Int; readonly height: Int; readonly audioAmps?: Array<Double> | null}
export type AssetMetadataVideo = {readonly width: Int; readonly height: Int; readonly durationMs: Int; readonly isAudio: Boolean}
export type BodyPlaintext = {version: BodyPlaintextVersion.v1; v1: BodyPlaintextV1} | {version: BodyPlaintextVersion.v2; v2: BodyPlaintextV2} | {version: BodyPlaintextVersion.v3; v3: BodyPlaintextUnsupported} | {version: BodyPlaintextVersion.v4; v4: BodyPlaintextUnsupported} | {version: BodyPlaintextVersion.v5; v5: BodyPlaintextUnsupported} | {version: BodyPlaintextVersion.v6; v6: BodyPlaintextUnsupported} | {version: BodyPlaintextVersion.v7; v7: BodyPlaintextUnsupported} | {version: BodyPlaintextVersion.v8; v8: BodyPlaintextUnsupported} | {version: BodyPlaintextVersion.v9; v9: BodyPlaintextUnsupported} | {version: BodyPlaintextVersion.v10; v10: BodyPlaintextUnsupported}
export type BodyPlaintextMetaInfo = {readonly crit: Boolean}
export type BodyPlaintextUnsupported = {readonly mi: BodyPlaintextMetaInfo}
export type BodyPlaintextV1 = {readonly messageBody: MessageBody}
export type BodyPlaintextV2 = {readonly messageBody: MessageBody; readonly mi: BodyPlaintextMetaInfo}
export type BotCommandConv = {readonly uid: Gregor1.UID; readonly untrustedTeamRole: Keybase1.TeamRole; readonly convID: ConversationID; readonly vers: CommandConvVers; readonly mtime: Gregor1.Time; readonly typ: BotCommandsAdvertisementTyp}
export type BotInfo = {readonly serverHashVers: BotInfoHashVers; readonly clientHashVers: BotInfoHashVers; readonly commandConvs?: Array<BotCommandConv> | null}
export type BotInfoHash = Bytes
export type BotInfoHashVers = Uint64
export type BotInfoResponse = {typ: BotInfoResponseTyp.uptodate} | {typ: BotInfoResponseTyp.info; info: BotInfo}
export type BuiltinCommandGroup = {readonly typ: ConversationBuiltinCommandTyp; readonly commands?: Array<ConversationCommand> | null}
export type ChannelNameMention = {readonly convID: ConversationID; readonly topicName: String}
export type ChatActivity = {activityType: ChatActivityType.incomingMessage; incomingMessage: IncomingMessage} | {activityType: ChatActivityType.readMessage; readMessage: ReadMessageInfo} | {activityType: ChatActivityType.newConversation; newConversation: NewConversationInfo} | {activityType: ChatActivityType.setStatus; setStatus: SetStatusInfo} | {activityType: ChatActivityType.failedMessage; failedMessage: FailedMessageInfo} | {activityType: ChatActivityType.membersUpdate; membersUpdate: MembersUpdateInfo} | {activityType: ChatActivityType.setAppNotificationSettings; setAppNotificationSettings: SetAppNotificationSettingsInfo} | {activityType: ChatActivityType.teamtype; teamtype: TeamTypeInfo} | {activityType: ChatActivityType.expunge; expunge: ExpungeInfo} | {activityType: ChatActivityType.ephemeralPurge; ephemeralPurge: EphemeralPurgeNotifInfo} | {activityType: ChatActivityType.reactionUpdate; reactionUpdate: ReactionUpdateNotif} | {activityType: ChatActivityType.messagesUpdated; messagesUpdated: MessagesUpdated} | {activityType: ChatActivityType.reserved}
export type ChatChannel = {readonly name: String; readonly public: Boolean; readonly membersType: String; readonly topicType: String; readonly topicName: String}
export type ChatList = {readonly conversations?: Array<ConvSummary> | null; readonly offline: Boolean; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null; readonly rateLimits?: Array<RateLimitRes> | null}
export type ChatMemberDetails = {readonly uid: Keybase1.UID; readonly username: String; readonly fullName: Keybase1.FullName}
export type ChatMembersDetails = {readonly owners?: Array<ChatMemberDetails> | null; readonly admins?: Array<ChatMemberDetails> | null; readonly writers?: Array<ChatMemberDetails> | null; readonly readers?: Array<ChatMemberDetails> | null; readonly bots?: Array<ChatMemberDetails> | null; readonly restrictedBots?: Array<ChatMemberDetails> | null}
export type ChatMessage = {readonly body: String}
export type ChatSearchHit = {readonly beforeMessages?: Array<UIMessage> | null; readonly hitMessage: UIMessage; readonly afterMessages?: Array<UIMessage> | null; readonly matches?: Array<ChatSearchMatch> | null}
export type ChatSearchInboxDone = {readonly numHits: Int; readonly numConvs: Int; readonly percentIndexed: Int; readonly delegated: Boolean}
export type ChatSearchInboxHit = {readonly convID: ConversationID; readonly teamType: TeamType; readonly convName: String; readonly query: String; readonly time: Gregor1.Time; readonly hits?: Array<ChatSearchHit> | null}
export type ChatSearchInboxResults = {readonly hits?: Array<ChatSearchInboxHit> | null; readonly percentIndexed: Int}
export type ChatSearchIndexStatus = {readonly percentIndexed: Int}
export type ChatSearchMatch = {readonly startIndex: Int; readonly endIndex: Int; readonly match: String}
export type ChatSyncIncrementalConv = {readonly conv: UnverifiedInboxUIItem; readonly shouldUnbox: Boolean}
export type ChatSyncIncrementalInfo = {readonly items?: Array<ChatSyncIncrementalConv> | null; readonly removals?: Array<String> | null}
export type ChatSyncResult = {syncType: SyncInboxResType.current} | {syncType: SyncInboxResType.clear} | {syncType: SyncInboxResType.incremental; incremental: ChatSyncIncrementalInfo}
export type ClearBotCommandsFilter = {readonly typ: BotCommandsAdvertisementTyp; readonly teamName?: String | null; readonly convID?: ConversationID | null}
export type ClearBotCommandsLocalRes = {readonly rateLimits?: Array<RateLimit> | null}
export type ClearBotCommandsRes = {readonly rateLimit?: RateLimit | null}
export type ClearCommandAPIParam = {readonly typ: String; readonly teamName: String; readonly convID: ConvIDStr}
export type CommandConvVers = Uint64
export type ConvIDStr = String
export type ConvNotification = {readonly type: String; readonly conv?: ConvSummary | null; readonly error?: String | null}
export type ConvSearchHit = {readonly name: String; readonly convID: ConversationID; readonly isTeam: Boolean; readonly parts?: Array<String> | null}
export type ConvSummary = {readonly id: ConvIDStr; readonly channel: ChatChannel; readonly isDefaultConv: Boolean; readonly unread: Boolean; readonly activeAt: Int64; readonly activeAtMs: Int64; readonly memberStatus: String; readonly resetUsers?: Array<String> | null; readonly finalizeInfo?: ConversationFinalizeInfo | null; readonly supersedes?: Array<String> | null; readonly supersededBy?: Array<String> | null; readonly error: String; readonly creatorInfo?: ConversationCreatorInfoLocal | null}
export type ConvTypingUpdate = {readonly convID: ConversationID; readonly typers?: Array<TyperInfo> | null}
export type Conversation = {readonly metadata: ConversationMetadata; readonly readerInfo?: ConversationReaderInfo | null; readonly notifications?: ConversationNotificationInfo | null; readonly maxMsgs?: Array<MessageBoxed> | null; readonly maxMsgSummaries?: Array<MessageSummary> | null; readonly creatorInfo?: ConversationCreatorInfo | null; readonly pinnedMsg?: MessageID | null; readonly expunge: Expunge; readonly convRetention?: RetentionPolicy | null; readonly teamRetention?: RetentionPolicy | null; readonly cs /* convSettings */?: ConversationSettings | null}
export type ConversationCommand = {readonly description: String; readonly name: String; readonly usage: String; readonly hasHelpText: Boolean; readonly username?: String | null}
export type ConversationCommandGroups = {typ: ConversationCommandGroupsTyp.builtin; builtin: ConversationBuiltinCommandTyp} | {typ: ConversationCommandGroupsTyp.custom; custom: ConversationCommandGroupsCustom} | {typ: ConversationCommandGroupsTyp.none}
export type ConversationCommandGroupsCustom = {readonly commands?: Array<ConversationCommand> | null}
export type ConversationCreatorInfo = {readonly ctime: Gregor1.Time; readonly uid: Gregor1.UID}
export type ConversationCreatorInfoLocal = {readonly ctime: Gregor1.Time; readonly username: String}
export type ConversationErrorLocal = {readonly typ: ConversationErrorType; readonly message: String; readonly remoteConv: Conversation; readonly unverifiedTLFName: String; readonly rekeyInfo?: ConversationErrorRekey | null}
export type ConversationErrorRekey = {readonly tlfName: String; readonly tlfPublic: Boolean; readonly rekeyers?: Array<String> | null; readonly writerNames?: Array<String> | null; readonly readerNames?: Array<String> | null}
export type ConversationFinalizeInfo = {readonly resetUser: String; readonly resetDate: String; readonly resetFull: String; readonly resetTimestamp: Gregor1.Time}
export type ConversationID = Bytes
export type ConversationIDMessageIDPair = {readonly convID: ConversationID; readonly msgID: MessageID}
export type ConversationIDMessageIDPairs = {readonly pairs?: Array<ConversationIDMessageIDPair> | null}
export type ConversationIDTriple = {readonly tlfid: TLFID; readonly topicType: TopicType; readonly topicID: TopicID}
export type ConversationInfoLocal = {readonly id: ConversationID; readonly triple: ConversationIDTriple; readonly tlfName: String; readonly topicName: String; readonly headline: String; readonly headlineEmojis?: Array<HarvestedEmoji> | null; readonly snippetMsg?: MessageUnboxed | null; readonly pinnedMsg?: ConversationPinnedMessage | null; readonly draft?: String | null; readonly visibility: Keybase1.TLFVisibility; readonly isDefaultConv: Boolean; readonly status: ConversationStatus; readonly membersType: ConversationMembersType; readonly memberStatus: ConversationMemberStatus; readonly teamType: TeamType; readonly existence: ConversationExistence; readonly version: ConversationVers; readonly localVersion: LocalConversationVers; readonly participants?: Array<ConversationLocalParticipant> | null; readonly finalizeInfo?: ConversationFinalizeInfo | null; readonly resetNames?: Array<String> | null}
export type ConversationJourneycardInfo = {readonly w: /* welcomeEligible */ Boolean}
export type ConversationLocal = {readonly error?: ConversationErrorLocal | null; readonly info: ConversationInfoLocal; readonly readerInfo: ConversationReaderInfo; readonly creatorInfo?: ConversationCreatorInfoLocal | null; readonly notifications?: ConversationNotificationInfo | null; readonly supersedes?: Array<ConversationMetadata> | null; readonly supersededBy?: Array<ConversationMetadata> | null; readonly maxMessages?: Array<MessageSummary> | null; readonly isEmpty: Boolean; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null; readonly expunge: Expunge; readonly convRetention?: RetentionPolicy | null; readonly teamRetention?: RetentionPolicy | null; readonly convSettings?: ConversationSettingsLocal | null; readonly commands: ConversationCommandGroups; readonly botCommands: ConversationCommandGroups; readonly botAliases: {[key: string]: String}}
export type ConversationLocalParticipant = {readonly username: String; readonly inConvName: Boolean; readonly fullname?: String | null; readonly contactName?: String | null}
export type ConversationMember = {readonly uid: Gregor1.UID; readonly convID: ConversationID; readonly topicType: TopicType}
export type ConversationMetadata = {readonly idTriple: ConversationIDTriple; readonly conversationID: ConversationID; readonly visibility: Keybase1.TLFVisibility; readonly status: ConversationStatus; readonly membersType: ConversationMembersType; readonly teamType: TeamType; readonly existence: ConversationExistence; readonly version: ConversationVers; readonly localVersion: LocalConversationVers; readonly finalizeInfo?: ConversationFinalizeInfo | null; readonly supersedes?: Array<ConversationMetadata> | null; readonly supersededBy?: Array<ConversationMetadata> | null; readonly activeList?: Array<Gregor1.UID> | null; readonly allList?: Array<Gregor1.UID> | null; readonly resetList?: Array<Gregor1.UID> | null; readonly d: /* isDefaultConv */ Boolean}
export type ConversationMinWriterRoleInfo = {readonly uid: Gregor1.UID; readonly role: Keybase1.TeamRole}
export type ConversationMinWriterRoleInfoLocal = {readonly changedBy: String; readonly cannotWrite: Boolean; readonly role: Keybase1.TeamRole}
export type ConversationNotificationInfo = {readonly channelWide: Boolean; readonly settings: {[key: string]: {[key: string]: Boolean}}}
export type ConversationPinnedMessage = {readonly message: MessageUnboxed; readonly pinnerUsername: String}
export type ConversationReaderInfo = {readonly mtime: Gregor1.Time; readonly readMsgid: MessageID; readonly maxMsgid: MessageID; readonly status: ConversationMemberStatus; readonly untrustedTeamRole: Keybase1.TeamRole; readonly l: /* lastSendTime */ Gregor1.Time; readonly jc /* journeycard */?: ConversationJourneycardInfo | null}
export type ConversationResolveInfo = {readonly newTLFName: String}
export type ConversationSettings = {readonly mwr /* minWriterRoleInfo */?: ConversationMinWriterRoleInfo | null}
export type ConversationSettingsLocal = {readonly minWriterRoleInfo?: ConversationMinWriterRoleInfoLocal | null}
export type ConversationStaleUpdate = {readonly convID: ConversationID; readonly updateType: StaleUpdateType}
export type ConversationUpdate = {readonly convID: ConversationID; readonly existence: ConversationExistence}
export type ConversationVers = Uint64
export type Coordinate = {readonly lat: Double; readonly lon: Double; readonly accuracy: Double}
export type DeleteConversationLocalRes = {readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null}
export type DeleteConversationRemoteRes = {readonly rateLimit?: RateLimit | null}
export type DeviceInfo = {readonly deviceID: Keybase1.DeviceID; readonly deviceDescription: String; readonly deviceType: Keybase1.DeviceTypeV2; readonly deviceCtime: Int64}
export type DownloadAttachmentLocalRes = {readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type DownloadFileAttachmentLocalRes = {readonly filePath: String; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type EditTarget = {readonly messageID?: MessageID | null; readonly outboxID?: OutboxID | null}
export type Emoji = {readonly alias: String; readonly isBig: Boolean; readonly isReacji: Boolean; readonly isCrossTeam: Boolean; readonly isAlias: Boolean; readonly source: EmojiLoadSource; readonly noAnimSource: EmojiLoadSource; readonly remoteSource: EmojiRemoteSource; readonly creationInfo?: EmojiCreationInfo | null; readonly teamname?: String | null}
export type EmojiContent = {readonly alias: String; readonly isCrossTeam: Boolean; readonly convID?: ConvIDStr | null; readonly messageID?: MessageID | null}
export type EmojiCreationInfo = {readonly username: String; readonly time: Gregor1.Time}
export type EmojiError = {readonly clidisplay: String; readonly uidisplay: String}
export type EmojiFetchOpts = {readonly getCreationInfo: Boolean; readonly getAliases: Boolean; readonly onlyInTeam: Boolean}
export type EmojiGroup = {readonly name: String; readonly emojis?: Array<Emoji> | null}
export type EmojiLoadSource = {typ: EmojiLoadSourceTyp.httpsrv; httpsrv: String} | {typ: EmojiLoadSourceTyp.str; str: String}
export type EmojiMessage = {readonly convID: ConversationID; readonly msgID: MessageID; readonly isAlias: Boolean}
export type EmojiRemoteSource = {typ: EmojiRemoteSourceTyp.message; message: EmojiMessage} | {typ: EmojiRemoteSourceTyp.stockalias; stockalias: EmojiStockAlias}
export type EmojiStockAlias = {readonly text: String; readonly username: String; readonly time: Gregor1.Time}
export type EmojiStorage = {readonly mapping: {[key: string]: EmojiRemoteSource}}
export type EmptyRes = {readonly rateLimits?: Array<RateLimitRes> | null}
export type EmptyStruct = {}
export type EncryptedData = {readonly v: Int; readonly e: Bytes; readonly n: Bytes}
export type EphemeralPurgeInfo = {readonly c: /* convID */ ConversationID; readonly a: /* isActive */ Boolean; readonly n: /* nextPurgeTime */ Gregor1.Time; readonly e: /* minUnexplodedID */ MessageID}
export type EphemeralPurgeNotifInfo = {readonly convID: ConversationID; readonly msgs?: Array<UIMessage> | null}
export type Expunge = {readonly upto: MessageID; readonly basis: MessageID}
export type ExpungeInfo = {readonly convID: ConversationID; readonly expunge: Expunge}
export type ExpungePayload = {readonly Action: String; readonly convID: ConversationID; readonly inboxVers: InboxVers; readonly expunge: Expunge; readonly maxMsgs?: Array<MessageSummary> | null; readonly topicType: TopicType; readonly unreadUpdate?: UnreadUpdate | null}
export type ExternalAPIKey = {typ: ExternalAPIKeyTyp.googlemaps; googlemaps: String} | {typ: ExternalAPIKeyTyp.giphy; giphy: String}
export type FailedMessageInfo = {readonly outboxRecords?: Array<OutboxRecord> | null; readonly isEphemeralPurge: Boolean; readonly conv?: InboxUIItem | null}
export type FindConversationsLocalRes = {readonly conversations?: Array<ConversationLocal> | null; readonly uiConversations?: Array<InboxUIItem> | null; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type FlipGameID = Bytes
export type FlipGameIDStr = String
export type GenericPayload = {readonly Action: String; readonly inboxVers: InboxVers; readonly convID: ConversationID; readonly topicType: TopicType; readonly unreadUpdate?: UnreadUpdate | null}
export type GetAllResetConvMembersRes = {readonly members?: Array<ResetConvMember> | null; readonly rateLimits?: Array<RateLimit> | null}
export type GetBotInfoRes = {readonly response: BotInfoResponse; readonly rateLimit?: RateLimit | null}
export type GetChannelMembershipsLocalRes = {readonly channels?: Array<ChannelNameMention> | null; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null}
export type GetConversationForCLILocalQuery = {readonly markAsRead: Boolean; readonly MessageTypes?: Array<MessageType> | null; readonly Since?: String | null; readonly limit: UnreadFirstNumLimit; readonly conv: ConversationLocal}
export type GetConversationForCLILocalRes = {readonly conversation: ConversationLocal; readonly messages?: Array<MessageUnboxed> | null; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null}
export type GetConversationMetadataRemoteRes = {readonly conv: Conversation; readonly rateLimit?: RateLimit | null}
export type GetDefaultTeamChannelsLocalRes = {readonly convs?: Array<InboxUIItem> | null; readonly rateLimit?: RateLimit | null}
export type GetDefaultTeamChannelsRes = {readonly convs?: Array<ConversationID> | null; readonly rateLimit?: RateLimit | null}
export type GetDeviceInfoRes = {readonly devices?: Array<DeviceInfo> | null}
export type GetInboxAndUnboxLocalRes = {readonly conversations?: Array<ConversationLocal> | null; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type GetInboxAndUnboxUILocalRes = {readonly conversations?: Array<InboxUIItem> | null; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type GetInboxByTLFIDRemoteRes = {readonly convs?: Array<Conversation> | null; readonly rateLimit?: RateLimit | null}
export type GetInboxLocalQuery = {readonly name?: NameQuery | null; readonly topicName?: String | null; readonly convIDs?: Array<ConversationID> | null; readonly topicType?: TopicType | null; readonly tlfVisibility?: Keybase1.TLFVisibility | null; readonly before?: Gregor1.Time | null; readonly after?: Gregor1.Time | null; readonly oneChatTypePerTLF?: Boolean | null; readonly status?: Array<ConversationStatus> | null; readonly memberStatus?: Array<ConversationMemberStatus> | null; readonly unreadOnly: Boolean; readonly readOnly: Boolean; readonly computeActiveList: Boolean}
export type GetInboxQuery = {readonly convID?: ConversationID | null; readonly topicType?: TopicType | null; readonly tlfID?: TLFID | null; readonly tlfVisibility?: Keybase1.TLFVisibility | null; readonly before?: Gregor1.Time | null; readonly after?: Gregor1.Time | null; readonly oneChatTypePerTLF?: Boolean | null; readonly topicName?: String | null; readonly status?: Array<ConversationStatus> | null; readonly memberStatus?: Array<ConversationMemberStatus> | null; readonly existences?: Array<ConversationExistence> | null; readonly membersTypes?: Array<ConversationMembersType> | null; readonly convIDs?: Array<ConversationID> | null; readonly unreadOnly: Boolean; readonly readOnly: Boolean; readonly computeActiveList: Boolean; readonly summarizeMaxMsgs: Boolean; readonly participantsMode: InboxParticipantsMode; readonly skipBgLoads: Boolean; readonly allowUnseenQuery: Boolean}
export type GetInboxRemoteRes = {readonly inbox: InboxView; readonly rateLimit?: RateLimit | null}
export type GetInboxSummaryForCLILocalQuery = {readonly topicType: TopicType; readonly after: String; readonly before: String; readonly visibility: Keybase1.TLFVisibility; readonly status?: Array<ConversationStatus> | null; readonly convIDs?: Array<ConversationID> | null; readonly unreadFirst: Boolean; readonly unreadFirstLimit: UnreadFirstNumLimit; readonly activitySortedLimit: Int}
export type GetInboxSummaryForCLILocalRes = {readonly conversations?: Array<ConversationLocal> | null; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null}
export type GetLastActiveAtRes = {readonly lastActiveAt: Gregor1.Time; readonly rateLimit?: RateLimit | null}
export type GetMessageBeforeRes = {readonly msgID: MessageID; readonly rateLimit?: RateLimit | null}
export type GetMessagesLocalRes = {readonly messages?: Array<MessageUnboxed> | null; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type GetMessagesRemoteRes = {readonly msgs?: Array<MessageBoxed> | null; readonly membersType: ConversationMembersType; readonly visibility: Keybase1.TLFVisibility; readonly rateLimit?: RateLimit | null}
export type GetMutualTeamsLocalRes = {readonly teamIDs?: Array<Keybase1.TeamID> | null; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null}
export type GetNextAttachmentMessageLocalRes = {readonly message?: UIMessage | null; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type GetPublicConversationsRes = {readonly conversations?: Array<Conversation> | null; readonly rateLimit?: RateLimit | null}
export type GetRecentJoinsRes = {readonly numJoins: Int; readonly rateLimit?: RateLimit | null}
export type GetResetConvMembersRes = {readonly members?: Array<ResetConvMemberAPI> | null; readonly rateLimits?: Array<RateLimitRes> | null}
export type GetResetConversationsRes = {readonly resetConvs?: Array<ResetConversationMember> | null; readonly rateLimit?: RateLimit | null}
export type GetTLFConversationsLocalRes = {readonly convs?: Array<InboxUIItem> | null; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null}
export type GetTLFConversationsRes = {readonly conversations?: Array<Conversation> | null; readonly rateLimit?: RateLimit | null}
export type GetThreadLocalRes = {readonly thread: ThreadView; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type GetThreadQuery = {readonly markAsRead: Boolean; readonly messageTypes?: Array<MessageType> | null; readonly disableResolveSupersedes: Boolean; readonly enableDeletePlaceholders: Boolean; readonly disablePostProcessThread: Boolean; readonly before?: Gregor1.Time | null; readonly after?: Gregor1.Time | null; readonly messageIDControl?: MessageIDControl | null}
export type GetThreadRemoteRes = {readonly thread: ThreadViewBoxed; readonly membersType: ConversationMembersType; readonly visibility: Keybase1.TLFVisibility; readonly rateLimit?: RateLimit | null}
export type GetUnreadlineRemoteRes = {readonly unreadlineID?: MessageID | null; readonly rateLimit?: RateLimit | null}
export type GiphySearchResult = {readonly targetUrl: String; readonly previewUrl: String; readonly previewWidth: Int; readonly previewHeight: Int; readonly previewIsVideo: Boolean}
export type GiphySearchResults = {readonly results?: Array<GiphySearchResult> | null; readonly galleryUrl: String}
export type GlobalAppNotificationSettings = {readonly settings: {[key: string]: Bool}}
export type HarvestedEmoji = {readonly alias: String; readonly isBig: Boolean; readonly isCrossTeam: Boolean; readonly source: EmojiRemoteSource}
export type Hash = Bytes
export type HeaderPlaintext = {version: HeaderPlaintextVersion.v1; v1: HeaderPlaintextV1} | {version: HeaderPlaintextVersion.v2; v2: HeaderPlaintextUnsupported} | {version: HeaderPlaintextVersion.v3; v3: HeaderPlaintextUnsupported} | {version: HeaderPlaintextVersion.v4; v4: HeaderPlaintextUnsupported} | {version: HeaderPlaintextVersion.v5; v5: HeaderPlaintextUnsupported} | {version: HeaderPlaintextVersion.v6; v6: HeaderPlaintextUnsupported} | {version: HeaderPlaintextVersion.v7; v7: HeaderPlaintextUnsupported} | {version: HeaderPlaintextVersion.v8; v8: HeaderPlaintextUnsupported} | {version: HeaderPlaintextVersion.v9; v9: HeaderPlaintextUnsupported} | {version: HeaderPlaintextVersion.v10; v10: HeaderPlaintextUnsupported}
export type HeaderPlaintextMetaInfo = {readonly crit: Boolean}
export type HeaderPlaintextUnsupported = {readonly mi: HeaderPlaintextMetaInfo}
export type HeaderPlaintextV1 = {readonly conv: ConversationIDTriple; readonly tlfName: String; readonly tlfPublic: Boolean; readonly messageType: MessageType; readonly prev?: Array<MessagePreviousPointer> | null; readonly sender: Gregor1.UID; readonly senderDevice: Gregor1.DeviceID; readonly kbfsCryptKeysUsed?: Boolean | null; readonly bodyHash: Hash; readonly outboxInfo?: OutboxInfo | null; readonly outboxID?: OutboxID | null; readonly headerSignature?: SignatureInfo | null; readonly merkleRoot?: MerkleRoot | null; readonly em /* ephemeralMetadata */?: MsgEphemeralMetadata | null; readonly b /* botUID */?: Gregor1.UID | null}
export type InboxUIItem = {readonly convID: ConvIDStr; readonly tlfID: TLFIDStr; readonly topicType: TopicType; readonly isPublic: Boolean; readonly isEmpty: Boolean; readonly isDefaultConv: Boolean; readonly name: String; readonly snippet: String; readonly snippetDecorated: String; readonly snippetDecoration: SnippetDecoration; readonly channel: String; readonly headline: String; readonly headlineDecorated: String; readonly draft?: String | null; readonly visibility: Keybase1.TLFVisibility; readonly participants?: Array<UIParticipant> | null; readonly resetParticipants?: Array<String> | null; readonly status: ConversationStatus; readonly membersType: ConversationMembersType; readonly memberStatus: ConversationMemberStatus; readonly teamType: TeamType; readonly time: Gregor1.Time; readonly notifications?: ConversationNotificationInfo | null; readonly creatorInfo?: ConversationCreatorInfoLocal | null; readonly version: ConversationVers; readonly localVersion: LocalConversationVers; readonly maxMsgID: MessageID; readonly maxVisibleMsgID: MessageID; readonly readMsgID: MessageID; readonly convRetention?: RetentionPolicy | null; readonly teamRetention?: RetentionPolicy | null; readonly convSettings?: ConversationSettingsLocal | null; readonly finalizeInfo?: ConversationFinalizeInfo | null; readonly supersedes?: Array<ConversationMetadata> | null; readonly supersededBy?: Array<ConversationMetadata> | null; readonly commands: ConversationCommandGroups; readonly botCommands: ConversationCommandGroups; readonly botAliases: {[key: string]: String}; readonly pinnedMsg?: UIPinnedMessage | null}
export type InboxUIItemError = {readonly typ: ConversationErrorType; readonly message: String; readonly unverifiedTLFName: String; readonly rekeyInfo?: ConversationErrorRekey | null; readonly remoteConv: UnverifiedInboxUIItem}
export type InboxUIItems = {readonly items?: Array<InboxUIItem> | null; readonly offline: Boolean}
export type InboxVers = Uint64
export type InboxVersInfo = {readonly uid: Gregor1.UID; readonly vers: InboxVers}
export type InboxView = {rtype: InboxResType.versionhit} | {rtype: InboxResType.full; full: InboxViewFull}
export type InboxViewFull = {readonly vers: InboxVers; readonly conversations?: Array<Conversation> | null; readonly pagination?: Pagination | null}
export type IncomingMessage = {readonly message: UIMessage; readonly modifiedMessage?: UIMessage | null; readonly convID: ConversationID; readonly displayDesktopNotification: Boolean; readonly desktopNotificationSnippet: String; readonly conv?: InboxUIItem | null; readonly pagination?: UIPagination | null}
export type JoinLeaveConversationLocalRes = {readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null}
export type JoinLeaveConversationRemoteRes = {readonly rateLimit?: RateLimit | null}
export type KBFSImpteamUpgradeUpdate = {readonly convID: ConversationID; readonly inboxVers: InboxVers; readonly topicType: TopicType}
export type KBFSPath = {readonly startIndex: Int; readonly rawPath: String; readonly standardPath: String; readonly pathInfo: Keybase1.KBFSPathInfo}
export type KnownTeamMention = {readonly name: String; readonly channel: String}
export type KnownUserMention = {readonly text: String; readonly uid: Gregor1.UID}
export type LastActiveStatusAll = {readonly teams: {[key: string]: LastActiveStatus}; readonly channels: {[key: string]: LastActiveStatus}}
export type LastActiveTimeAll = {readonly teams: {[key: string]: Gregor1.Time}; readonly channels: {[key: string]: Gregor1.Time}}
export type ListBotCommandsLocalRes = {readonly commands?: Array<UserBotCommandOutput> | null; readonly rateLimits?: Array<RateLimit> | null}
export type ListCommandsRes = {readonly commands?: Array<UserBotCommandOutput> | null; readonly rateLimits?: Array<RateLimitRes> | null}
export type LiveLocation = {readonly endTime: Gregor1.Time}
export type LoadFlipRes = {readonly status: UICoinFlipStatus; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type LoadGalleryRes = {readonly messages?: Array<UIMessage> | null; readonly last: Boolean; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type LocalConversationVers = Uint64
export type LocalMtimeUpdate = {readonly convID: ConversationID; readonly mtime: Gregor1.Time}
export type LocationWatchID = Uint64
export type MakePreviewRes = {readonly mimeType: String; readonly previewMimeType?: String | null; readonly location?: PreviewLocation | null; readonly metadata?: AssetMetadata | null; readonly baseMetadata?: AssetMetadata | null}
export type MarkAsReadLocalRes = {readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null}
export type MarkAsReadRes = {readonly rateLimit?: RateLimit | null}
export type MarkTLFAsReadLocalRes = {readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null}
export type MaybeMention = {readonly name: String; readonly channel: String}
export type MemberInfo = {readonly member: String; readonly status: ConversationMemberStatus}
export type MembersUpdateInfo = {readonly convID: ConversationID; readonly members?: Array<MemberInfo> | null}
export type MerkleRoot = {readonly seqno: Long; readonly hash: Bytes}
export type Message = {readonly msg?: MsgSummary | null; readonly error?: String | null}
export type MessageAttachment = {readonly object: Asset; readonly preview?: Asset | null; readonly previews?: Array<Asset> | null; readonly metadata: Bytes; readonly uploaded: Boolean; readonly userMentions?: Array<KnownUserMention> | null; readonly teamMentions?: Array<KnownTeamMention> | null; readonly emojis: {[key: string]: HarvestedEmoji}}
export type MessageAttachmentUploaded = {readonly messageID: MessageID; readonly object: Asset; readonly previews?: Array<Asset> | null; readonly metadata: Bytes}
export type MessageBody = {messageType: MessageType.text; text: MessageText} | {messageType: MessageType.attachment; attachment: MessageAttachment} | {messageType: MessageType.edit; edit: MessageEdit} | {messageType: MessageType.delete; delete: MessageDelete} | {messageType: MessageType.metadata; metadata: MessageConversationMetadata} | {messageType: MessageType.headline; headline: MessageHeadline} | {messageType: MessageType.attachmentuploaded; attachmentuploaded: MessageAttachmentUploaded} | {messageType: MessageType.join; join: MessageJoin} | {messageType: MessageType.leave; leave: MessageLeave} | {messageType: MessageType.system; system: MessageSystem} | {messageType: MessageType.deletehistory; deletehistory: MessageDeleteHistory} | {messageType: MessageType.reaction; reaction: MessageReaction} | {messageType: MessageType.sendpayment; sendpayment: MessageSendPayment} | {messageType: MessageType.requestpayment; requestpayment: MessageRequestPayment} | {messageType: MessageType.unfurl; unfurl: MessageUnfurl} | {messageType: MessageType.flip; flip: MessageFlip} | {messageType: MessageType.pin; pin: MessagePin} | {messageType: MessageType.none} | {messageType: MessageType.tlfname}
export type MessageBoxed = {readonly version: MessageBoxedVersion; readonly serverHeader?: MessageServerHeader | null; readonly clientHeader: MessageClientHeader; readonly headerCiphertext: SealedData; readonly bodyCiphertext: EncryptedData; readonly verifyKey: Bytes; readonly keyGeneration: Int}
export type MessageClientHeader = {readonly conv: ConversationIDTriple; readonly tlfName: String; readonly tlfPublic: Boolean; readonly messageType: MessageType; readonly supersedes: MessageID; readonly kbfsCryptKeysUsed?: Boolean | null; readonly deletes?: Array<MessageID> | null; readonly prev?: Array<MessagePreviousPointer> | null; readonly deleteHistory?: MessageDeleteHistory | null; readonly sender: Gregor1.UID; readonly senderDevice: Gregor1.DeviceID; readonly merkleRoot?: MerkleRoot | null; readonly outboxID?: OutboxID | null; readonly outboxInfo?: OutboxInfo | null; readonly em /* ephemeralMetadata */?: MsgEphemeralMetadata | null; readonly pm: /* pairwiseMacs */ {[key: string]: Bytes}; readonly b /* botUID */?: Gregor1.UID | null; readonly t /* txID */?: Stellar1.TransactionID | null}
export type MessageClientHeaderVerified = {readonly conv: ConversationIDTriple; readonly tlfName: String; readonly tlfPublic: Boolean; readonly messageType: MessageType; readonly prev?: Array<MessagePreviousPointer> | null; readonly sender: Gregor1.UID; readonly senderDevice: Gregor1.DeviceID; readonly kbfsCryptKeysUsed?: Boolean | null; readonly merkleRoot?: MerkleRoot | null; readonly outboxID?: OutboxID | null; readonly outboxInfo?: OutboxInfo | null; readonly em /* ephemeralMetadata */?: MsgEphemeralMetadata | null; readonly rt: /* rtime */ Gregor1.Time; readonly pm: /* hasPairwiseMacs */ Boolean; readonly b /* botUID */?: Gregor1.UID | null}
export type MessageConversationMetadata = {readonly conversationTitle: String}
export type MessageDelete = {readonly messageIDs?: Array<MessageID> | null}
export type MessageDeleteHistory = {readonly upto: MessageID}
export type MessageEdit = {readonly messageID: MessageID; readonly body: String; readonly userMentions?: Array<KnownUserMention> | null; readonly teamMentions?: Array<KnownTeamMention> | null; readonly emojis: {[key: string]: HarvestedEmoji}}
export type MessageFlip = {readonly text: String; readonly gameID: FlipGameID; readonly flipConvID: ConversationID; readonly userMentions?: Array<KnownUserMention> | null; readonly teamMentions?: Array<KnownTeamMention> | null}
export type MessageHeadline = {readonly headline: String; readonly emojis: {[key: string]: HarvestedEmoji}}
export type MessageID = Uint
export type MessageIDControl = {readonly pivot?: MessageID | null; readonly mode: MessageIDControlMode; readonly num: Int}
export type MessageJoin = {readonly joiners?: Array<String> | null; readonly leavers?: Array<String> | null}
export type MessageLeave = {}
export type MessagePin = {readonly msgID: MessageID}
export type MessagePlaintext = {readonly clientHeader: MessageClientHeader; readonly messageBody: MessageBody; readonly supersedesOutboxID?: OutboxID | null; readonly emojis?: Array<HarvestedEmoji> | null}
export type MessagePreviousPointer = {readonly id: MessageID; readonly hash: Hash}
export type MessageReaction = {readonly m: /* messageID */ MessageID; readonly b: /* body */ String; readonly t /* targetUID */?: Gregor1.UID | null; readonly e: /* emojis */ {[key: string]: HarvestedEmoji}}
export type MessageRequestPayment = {readonly requestID: Stellar1.KeybaseRequestID; readonly note: String}
export type MessageSendPayment = {readonly paymentID: Stellar1.PaymentID}
export type MessageServerHeader = {readonly messageID: MessageID; readonly supersededBy: MessageID; readonly r /* reactionIDs */?: Array<MessageID> | null; readonly u /* unfurlIDs */?: Array<MessageID> | null; readonly replies?: Array<MessageID> | null; readonly ctime: Gregor1.Time; readonly n: /* now */ Gregor1.Time; readonly rt /* rtime */?: Gregor1.Time | null}
export type MessageSummary = {readonly msgID: MessageID; readonly messageType: MessageType; readonly tlfName: String; readonly tlfPublic: Boolean; readonly ctime: Gregor1.Time}
export type MessageSystem = {systemType: MessageSystemType.addedtoteam; addedtoteam: MessageSystemAddedToTeam} | {systemType: MessageSystemType.inviteaddedtoteam; inviteaddedtoteam: MessageSystemInviteAddedToTeam} | {systemType: MessageSystemType.complexteam; complexteam: MessageSystemComplexTeam} | {systemType: MessageSystemType.createteam; createteam: MessageSystemCreateTeam} | {systemType: MessageSystemType.gitpush; gitpush: MessageSystemGitPush} | {systemType: MessageSystemType.changeavatar; changeavatar: MessageSystemChangeAvatar} | {systemType: MessageSystemType.changeretention; changeretention: MessageSystemChangeRetention} | {systemType: MessageSystemType.bulkaddtoconv; bulkaddtoconv: MessageSystemBulkAddToConv} | {systemType: MessageSystemType.sbsresolve; sbsresolve: MessageSystemSbsResolve} | {systemType: MessageSystemType.newchannel; newchannel: MessageSystemNewChannel}
export type MessageSystemAddedToTeam = {readonly team: String; readonly adder: String; readonly addee: String; readonly role: Keybase1.TeamRole; readonly bulkAdds?: Array<String> | null}
export type MessageSystemBulkAddToConv = {readonly usernames?: Array<String> | null}
export type MessageSystemChangeAvatar = {readonly team: String; readonly user: String}
export type MessageSystemChangeRetention = {readonly isTeam: Boolean; readonly isInherit: Boolean; readonly membersType: ConversationMembersType; readonly policy: RetentionPolicy; readonly user: String}
export type MessageSystemComplexTeam = {readonly team: String}
export type MessageSystemCreateTeam = {readonly team: String; readonly creator: String}
export type MessageSystemGitPush = {readonly team: String; readonly pusher: String; readonly repoName: String; readonly repoID: Keybase1.RepoID; readonly refs?: Array<Keybase1.GitRefMetadata> | null; readonly pushType: Keybase1.GitPushType; readonly previousRepoName: String}
export type MessageSystemInviteAddedToTeam = {readonly team: String; readonly inviter: String; readonly invitee: String; readonly adder: String; readonly inviteType: Keybase1.TeamInviteCategory; readonly role: Keybase1.TeamRole}
export type MessageSystemNewChannel = {readonly creator: String; readonly nameAtCreation: String; readonly convID: ConversationID; readonly convIDs?: Array<ConversationID> | null}
export type MessageSystemSbsResolve = {readonly assertionService: String; readonly assertionUsername: String; readonly prover: String}
export type MessageText = {readonly body: String; readonly payments?: Array<TextPayment> | null; readonly replyTo?: MessageID | null; readonly replyToUID?: Gregor1.UID | null; readonly userMentions?: Array<KnownUserMention> | null; readonly teamMentions?: Array<KnownTeamMention> | null; readonly liveLocation?: LiveLocation | null; readonly emojis: {[key: string]: HarvestedEmoji}}
export type MessageUnboxed = {state: MessageUnboxedState.valid; valid: MessageUnboxedValid} | {state: MessageUnboxedState.error; error: MessageUnboxedError} | {state: MessageUnboxedState.outbox; outbox: OutboxRecord} | {state: MessageUnboxedState.placeholder; placeholder: MessageUnboxedPlaceholder} | {state: MessageUnboxedState.journeycard; journeycard: MessageUnboxedJourneycard}
export type MessageUnboxedError = {readonly errType: MessageUnboxedErrorType; readonly errMsg: String; readonly internalErrMsg: String; readonly versionKind: VersionKind; readonly versionNumber: Int; readonly isCritical: Boolean; readonly senderUsername: String; readonly senderDeviceName: String; readonly senderDeviceType: Keybase1.DeviceTypeV2; readonly messageID: MessageID; readonly messageType: MessageType; readonly ctime: Gregor1.Time; readonly isEphemeral: Boolean; readonly explodedBy?: String | null; readonly etime: Gregor1.Time; readonly botUsername: String}
export type MessageUnboxedJourneycard = {readonly prevID: MessageID; readonly ordinal: Int; readonly cardType: JourneycardType; readonly highlightMsgID: MessageID; readonly openTeam: Boolean}
export type MessageUnboxedPlaceholder = {readonly messageID: MessageID; readonly hidden: Boolean}
export type MessageUnboxedValid = {readonly clientHeader: MessageClientHeaderVerified; readonly serverHeader: MessageServerHeader; readonly messageBody: MessageBody; readonly senderUsername: String; readonly senderDeviceName: String; readonly senderDeviceType: Keybase1.DeviceTypeV2; readonly bodyHash: Hash; readonly headerHash: Hash; readonly headerSignature?: SignatureInfo | null; readonly verificationKey?: Bytes | null; readonly senderDeviceRevokedAt?: Gregor1.Time | null; readonly atMentionUsernames?: Array<String> | null; readonly atMentions?: Array<Gregor1.UID> | null; readonly channelMention: ChannelMention; readonly maybeMentions?: Array<MaybeMention> | null; readonly channelNameMentions?: Array<ChannelNameMention> | null; readonly reactions: ReactionMap; readonly unfurls: {[key: string]: UnfurlResult}; readonly emojis?: Array<HarvestedEmoji> | null; readonly replyTo?: MessageUnboxed | null; readonly botUsername: String}
export type MessageUnfurl = {readonly unfurl: UnfurlResult; readonly messageID: MessageID}
export type MessagesUpdated = {readonly convID: ConversationID; readonly updates?: Array<UIMessage> | null}
export type MsgBotInfo = {readonly botUID: Keybase1.UID; readonly botUsername: String}
export type MsgContent = {readonly typeName: String; readonly text?: MsgTextContent | null; readonly attachment?: MessageAttachment | null; readonly edit?: MessageEdit | null; readonly reaction?: MessageReaction | null; readonly delete?: MessageDelete | null; readonly metadata?: MessageConversationMetadata | null; readonly headline?: MessageHeadline | null; readonly attachmentUploaded?: MessageAttachmentUploaded | null; readonly system?: MessageSystem | null; readonly sendPayment?: MessageSendPayment | null; readonly requestPayment?: MessageRequestPayment | null; readonly unfurl?: MessageUnfurl | null; readonly flip?: MsgFlipContent | null}
export type MsgEphemeralMetadata = {readonly l: /* lifetime */ Gregor1.DurationSec; readonly g: /* generation */ Keybase1.EkGeneration; readonly u /* explodedBy */?: String | null}
export type MsgFlipContent = {readonly text: String; readonly gameID: FlipGameIDStr; readonly flipConvID: ConvIDStr; readonly userMentions?: Array<KnownUserMention> | null; readonly teamMentions?: Array<KnownTeamMention> | null}
export type MsgNotification = {readonly type: String; readonly source: String; readonly msg?: MsgSummary | null; readonly error?: String | null; readonly pagination?: UIPagination | null}
export type MsgSender = {readonly uid: Keybase1.UID; readonly username: String; readonly deviceID: Keybase1.DeviceID; readonly deviceName: String}
export type MsgSummary = {readonly id: MessageID; readonly convID: ConvIDStr; readonly channel: ChatChannel; readonly sender: MsgSender; readonly sentAt: Int64; readonly sentAtMs: Int64; readonly content: MsgContent; readonly prev?: Array<MessagePreviousPointer> | null; readonly unread: Boolean; readonly revokedDevice: Boolean; readonly offline: Boolean; readonly kbfsEncrypted: Boolean; readonly isEphemeral: Boolean; readonly isEphemeralExpired: Boolean; readonly eTime: Gregor1.Time; readonly reactions?: UIReactionMap | null; readonly hasPairwiseMacs: Boolean; readonly atMentionUsernames?: Array<String> | null; readonly channelMention: String; readonly channelNameMentions?: Array<UIChannelNameMention> | null; readonly botInfo?: MsgBotInfo | null}
export type MsgTextContent = {readonly body: String; readonly payments?: Array<TextPayment> | null; readonly replyTo?: MessageID | null; readonly replyToUID?: String | null; readonly userMentions?: Array<KnownUserMention> | null; readonly teamMentions?: Array<KnownTeamMention> | null; readonly liveLocation?: LiveLocation | null; readonly emojis?: Array<EmojiContent> | null}
export type NameQuery = {readonly name: String; readonly tlfID?: TLFID | null; readonly membersType: ConversationMembersType}
export type NewConvRes = {readonly id: ConvIDStr; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null; readonly rateLimits?: Array<RateLimitRes> | null}
export type NewConversationInfo = {readonly convID: ConversationID; readonly conv?: InboxUIItem | null}
export type NewConversationLocalArgument = {readonly tlfName: String; readonly topicType: TopicType; readonly tlfVisibility: Keybase1.TLFVisibility; readonly topicName?: String | null; readonly membersType: ConversationMembersType}
export type NewConversationLocalRes = {readonly conv: ConversationLocal; readonly uiConv: InboxUIItem; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type NewConversationPayload = {readonly Action: String; readonly convID: ConversationID; readonly inboxVers: InboxVers; readonly topicType: TopicType; readonly unreadUpdate?: UnreadUpdate | null}
export type NewConversationRemoteRes = {readonly convID: ConversationID; readonly createdComplexTeam: Boolean; readonly rateLimit?: RateLimit | null}
export type NewConversationsLocalRes = {readonly results?: Array<NewConversationsLocalResult> | null; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type NewConversationsLocalResult = {readonly result?: NewConversationLocalRes | null; readonly err?: String | null}
export type NewMessagePayload = {readonly Action: String; readonly convID: ConversationID; readonly message: MessageBoxed; readonly inboxVers: InboxVers; readonly topicType: TopicType; readonly unreadUpdate?: UnreadUpdate | null; readonly untrustedTeamRole: Keybase1.TeamRole; readonly maxMsgs?: Array<MessageSummary> | null}
export type NonblockFetchRes = {readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type OutboxID = Bytes
export type OutboxInfo = {readonly prev: MessageID; readonly composeTime: Gregor1.Time}
export type OutboxRecord = {readonly state: OutboxState; readonly outboxID: OutboxID; readonly convID: ConversationID; readonly ctime: Gregor1.Time; readonly Msg: MessagePlaintext; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior; readonly prepareOpts?: SenderPrepareOptions | null; readonly sendOpts?: SenderSendOptions | null; readonly ordinal: Int; readonly preview?: MakePreviewRes | null; readonly replyTo?: MessageUnboxed | null}
export type OutboxState = {state: OutboxStateType.sending; sending: Int} | {state: OutboxStateType.error; error: OutboxStateError}
export type OutboxStateError = {readonly message: String; readonly typ: OutboxErrorType}
export type Pagination = {readonly next: Bytes; readonly previous: Bytes; readonly num: Int; readonly last: Boolean; readonly forceFirstPage: Boolean}
export type PinMessageRes = {readonly rateLimits?: Array<RateLimit> | null}
export type PostFileAttachmentArg = {readonly conversationID: ConversationID; readonly tlfName: String; readonly visibility: Keybase1.TLFVisibility; readonly filename: String; readonly title: String; readonly metadata: Bytes; readonly identifyBehavior: Keybase1.TLFIdentifyBehavior; readonly callerPreview?: MakePreviewRes | null; readonly outboxID?: OutboxID | null; readonly ephemeralLifetime?: Gregor1.DurationSec | null}
export type PostLocalNonblockRes = {readonly rateLimits?: Array<RateLimit> | null; readonly outboxID: OutboxID; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type PostLocalRes = {readonly rateLimits?: Array<RateLimit> | null; readonly messageID: MessageID; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type PostRemoteRes = {readonly msgHeader: MessageServerHeader; readonly rateLimit?: RateLimit | null}
export type PreviewConversationLocalRes = {readonly conv: InboxUIItem; readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null}
export type PreviewLocation = {ltyp: PreviewLocationTyp.url; url: String} | {ltyp: PreviewLocationTyp.file; file: String} | {ltyp: PreviewLocationTyp.bytes; bytes: Bytes}
export type ProfileSearchConvStats = {readonly err: String; readonly convName: String; readonly minConvID: MessageID; readonly maxConvID: MessageID; readonly numMissing: Int; readonly numMessages: Int; readonly indexSizeDisk: Int; readonly indexSizeMem: Int64; readonly durationMsec: Gregor1.DurationMsec; readonly percentIndexed: Int}
export type RateLimit = {readonly name: String; readonly callsRemaining: Int; readonly windowReset: Int; readonly maxCalls: Int}
export type RateLimitRes = {readonly tank: String; readonly capacity: Int; readonly reset: Int; readonly gas: Int}
export type Reaction = {readonly ctime: Gregor1.Time; readonly reactionMsgID: MessageID}
export type ReactionMap = {readonly reactions: {[key: string]: {[key: string]: Reaction}}}
export type ReactionUpdate = {readonly reactions: UIReactionMap; readonly targetMsgID: MessageID}
export type ReactionUpdateNotif = {readonly convID: ConversationID; readonly userReacjis: Keybase1.UserReacjis; readonly reactionUpdates?: Array<ReactionUpdate> | null}
export type ReadMessageInfo = {readonly convID: ConversationID; readonly msgID: MessageID; readonly conv?: InboxUIItem | null}
export type ReadMessagePayload = {readonly Action: String; readonly convID: ConversationID; readonly msgID: MessageID; readonly inboxVers: InboxVers; readonly topicType: TopicType; readonly unreadUpdate?: UnreadUpdate | null}
export type RefreshParticipantsRemoteRes = {readonly hashMatch: Boolean; readonly uids?: Array<Gregor1.UID> | null; readonly hash: String; readonly rateLimit?: RateLimit | null}
export type RegexpRes = {readonly hits?: Array<ChatSearchHit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null; readonly rateLimits?: Array<RateLimitRes> | null}
export type RemoteBotCommandsAdvertisement = {typ: BotCommandsAdvertisementTyp.public; public: RemoteBotCommandsAdvertisementPublic} | {typ: BotCommandsAdvertisementTyp.tlfidMembers; tlfidMembers: RemoteBotCommandsAdvertisementTLFID} | {typ: BotCommandsAdvertisementTyp.tlfidConvs; tlfidConvs: RemoteBotCommandsAdvertisementTLFID} | {typ: BotCommandsAdvertisementTyp.conv; conv: RemoteBotCommandsAdvertisementConv}
export type RemoteBotCommandsAdvertisementConv = {readonly convID: ConversationID; readonly advertiseConvID: ConversationID}
export type RemoteBotCommandsAdvertisementPublic = {readonly convID: ConversationID}
export type RemoteBotCommandsAdvertisementTLFID = {readonly convID: ConversationID; readonly tlfID: TLFID}
export type RemoteClearBotCommandsFilter = {typ: BotCommandsAdvertisementTyp.public; public: RemoteClearBotCommandsFilterPublic} | {typ: BotCommandsAdvertisementTyp.tlfidMembers; tlfidMembers: RemoteClearBotCommandsFilterTLFID} | {typ: BotCommandsAdvertisementTyp.tlfidConvs; tlfidConvs: RemoteClearBotCommandsFilterTLFID} | {typ: BotCommandsAdvertisementTyp.conv; conv: RemoteClearBotCommandsFilterConv}
export type RemoteClearBotCommandsFilterConv = {readonly convID: ConversationID}
export type RemoteClearBotCommandsFilterPublic = {}
export type RemoteClearBotCommandsFilterTLFID = {readonly tlfID: TLFID}
export type RemoteUserTypingUpdate = {readonly uid: Gregor1.UID; readonly deviceID: Gregor1.DeviceID; readonly convID: ConversationID; readonly typing: Boolean; readonly t: /* teamType */ TeamType}
export type RemoveEmojiRes = {readonly rateLimit?: RateLimit | null}
export type RemoveFromConversationLocalRes = {readonly rateLimits?: Array<RateLimit> | null}
export type RemoveFromConversationRemoteRes = {readonly rateLimit?: RateLimit | null}
export type ResetConvMember = {readonly username: String; readonly uid: Gregor1.UID; readonly conv: ConversationID}
export type ResetConvMemberAPI = {readonly conversationID: ConvIDStr; readonly username: String}
export type ResetConversationMember = {readonly convID: ConversationID; readonly uid: Gregor1.UID}
export type RetentionPolicy = {typ: RetentionPolicyType.retain; retain: RpRetain} | {typ: RetentionPolicyType.expire; expire: RpExpire} | {typ: RetentionPolicyType.inherit; inherit: RpInherit} | {typ: RetentionPolicyType.ephemeral; ephemeral: RpEphemeral} | {typ: RetentionPolicyType.none}
export type RpEphemeral = {readonly age: Gregor1.DurationSec}
export type RpExpire = {readonly age: Gregor1.DurationSec}
export type RpInherit = {}
export type RpRetain = {}
export type S3Params = {readonly bucket: String; readonly objectKey: String; readonly accessKey: String; readonly acl: String; readonly regionName: String; readonly regionEndpoint: String; readonly regionBucketEndpoint: String}
export type SealedData = {readonly v: Int; readonly e: Bytes; readonly n: Bytes}
export type SearchInboxRes = {readonly offline: Boolean; readonly res?: ChatSearchInboxResults | null; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type SearchInboxResOutput = {readonly results?: ChatSearchInboxResults | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null; readonly rateLimits?: Array<RateLimitRes> | null}
export type SearchOpts = {readonly isRegex: Boolean; readonly sentBy: String; readonly sentTo: String; readonly matchMentions: Boolean; readonly sentBefore: Gregor1.Time; readonly sentAfter: Gregor1.Time; readonly maxHits: Int; readonly maxMessages: Int; readonly beforeContext: Int; readonly afterContext: Int; readonly initialPagination?: Pagination | null; readonly reindexMode: ReIndexingMode; readonly maxConvsSearched: Int; readonly maxConvsHit: Int; readonly convID?: ConversationID | null; readonly maxNameConvs: Int; readonly maxTeams: Int; readonly maxBots: Int; readonly skipBotCache: Boolean}
export type SearchRegexpRes = {readonly offline: Boolean; readonly hits?: Array<ChatSearchHit> | null; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type SendRes = {readonly message: String; readonly messageID?: MessageID | null; readonly outboxID?: OutboxID | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null; readonly rateLimits?: Array<RateLimitRes> | null}
export type SenderPrepareOptions = {readonly skipTopicNameState: Boolean; readonly replyTo?: MessageID | null}
export type SenderSendOptions = {readonly joinMentionsAs?: ConversationMemberStatus | null}
export type ServerCacheVers = {readonly inboxVers: Int; readonly bodiesVers: Int}
export type ServerNowRes = {readonly rateLimit?: RateLimit | null; readonly now: Gregor1.Time}
export type SetAppNotificationSettingsInfo = {readonly convID: ConversationID; readonly settings: ConversationNotificationInfo}
export type SetAppNotificationSettingsLocalRes = {readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null}
export type SetAppNotificationSettingsPayload = {readonly Action: String; readonly convID: ConversationID; readonly inboxVers: InboxVers; readonly settings: ConversationNotificationInfo; readonly topicType: TopicType; readonly unreadUpdate?: UnreadUpdate | null}
export type SetAppNotificationSettingsRes = {readonly rateLimit?: RateLimit | null}
export type SetConvMinWriterRoleRes = {readonly rateLimit?: RateLimit | null}
export type SetConvRetentionUpdate = {readonly inboxVers: InboxVers; readonly convID: ConversationID; readonly policy: RetentionPolicy}
export type SetConvSettingsUpdate = {readonly inboxVers: InboxVers; readonly convID: ConversationID; readonly convSettings?: ConversationSettings | null}
export type SetConversationStatusLocalRes = {readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null}
export type SetConversationStatusRes = {readonly rateLimit?: RateLimit | null}
export type SetDefaultTeamChannelsLocalRes = {readonly rateLimit?: RateLimit | null}
export type SetDefaultTeamChannelsRes = {readonly rateLimit?: RateLimit | null}
export type SetRetentionRes = {readonly rateLimit?: RateLimit | null}
export type SetStatusInfo = {readonly convID: ConversationID; readonly status: ConversationStatus; readonly conv?: InboxUIItem | null}
export type SetStatusPayload = {readonly Action: String; readonly convID: ConversationID; readonly status: ConversationStatus; readonly inboxVers: InboxVers; readonly topicType: TopicType; readonly unreadUpdate?: UnreadUpdate | null}
export type SetTeamRetentionUpdate = {readonly inboxVers: InboxVers; readonly teamID: Keybase1.TeamID; readonly policy: RetentionPolicy}
export type SignEncryptedData = {readonly v: Int; readonly e: Bytes; readonly n: Bytes}
export type SignatureInfo = {readonly v: Int; readonly s: Bytes; readonly k: Bytes}
export type SimpleSearchInboxConvNamesHit = {readonly name: String; readonly convID: ConversationID; readonly isTeam: Boolean; readonly parts?: Array<String> | null; readonly tlfName: String}
export type StaticConfig = {readonly deletableByDeleteHistory?: Array<MessageType> | null; readonly builtinCommands?: Array<BuiltinCommandGroup> | null}
export type SubteamRenameUpdate = {readonly convIDs?: Array<ConversationID> | null; readonly inboxVers: InboxVers}
export type SweepRes = {readonly foundTask: Boolean; readonly deletedMessages: Boolean; readonly expunge: Expunge}
export type SyncAllNotificationRes = {typ: SyncAllNotificationType.state; state: Gregor1.State} | {typ: SyncAllNotificationType.incremental; incremental: Gregor1.SyncResult}
export type SyncAllResult = {readonly auth: Gregor1.AuthResult; readonly chat: SyncChatRes; readonly notification: SyncAllNotificationRes; readonly badge: UnreadUpdateFull}
export type SyncChatRes = {readonly cacheVers: ServerCacheVers; readonly inboxRes: SyncInboxRes}
export type SyncInboxRes = {typ: SyncInboxResType.current} | {typ: SyncInboxResType.incremental; incremental: SyncIncrementalRes} | {typ: SyncInboxResType.clear}
export type SyncIncrementalRes = {readonly vers: InboxVers; readonly convs?: Array<Conversation> | null}
export type TLFConvOrdinal = Uint
export type TLFFinalizeUpdate = {readonly finalizeInfo: ConversationFinalizeInfo; readonly convIDs?: Array<ConversationID> | null; readonly inboxVers: InboxVers}
export type TLFID = Bytes
export type TLFIDStr = String
export type TLFResolveUpdate = {readonly convID: ConversationID; readonly inboxVers: InboxVers}
export type TeamMember = {readonly uid: Gregor1.UID; readonly role: Keybase1.TeamRole; readonly status: Keybase1.TeamMemberStatus}
export type TeamMemberRoleUpdate = {readonly tlfID: TLFID; readonly role: Keybase1.TeamRole}
export type TeamTypeInfo = {readonly convID: ConversationID; readonly teamType: TeamType; readonly conv?: InboxUIItem | null}
export type TeamTypePayload = {readonly Action: String; readonly convID: ConversationID; readonly teamType: TeamType; readonly inboxVers: InboxVers; readonly topicType: TopicType; readonly unreadUpdate?: UnreadUpdate | null}
export type TextPayment = {readonly username: String; readonly paymentText: String; readonly result: TextPaymentResult}
export type TextPaymentResult = {resultTyp: TextPaymentResultTyp.error; error: String} | {resultTyp: TextPaymentResultTyp.sent; sent: Stellar1.PaymentID}
export type Thread = {readonly messages?: Array<Message> | null; readonly pagination?: Pagination | null; readonly offline: Boolean; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null; readonly rateLimits?: Array<RateLimitRes> | null}
export type ThreadID = Bytes
export type ThreadView = {readonly messages?: Array<MessageUnboxed> | null; readonly pagination?: Pagination | null}
export type ThreadViewBoxed = {readonly messages?: Array<MessageBoxed> | null; readonly pagination?: Pagination | null}
export type TopicID = Bytes
export type TopicNameState = Bytes
export type TyperInfo = {readonly uid: Keybase1.UID; readonly username: String; readonly deviceID: Keybase1.DeviceID}
export type UIAssetUrlInfo = {readonly previewUrl: String; readonly fullUrl: String; readonly fullUrlCached: Boolean; readonly mimeType: String; readonly videoDuration?: String | null; readonly inlineVideoPlayable: Boolean}
export type UIBotCommandsUpdateSettings = {readonly settings: {[key: string]: Keybase1.TeamBotSettings}}
export type UIBotCommandsUpdateStatus = {typ: UIBotCommandsUpdateStatusTyp.uptodate; uptodate: UIBotCommandsUpdateSettings} | {typ: UIBotCommandsUpdateStatusTyp.updating} | {typ: UIBotCommandsUpdateStatusTyp.failed} | {typ: UIBotCommandsUpdateStatusTyp.blank}
export type UIChannelNameMention = {readonly name: String; readonly convID: ConvIDStr}
export type UIChatPayment = {readonly username: String; readonly fullName: String; readonly xlmAmount: String; readonly error?: String | null; readonly displayAmount?: String | null}
export type UIChatPaymentSummary = {readonly xlmTotal: String; readonly displayTotal: String; readonly payments?: Array<UIChatPayment> | null}
export type UIChatSearchBotHits = {readonly hits?: Array<Keybase1.FeaturedBot> | null; readonly suggestedMatches: Boolean}
export type UIChatSearchConvHit = {readonly convID: ConvIDStr; readonly teamType: TeamType; readonly name: String; readonly mtime: Gregor1.Time}
export type UIChatSearchConvHits = {readonly hits?: Array<UIChatSearchConvHit> | null; readonly unreadMatches: Boolean}
export type UIChatSearchTeamHits = {readonly hits?: Array<Keybase1.TeamSearchItem> | null; readonly suggestedMatches: Boolean}
export type UIChatThreadStatus = {typ: UIChatThreadStatusTyp.none} | {typ: UIChatThreadStatusTyp.server} | {typ: UIChatThreadStatusTyp.validating; validating: Int} | {typ: UIChatThreadStatusTyp.validated}
export type UICoinFlipAbsenteeError = {readonly absentees?: Array<UICoinFlipErrorParticipant> | null}
export type UICoinFlipError = {typ: UICoinFlipErrorTyp.generic; generic: String} | {typ: UICoinFlipErrorTyp.absentee; absentee: UICoinFlipAbsenteeError} | {typ: UICoinFlipErrorTyp.timeout} | {typ: UICoinFlipErrorTyp.aborted} | {typ: UICoinFlipErrorTyp.dupreg; dupreg: UICoinFlipErrorParticipant} | {typ: UICoinFlipErrorTyp.dupcommitcomplete; dupcommitcomplete: UICoinFlipErrorParticipant} | {typ: UICoinFlipErrorTyp.dupreveal; dupreveal: UICoinFlipErrorParticipant} | {typ: UICoinFlipErrorTyp.commitmismatch; commitmismatch: UICoinFlipErrorParticipant}
export type UICoinFlipErrorParticipant = {readonly user: String; readonly device: String}
export type UICoinFlipHand = {readonly target: String; readonly hand?: Array<Int> | null}
export type UICoinFlipParticipant = {readonly uid: String; readonly deviceID: String; readonly username: String; readonly deviceName: String; readonly commitment: String; readonly reveal?: String | null}
export type UICoinFlipResult = {typ: UICoinFlipResultTyp.number; number: String} | {typ: UICoinFlipResultTyp.shuffle; shuffle: Array<String>} | {typ: UICoinFlipResultTyp.deck; deck: Array<Int>} | {typ: UICoinFlipResultTyp.hands; hands: Array<UICoinFlipHand>} | {typ: UICoinFlipResultTyp.coin; coin: Bool}
export type UICoinFlipStatus = {readonly gameID: FlipGameIDStr; readonly phase: UICoinFlipPhase; readonly progressText: String; readonly resultText: String; readonly commitmentVisualization: String; readonly revealVisualization: String; readonly participants?: Array<UICoinFlipParticipant> | null; readonly errorInfo?: UICoinFlipError | null; readonly resultInfo?: UICoinFlipResult | null}
export type UICommandMarkdown = {readonly body: String; readonly title?: String | null}
export type UIInboxBigTeamChannelRow = {readonly convID: ConvIDStr; readonly teamname: String; readonly channelname: String; readonly draft?: String | null; readonly isMuted: Boolean}
export type UIInboxBigTeamLabelRow = {readonly name: String; readonly id: TLFIDStr}
export type UIInboxBigTeamRow = {state: UIInboxBigTeamRowTyp.label; label: UIInboxBigTeamLabelRow} | {state: UIInboxBigTeamRowTyp.channel; channel: UIInboxBigTeamChannelRow}
export type UIInboxLayout = {readonly totalSmallTeams: Int; readonly smallTeams?: Array<UIInboxSmallTeamRow> | null; readonly bigTeams?: Array<UIInboxBigTeamRow> | null; readonly reselectInfo?: UIInboxReselectInfo | null; readonly widgetList?: Array<UIInboxSmallTeamRow> | null}
export type UIInboxReselectInfo = {readonly oldConvID: ConvIDStr; readonly newConvID?: ConvIDStr | null}
export type UIInboxSmallTeamRow = {readonly convID: ConvIDStr; readonly name: String; readonly time: Gregor1.Time; readonly snippet?: String | null; readonly snippetDecoration: SnippetDecoration; readonly draft?: String | null; readonly isMuted: Boolean; readonly isTeam: Boolean}
export type UILinkDecoration = {readonly url: String; readonly punycode: String}
export type UIMaybeMentionInfo = {status: UIMaybeMentionStatus.unknown} | {status: UIMaybeMentionStatus.user} | {status: UIMaybeMentionStatus.team; team: UITeamMention} | {status: UIMaybeMentionStatus.nothing}
export type UIMessage = {state: MessageUnboxedState.valid; valid: UIMessageValid} | {state: MessageUnboxedState.error; error: MessageUnboxedError} | {state: MessageUnboxedState.outbox; outbox: UIMessageOutbox} | {state: MessageUnboxedState.placeholder; placeholder: MessageUnboxedPlaceholder} | {state: MessageUnboxedState.journeycard; journeycard: UIMessageJourneycard}
export type UIMessageJourneycard = {readonly ordinal: Double; readonly cardType: JourneycardType; readonly highlightMsgID: MessageID; readonly openTeam: Boolean}
export type UIMessageOutbox = {readonly state: OutboxState; readonly outboxID: String; readonly messageType: MessageType; readonly body: String; readonly decoratedTextBody?: String | null; readonly ctime: Gregor1.Time; readonly ordinal: Double; readonly isEphemeral: Boolean; readonly flipGameID?: FlipGameIDStr | null; readonly replyTo?: UIMessage | null; readonly supersedes: MessageID; readonly filename: String; readonly title: String; readonly preview?: MakePreviewRes | null}
export type UIMessageUnfurlInfo = {readonly unfurlMessageID: MessageID; readonly url: String; readonly unfurl: UnfurlDisplay; readonly isCollapsed: Boolean}
export type UIMessageValid = {readonly messageID: MessageID; readonly ctime: Gregor1.Time; readonly outboxID?: String | null; readonly messageBody: MessageBody; readonly decoratedTextBody?: String | null; readonly bodySummary: String; readonly senderUsername: String; readonly senderDeviceName: String; readonly senderDeviceType: Keybase1.DeviceTypeV2; readonly senderUID: Gregor1.UID; readonly senderDeviceID: Gregor1.DeviceID; readonly superseded: Boolean; readonly assetUrlInfo?: UIAssetUrlInfo | null; readonly senderDeviceRevokedAt?: Gregor1.Time | null; readonly atMentions?: Array<String> | null; readonly channelMention: ChannelMention; readonly channelNameMentions?: Array<UIChannelNameMention> | null; readonly isEphemeral: Boolean; readonly isEphemeralExpired: Boolean; readonly explodedBy?: String | null; readonly etime: Gregor1.Time; readonly reactions: UIReactionMap; readonly hasPairwiseMacs: Boolean; readonly paymentInfos?: Array<UIPaymentInfo> | null; readonly requestInfo?: UIRequestInfo | null; readonly unfurls?: Array<UIMessageUnfurlInfo> | null; readonly isCollapsed: Boolean; readonly flipGameID?: FlipGameIDStr | null; readonly isDeleteable: Boolean; readonly isEditable: Boolean; readonly replyTo?: UIMessage | null; readonly pinnedMessageID?: MessageID | null; readonly botUsername: String}
export type UIMessages = {readonly messages?: Array<UIMessage> | null; readonly pagination?: UIPagination | null}
export type UIPagination = {readonly next: String; readonly previous: String; readonly num: Int; readonly last: Boolean}
export type UIParticipant = {readonly type: UIParticipantType; readonly assertion: String; readonly inConvName: Boolean; readonly fullName?: String | null; readonly contactName?: String | null}
export type UIPaymentInfo = {readonly accountID?: Stellar1.AccountID | null; readonly amountDescription: String; readonly worth: String; readonly worthAtSendTime: String; readonly delta: Stellar1.BalanceDelta; readonly note: String; readonly paymentID: Stellar1.PaymentID; readonly status: Stellar1.PaymentStatus; readonly statusDescription: String; readonly statusDetail: String; readonly showCancel: Boolean; readonly fromUsername: String; readonly toUsername: String; readonly sourceAmount: String; readonly sourceAsset: Stellar1.Asset; readonly issuerDescription: String}
export type UIPinnedMessage = {readonly message: UIMessage; readonly pinnerUsername: String}
export type UIReactionDesc = {readonly decorated: String; readonly users: {[key: string]: Reaction}}
export type UIReactionMap = {readonly reactions: {[key: string]: UIReactionDesc}}
export type UIRequestInfo = {readonly amount: String; readonly amountDescription: String; readonly asset?: Stellar1.Asset | null; readonly currency?: Stellar1.OutsideCurrencyCode | null; readonly worthAtRequestTime: String; readonly status: Stellar1.RequestStatus}
export type UITeamMention = {readonly inTeam: Boolean; readonly open: Boolean; readonly description?: String | null; readonly numMembers?: Int | null; readonly publicAdmins?: Array<String> | null; readonly convID?: ConvIDStr | null}
export type UITextDecoration = {typ: UITextDecorationTyp.payment; payment: TextPayment} | {typ: UITextDecorationTyp.atmention; atmention: String} | {typ: UITextDecorationTyp.channelnamemention; channelnamemention: UIChannelNameMention} | {typ: UITextDecorationTyp.maybemention; maybemention: MaybeMention} | {typ: UITextDecorationTyp.link; link: UILinkDecoration} | {typ: UITextDecorationTyp.mailto; mailto: UILinkDecoration} | {typ: UITextDecorationTyp.kbfspath; kbfspath: KBFSPath} | {typ: UITextDecorationTyp.emoji; emoji: Emoji}
export type Unfurl = {unfurlType: UnfurlType.generic; generic: UnfurlGeneric} | {unfurlType: UnfurlType.youtube; youtube: UnfurlYoutube} | {unfurlType: UnfurlType.giphy; giphy: UnfurlGiphy} | {unfurlType: UnfurlType.maps}
export type UnfurlDisplay = {unfurlType: UnfurlType.generic; generic: UnfurlGenericDisplay} | {unfurlType: UnfurlType.youtube; youtube: UnfurlYoutubeDisplay} | {unfurlType: UnfurlType.giphy; giphy: UnfurlGiphyDisplay} | {unfurlType: UnfurlType.maps}
export type UnfurlGeneric = {readonly title: String; readonly url: String; readonly siteName: String; readonly favicon?: Asset | null; readonly image?: Asset | null; readonly publishTime?: Int | null; readonly description?: String | null; readonly mapInfo?: UnfurlGenericMapInfo | null}
export type UnfurlGenericDisplay = {readonly title: String; readonly url: String; readonly siteName: String; readonly favicon?: UnfurlImageDisplay | null; readonly media?: UnfurlImageDisplay | null; readonly publishTime?: Int | null; readonly description?: String | null; readonly mapInfo?: UnfurlGenericMapInfo | null}
export type UnfurlGenericMapInfo = {readonly coord: Coordinate; readonly time: Gregor1.Time; readonly liveLocationEndTime?: Gregor1.Time | null; readonly isLiveLocationDone: Boolean}
export type UnfurlGenericRaw = {readonly title: String; readonly url: String; readonly siteName: String; readonly faviconUrl?: String | null; readonly imageUrl?: String | null; readonly video?: UnfurlVideo | null; readonly publishTime?: Int | null; readonly description?: String | null}
export type UnfurlGiphy = {readonly favicon?: Asset | null; readonly image?: Asset | null; readonly video?: Asset | null}
export type UnfurlGiphyDisplay = {readonly favicon?: UnfurlImageDisplay | null; readonly image?: UnfurlImageDisplay | null; readonly video?: UnfurlImageDisplay | null}
export type UnfurlGiphyRaw = {readonly imageUrl?: String | null; readonly video?: UnfurlVideo | null; readonly faviconUrl?: String | null}
export type UnfurlImageDisplay = {readonly url: String; readonly height: Int; readonly width: Int; readonly isVideo: Boolean}
export type UnfurlMapsRaw = {readonly title: String; readonly url: String; readonly siteName: String; readonly imageUrl: String; readonly historyImageUrl?: String | null; readonly description: String; readonly coord: Coordinate; readonly time: Gregor1.Time; readonly liveLocationEndTime?: Gregor1.Time | null; readonly liveLocationDone: Boolean}
export type UnfurlPromptResult = {actionType: UnfurlPromptAction.always} | {actionType: UnfurlPromptAction.never} | {actionType: UnfurlPromptAction.notnow} | {actionType: UnfurlPromptAction.accept; accept: String} | {actionType: UnfurlPromptAction.onetime; onetime: String}
export type UnfurlRaw = {unfurlType: UnfurlType.generic; generic: UnfurlGenericRaw} | {unfurlType: UnfurlType.youtube; youtube: UnfurlYoutubeRaw} | {unfurlType: UnfurlType.giphy; giphy: UnfurlGiphyRaw} | {unfurlType: UnfurlType.maps; maps: UnfurlMapsRaw}
export type UnfurlResult = {readonly unfurl: Unfurl; readonly url: String}
export type UnfurlSettings = {readonly mode: UnfurlMode; readonly whitelist: {[key: string]: Boolean}}
export type UnfurlSettingsDisplay = {readonly mode: UnfurlMode; readonly whitelist?: Array<String> | null}
export type UnfurlVideo = {readonly url: String; readonly mimeType: String; readonly height: Int; readonly width: Int}
export type UnfurlYoutube = {}
export type UnfurlYoutubeDisplay = {}
export type UnfurlYoutubeRaw = {}
export type UnreadFirstNumLimit = {readonly NumRead: Int; readonly AtLeast: Int; readonly AtMost: Int}
export type UnreadUpdate = {readonly convID: ConversationID; readonly unreadMessages: Int; readonly unreadNotifyingMessages: {[key: string]: Int}; readonly UnreadMessages: /* compatUnreadMessages */ Int; readonly diff: Boolean}
export type UnreadUpdateFull = {readonly ignore: Boolean; readonly inboxVers: InboxVers; readonly inboxSyncStatus: SyncInboxResType; readonly updates?: Array<UnreadUpdate> | null}
export type UnreadlineRes = {readonly offline: Boolean; readonly rateLimits?: Array<RateLimit> | null; readonly identifyFailures?: Array<Keybase1.TLFIdentifyFailure> | null; readonly unreadlineID?: MessageID | null}
export type UnverifiedInboxUIItem = {readonly convID: ConvIDStr; readonly tlfID: TLFIDStr; readonly topicType: TopicType; readonly isPublic: Boolean; readonly isDefaultConv: Boolean; readonly name: String; readonly visibility: Keybase1.TLFVisibility; readonly status: ConversationStatus; readonly membersType: ConversationMembersType; readonly memberStatus: ConversationMemberStatus; readonly teamType: TeamType; readonly notifications?: ConversationNotificationInfo | null; readonly time: Gregor1.Time; readonly version: ConversationVers; readonly localVersion: LocalConversationVers; readonly convRetention?: RetentionPolicy | null; readonly teamRetention?: RetentionPolicy | null; readonly maxMsgID: MessageID; readonly maxVisibleMsgID: MessageID; readonly readMsgID: MessageID; readonly localMetadata?: UnverifiedInboxUIItemMetadata | null; readonly draft?: String | null; readonly finalizeInfo?: ConversationFinalizeInfo | null; readonly supersedes?: Array<ConversationMetadata> | null; readonly supersededBy?: Array<ConversationMetadata> | null; readonly commands: ConversationCommandGroups}
export type UnverifiedInboxUIItemMetadata = {readonly channelName: String; readonly headline: String; readonly headlineDecorated: String; readonly snippet: String; readonly snippetDecoration: SnippetDecoration; readonly writerNames?: Array<String> | null; readonly resetParticipants?: Array<String> | null}
export type UnverifiedInboxUIItems = {readonly items?: Array<UnverifiedInboxUIItem> | null; readonly offline: Boolean}
export type UpdateConversationMembership = {readonly inboxVers: InboxVers; readonly teamMemberRoleUpdate?: TeamMemberRoleUpdate | null; readonly joined?: Array<ConversationMember> | null; readonly removed?: Array<ConversationMember> | null; readonly reset?: Array<ConversationMember> | null; readonly previewed?: Array<ConversationID> | null; readonly unreadUpdate?: UnreadUpdate | null; readonly unreadUpdates?: Array<UnreadUpdate> | null}
export type UpdateConversations = {readonly inboxVers: InboxVers; readonly convUpdates?: Array<ConversationUpdate> | null}
export type UserBotCommandInput = {readonly name: String; readonly description: String; readonly usage: String; readonly extendedDescription?: UserBotExtendedDescription | null}
export type UserBotCommandOutput = {readonly name: String; readonly description: String; readonly usage: String; readonly extendedDescription?: UserBotExtendedDescription | null; readonly username: String}
export type UserBotExtendedDescription = {readonly title: String; readonly desktopBody: String; readonly mobileBody: String}
export type UserEmojiRes = {readonly emojis: UserEmojis; readonly rateLimit?: RateLimit | null}
export type UserEmojis = {readonly emojis?: Array<EmojiGroup> | null}
export type VersionKind = String
export type WelcomeMessage = {readonly set: Boolean; readonly raw: String}
export type WelcomeMessageDisplay = {readonly set: Boolean; readonly display: String; readonly raw: String}

export type IncomingCallMapType = {
  'chat.1.chatUi.chatInboxLayout'?: (params: MessageTypes['chat.1.chatUi.chatInboxLayout']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatInboxUnverified'?: (params: MessageTypes['chat.1.chatUi.chatInboxUnverified']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatInboxConversation'?: (params: MessageTypes['chat.1.chatUi.chatInboxConversation']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatInboxFailed'?: (params: MessageTypes['chat.1.chatUi.chatInboxFailed']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatThreadCached'?: (params: MessageTypes['chat.1.chatUi.chatThreadCached']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatThreadFull'?: (params: MessageTypes['chat.1.chatUi.chatThreadFull']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatThreadStatus'?: (params: MessageTypes['chat.1.chatUi.chatThreadStatus']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatSearchHit'?: (params: MessageTypes['chat.1.chatUi.chatSearchHit']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatSearchDone'?: (params: MessageTypes['chat.1.chatUi.chatSearchDone']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatSearchInboxStart'?: (params: MessageTypes['chat.1.chatUi.chatSearchInboxStart']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatSearchInboxHit'?: (params: MessageTypes['chat.1.chatUi.chatSearchInboxHit']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatSearchInboxDone'?: (params: MessageTypes['chat.1.chatUi.chatSearchInboxDone']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatSearchIndexStatus'?: (params: MessageTypes['chat.1.chatUi.chatSearchIndexStatus']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatSearchConvHits'?: (params: MessageTypes['chat.1.chatUi.chatSearchConvHits']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatSearchTeamHits'?: (params: MessageTypes['chat.1.chatUi.chatSearchTeamHits']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatSearchBotHits'?: (params: MessageTypes['chat.1.chatUi.chatSearchBotHits']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatConfirmChannelDelete'?: (params: MessageTypes['chat.1.chatUi.chatConfirmChannelDelete']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatStellarShowConfirm'?: (params: MessageTypes['chat.1.chatUi.chatStellarShowConfirm']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatStellarDataConfirm'?: (params: MessageTypes['chat.1.chatUi.chatStellarDataConfirm']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatStellarDataError'?: (params: MessageTypes['chat.1.chatUi.chatStellarDataError']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatStellarDone'?: (params: MessageTypes['chat.1.chatUi.chatStellarDone']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatGiphySearchResults'?: (params: MessageTypes['chat.1.chatUi.chatGiphySearchResults']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatGiphyToggleResultWindow'?: (params: MessageTypes['chat.1.chatUi.chatGiphyToggleResultWindow']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatShowManageChannels'?: (params: MessageTypes['chat.1.chatUi.chatShowManageChannels']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatCoinFlipStatus'?: (params: MessageTypes['chat.1.chatUi.chatCoinFlipStatus']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatCommandMarkdown'?: (params: MessageTypes['chat.1.chatUi.chatCommandMarkdown']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatMaybeMentionUpdate'?: (params: MessageTypes['chat.1.chatUi.chatMaybeMentionUpdate']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatLoadGalleryHit'?: (params: MessageTypes['chat.1.chatUi.chatLoadGalleryHit']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatWatchPosition'?: (params: MessageTypes['chat.1.chatUi.chatWatchPosition']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatClearWatch'?: (params: MessageTypes['chat.1.chatUi.chatClearWatch']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatCommandStatus'?: (params: MessageTypes['chat.1.chatUi.chatCommandStatus']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.chatBotCommandsUpdateStatus'?: (params: MessageTypes['chat.1.chatUi.chatBotCommandsUpdateStatus']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.chatUi.triggerContactSync'?: (params: MessageTypes['chat.1.chatUi.triggerContactSync']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.NewChatActivity'?: (params: MessageTypes['chat.1.NotifyChat.NewChatActivity']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatIdentifyUpdate'?: (params: MessageTypes['chat.1.NotifyChat.ChatIdentifyUpdate']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatTLFFinalize'?: (params: MessageTypes['chat.1.NotifyChat.ChatTLFFinalize']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatTLFResolve'?: (params: MessageTypes['chat.1.NotifyChat.ChatTLFResolve']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatInboxStale'?: (params: MessageTypes['chat.1.NotifyChat.ChatInboxStale']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatThreadsStale'?: (params: MessageTypes['chat.1.NotifyChat.ChatThreadsStale']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatTypingUpdate'?: (params: MessageTypes['chat.1.NotifyChat.ChatTypingUpdate']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatJoinedConversation'?: (params: MessageTypes['chat.1.NotifyChat.ChatJoinedConversation']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatLeftConversation'?: (params: MessageTypes['chat.1.NotifyChat.ChatLeftConversation']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatResetConversation'?: (params: MessageTypes['chat.1.NotifyChat.ChatResetConversation']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatInboxSyncStarted'?: (params: MessageTypes['chat.1.NotifyChat.ChatInboxSyncStarted']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatInboxSynced'?: (params: MessageTypes['chat.1.NotifyChat.ChatInboxSynced']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatSetConvRetention'?: (params: MessageTypes['chat.1.NotifyChat.ChatSetConvRetention']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatSetTeamRetention'?: (params: MessageTypes['chat.1.NotifyChat.ChatSetTeamRetention']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatSetConvSettings'?: (params: MessageTypes['chat.1.NotifyChat.ChatSetConvSettings']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatSubteamRename'?: (params: MessageTypes['chat.1.NotifyChat.ChatSubteamRename']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatKBFSToImpteamUpgrade'?: (params: MessageTypes['chat.1.NotifyChat.ChatKBFSToImpteamUpgrade']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatAttachmentUploadStart'?: (params: MessageTypes['chat.1.NotifyChat.ChatAttachmentUploadStart']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatAttachmentUploadProgress'?: (params: MessageTypes['chat.1.NotifyChat.ChatAttachmentUploadProgress']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatAttachmentDownloadProgress'?: (params: MessageTypes['chat.1.NotifyChat.ChatAttachmentDownloadProgress']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatAttachmentDownloadComplete'?: (params: MessageTypes['chat.1.NotifyChat.ChatAttachmentDownloadComplete']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatPaymentInfo'?: (params: MessageTypes['chat.1.NotifyChat.ChatPaymentInfo']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatRequestInfo'?: (params: MessageTypes['chat.1.NotifyChat.ChatRequestInfo']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatPromptUnfurl'?: (params: MessageTypes['chat.1.NotifyChat.ChatPromptUnfurl']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatConvUpdate'?: (params: MessageTypes['chat.1.NotifyChat.ChatConvUpdate']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatWelcomeMessageLoaded'?: (params: MessageTypes['chat.1.NotifyChat.ChatWelcomeMessageLoaded']['inParam'] & {sessionID: number}) => IncomingReturn
  'chat.1.NotifyChat.ChatParticipantsInfo'?: (params: MessageTypes['chat.1.NotifyChat.ChatParticipantsInfo']['inParam'] & {sessionID: number}) => IncomingReturn
}

export type CustomResponseIncomingCallMap = {
  'chat.1.chatUi.chatInboxLayout'?: (params: MessageTypes['chat.1.chatUi.chatInboxLayout']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatInboxLayout']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatInboxUnverified'?: (params: MessageTypes['chat.1.chatUi.chatInboxUnverified']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatInboxUnverified']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatInboxConversation'?: (params: MessageTypes['chat.1.chatUi.chatInboxConversation']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatInboxConversation']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatInboxFailed'?: (params: MessageTypes['chat.1.chatUi.chatInboxFailed']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatInboxFailed']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatThreadCached'?: (params: MessageTypes['chat.1.chatUi.chatThreadCached']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatThreadCached']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatThreadFull'?: (params: MessageTypes['chat.1.chatUi.chatThreadFull']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatThreadFull']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatThreadStatus'?: (params: MessageTypes['chat.1.chatUi.chatThreadStatus']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatThreadStatus']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatSearchHit'?: (params: MessageTypes['chat.1.chatUi.chatSearchHit']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatSearchHit']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatSearchDone'?: (params: MessageTypes['chat.1.chatUi.chatSearchDone']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatSearchDone']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatSearchInboxStart'?: (params: MessageTypes['chat.1.chatUi.chatSearchInboxStart']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatSearchInboxStart']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatSearchInboxHit'?: (params: MessageTypes['chat.1.chatUi.chatSearchInboxHit']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatSearchInboxHit']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatSearchInboxDone'?: (params: MessageTypes['chat.1.chatUi.chatSearchInboxDone']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatSearchInboxDone']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatSearchIndexStatus'?: (params: MessageTypes['chat.1.chatUi.chatSearchIndexStatus']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatSearchIndexStatus']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatSearchConvHits'?: (params: MessageTypes['chat.1.chatUi.chatSearchConvHits']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatSearchConvHits']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatSearchTeamHits'?: (params: MessageTypes['chat.1.chatUi.chatSearchTeamHits']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatSearchTeamHits']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatSearchBotHits'?: (params: MessageTypes['chat.1.chatUi.chatSearchBotHits']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatSearchBotHits']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatConfirmChannelDelete'?: (params: MessageTypes['chat.1.chatUi.chatConfirmChannelDelete']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatConfirmChannelDelete']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatStellarShowConfirm'?: (params: MessageTypes['chat.1.chatUi.chatStellarShowConfirm']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatStellarShowConfirm']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatStellarDataConfirm'?: (params: MessageTypes['chat.1.chatUi.chatStellarDataConfirm']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatStellarDataConfirm']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatStellarDataError'?: (params: MessageTypes['chat.1.chatUi.chatStellarDataError']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatStellarDataError']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatStellarDone'?: (params: MessageTypes['chat.1.chatUi.chatStellarDone']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatStellarDone']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatGiphySearchResults'?: (params: MessageTypes['chat.1.chatUi.chatGiphySearchResults']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatGiphySearchResults']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatGiphyToggleResultWindow'?: (params: MessageTypes['chat.1.chatUi.chatGiphyToggleResultWindow']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatGiphyToggleResultWindow']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatShowManageChannels'?: (params: MessageTypes['chat.1.chatUi.chatShowManageChannels']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatShowManageChannels']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatCoinFlipStatus'?: (params: MessageTypes['chat.1.chatUi.chatCoinFlipStatus']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatCoinFlipStatus']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatCommandMarkdown'?: (params: MessageTypes['chat.1.chatUi.chatCommandMarkdown']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatCommandMarkdown']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatMaybeMentionUpdate'?: (params: MessageTypes['chat.1.chatUi.chatMaybeMentionUpdate']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatMaybeMentionUpdate']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatLoadGalleryHit'?: (params: MessageTypes['chat.1.chatUi.chatLoadGalleryHit']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatLoadGalleryHit']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatWatchPosition'?: (params: MessageTypes['chat.1.chatUi.chatWatchPosition']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatWatchPosition']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatClearWatch'?: (params: MessageTypes['chat.1.chatUi.chatClearWatch']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatClearWatch']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatCommandStatus'?: (params: MessageTypes['chat.1.chatUi.chatCommandStatus']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatCommandStatus']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.chatBotCommandsUpdateStatus'?: (params: MessageTypes['chat.1.chatUi.chatBotCommandsUpdateStatus']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.chatBotCommandsUpdateStatus']['outParam']) => void}) => IncomingReturn
  'chat.1.chatUi.triggerContactSync'?: (params: MessageTypes['chat.1.chatUi.triggerContactSync']['inParam'] & {sessionID: number}, response: {error: IncomingErrorCallback; result: (res: MessageTypes['chat.1.chatUi.triggerContactSync']['outParam']) => void}) => IncomingReturn
}
export const localAddBotConvSearchRpcPromise = (params: MessageTypes['chat.1.local.addBotConvSearch']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.addBotConvSearch']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.addBotConvSearch', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localAddBotMemberRpcPromise = (params: MessageTypes['chat.1.local.addBotMember']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.addBotMember']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.addBotMember', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localAddEmojiAliasRpcPromise = (params: MessageTypes['chat.1.local.addEmojiAlias']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.addEmojiAlias']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.addEmojiAlias', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localAddEmojisRpcPromise = (params: MessageTypes['chat.1.local.addEmojis']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.addEmojis']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.addEmojis', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localAddTeamMemberAfterResetRpcPromise = (params: MessageTypes['chat.1.local.addTeamMemberAfterReset']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.addTeamMemberAfterReset']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.addTeamMemberAfterReset', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localBulkAddToConvRpcPromise = (params: MessageTypes['chat.1.local.bulkAddToConv']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.bulkAddToConv']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.bulkAddToConv', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localBulkAddToManyConvsRpcPromise = (params: MessageTypes['chat.1.local.bulkAddToManyConvs']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.bulkAddToManyConvs']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.bulkAddToManyConvs', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localCancelActiveInboxSearchRpcPromise = (params: MessageTypes['chat.1.local.cancelActiveInboxSearch']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.cancelActiveInboxSearch']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.cancelActiveInboxSearch', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localCancelActiveSearchRpcPromise = (params: MessageTypes['chat.1.local.cancelActiveSearch']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.cancelActiveSearch']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.cancelActiveSearch', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localCancelPostRpcPromise = (params: MessageTypes['chat.1.local.CancelPost']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.CancelPost']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.CancelPost', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localCancelUploadTempFileRpcPromise = (params: MessageTypes['chat.1.local.cancelUploadTempFile']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.cancelUploadTempFile']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.cancelUploadTempFile', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localConfigureFileAttachmentDownloadLocalRpcPromise = (params: MessageTypes['chat.1.local.ConfigureFileAttachmentDownloadLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.ConfigureFileAttachmentDownloadLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.ConfigureFileAttachmentDownloadLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localDeleteConversationLocalRpcPromise = (params: MessageTypes['chat.1.local.deleteConversationLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.deleteConversationLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.deleteConversationLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localDismissJourneycardRpcPromise = (params: MessageTypes['chat.1.local.dismissJourneycard']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.dismissJourneycard']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.dismissJourneycard', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localDownloadFileAttachmentLocalRpcSaga = (p: {params: MessageTypes['chat.1.local.DownloadFileAttachmentLocal']['inParam']; incomingCallMap: IncomingCallMapType; customResponseIncomingCallMap?: CustomResponseIncomingCallMap; waitingKey?: WaitingKey}) => call(getEngineSaga(), {method: 'chat.1.local.DownloadFileAttachmentLocal', params: p.params, incomingCallMap: p.incomingCallMap, customResponseIncomingCallMap: p.customResponseIncomingCallMap, waitingKey: p.waitingKey})
export const localEditBotMemberRpcPromise = (params: MessageTypes['chat.1.local.editBotMember']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.editBotMember']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.editBotMember', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localFindConversationsLocalRpcPromise = (params: MessageTypes['chat.1.local.findConversationsLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.findConversationsLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.findConversationsLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localFindGeneralConvFromTeamIDRpcPromise = (params: MessageTypes['chat.1.local.findGeneralConvFromTeamID']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.findGeneralConvFromTeamID']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.findGeneralConvFromTeamID', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localForwardMessageConvSearchRpcPromise = (params: MessageTypes['chat.1.local.forwardMessageConvSearch']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.forwardMessageConvSearch']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.forwardMessageConvSearch', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localForwardMessageNonblockRpcPromise = (params: MessageTypes['chat.1.local.forwardMessageNonblock']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.forwardMessageNonblock']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.forwardMessageNonblock', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetBotMemberSettingsRpcPromise = (params: MessageTypes['chat.1.local.getBotMemberSettings']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getBotMemberSettings']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getBotMemberSettings', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetChannelMembershipsLocalRpcPromise = (params: MessageTypes['chat.1.local.getChannelMembershipsLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getChannelMembershipsLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getChannelMembershipsLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetDefaultTeamChannelsLocalRpcPromise = (params: MessageTypes['chat.1.local.getDefaultTeamChannelsLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getDefaultTeamChannelsLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getDefaultTeamChannelsLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetGlobalAppNotificationSettingsLocalRpcPromise = (params: MessageTypes['chat.1.local.getGlobalAppNotificationSettingsLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getGlobalAppNotificationSettingsLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getGlobalAppNotificationSettingsLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetInboxAndUnboxUILocalRpcPromise = (params: MessageTypes['chat.1.local.getInboxAndUnboxUILocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getInboxAndUnboxUILocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getInboxAndUnboxUILocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetInboxNonblockLocalRpcSaga = (p: {params: MessageTypes['chat.1.local.getInboxNonblockLocal']['inParam']; incomingCallMap: IncomingCallMapType; customResponseIncomingCallMap?: CustomResponseIncomingCallMap; waitingKey?: WaitingKey}) => call(getEngineSaga(), {method: 'chat.1.local.getInboxNonblockLocal', params: p.params, incomingCallMap: p.incomingCallMap, customResponseIncomingCallMap: p.customResponseIncomingCallMap, waitingKey: p.waitingKey})
export const localGetLastActiveAtMultiLocalRpcPromise = (params: MessageTypes['chat.1.local.getLastActiveAtMultiLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getLastActiveAtMultiLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getLastActiveAtMultiLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetLastActiveForTLFRpcPromise = (params: MessageTypes['chat.1.local.getLastActiveForTLF']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getLastActiveForTLF']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getLastActiveForTLF', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetLastActiveForTeamsRpcPromise = (params: MessageTypes['chat.1.local.getLastActiveForTeams']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getLastActiveForTeams']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getLastActiveForTeams', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetMutualTeamsLocalRpcPromise = (params: MessageTypes['chat.1.local.getMutualTeamsLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getMutualTeamsLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getMutualTeamsLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetNextAttachmentMessageLocalRpcPromise = (params: MessageTypes['chat.1.local.getNextAttachmentMessageLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getNextAttachmentMessageLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getNextAttachmentMessageLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetRecentJoinsLocalRpcPromise = (params: MessageTypes['chat.1.local.getRecentJoinsLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getRecentJoinsLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getRecentJoinsLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetStaticConfigRpcPromise = (params: MessageTypes['chat.1.local.getStaticConfig']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getStaticConfig']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getStaticConfig', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetTLFConversationsLocalRpcPromise = (params: MessageTypes['chat.1.local.getTLFConversationsLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getTLFConversationsLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getTLFConversationsLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetTeamRetentionLocalRpcPromise = (params: MessageTypes['chat.1.local.getTeamRetentionLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getTeamRetentionLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getTeamRetentionLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetTeamRoleInConversationRpcPromise = (params: MessageTypes['chat.1.local.getTeamRoleInConversation']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getTeamRoleInConversation']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getTeamRoleInConversation', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetThreadLocalRpcPromise = (params: MessageTypes['chat.1.local.getThreadLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getThreadLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getThreadLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetThreadNonblockRpcSaga = (p: {params: MessageTypes['chat.1.local.getThreadNonblock']['inParam']; incomingCallMap: IncomingCallMapType; customResponseIncomingCallMap?: CustomResponseIncomingCallMap; waitingKey?: WaitingKey}) => call(getEngineSaga(), {method: 'chat.1.local.getThreadNonblock', params: p.params, incomingCallMap: p.incomingCallMap, customResponseIncomingCallMap: p.customResponseIncomingCallMap, waitingKey: p.waitingKey})
export const localGetUnfurlSettingsRpcPromise = (params: MessageTypes['chat.1.local.getUnfurlSettings']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getUnfurlSettings']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getUnfurlSettings', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetUnreadlineRpcPromise = (params: MessageTypes['chat.1.local.getUnreadline']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getUnreadline']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getUnreadline', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetUploadTempFileRpcPromise = (params: MessageTypes['chat.1.local.getUploadTempFile']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getUploadTempFile']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getUploadTempFile', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localGetWelcomeMessageRpcPromise = (params: MessageTypes['chat.1.local.getWelcomeMessage']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.getWelcomeMessage']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.getWelcomeMessage', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localIgnorePinnedMessageRpcPromise = (params: MessageTypes['chat.1.local.ignorePinnedMessage']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.ignorePinnedMessage']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.ignorePinnedMessage', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localJoinConversationByIDLocalRpcPromise = (params: MessageTypes['chat.1.local.joinConversationByIDLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.joinConversationByIDLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.joinConversationByIDLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localLeaveConversationLocalRpcPromise = (params: MessageTypes['chat.1.local.leaveConversationLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.leaveConversationLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.leaveConversationLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localListPublicBotCommandsLocalRpcPromise = (params: MessageTypes['chat.1.local.listPublicBotCommandsLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.listPublicBotCommandsLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.listPublicBotCommandsLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localLoadGalleryRpcSaga = (p: {params: MessageTypes['chat.1.local.loadGallery']['inParam']; incomingCallMap: IncomingCallMapType; customResponseIncomingCallMap?: CustomResponseIncomingCallMap; waitingKey?: WaitingKey}) => call(getEngineSaga(), {method: 'chat.1.local.loadGallery', params: p.params, incomingCallMap: p.incomingCallMap, customResponseIncomingCallMap: p.customResponseIncomingCallMap, waitingKey: p.waitingKey})
export const localLocationUpdateRpcPromise = (params: MessageTypes['chat.1.local.locationUpdate']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.locationUpdate']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.locationUpdate', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localMakeAudioPreviewRpcPromise = (params: MessageTypes['chat.1.local.makeAudioPreview']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.makeAudioPreview']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.makeAudioPreview', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localMakePreviewRpcPromise = (params: MessageTypes['chat.1.local.makePreview']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.makePreview']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.makePreview', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localMakeUploadTempFileRpcPromise = (params: MessageTypes['chat.1.local.makeUploadTempFile']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.makeUploadTempFile']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.makeUploadTempFile', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localMarkAsReadLocalRpcPromise = (params: MessageTypes['chat.1.local.markAsReadLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.markAsReadLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.markAsReadLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localMarkTLFAsReadLocalRpcPromise = (params: MessageTypes['chat.1.local.markTLFAsReadLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.markTLFAsReadLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.markTLFAsReadLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localNewConversationLocalRpcPromise = (params: MessageTypes['chat.1.local.newConversationLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.newConversationLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.newConversationLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPinMessageRpcPromise = (params: MessageTypes['chat.1.local.pinMessage']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.pinMessage']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.pinMessage', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPostDeleteHistoryByAgeRpcPromise = (params: MessageTypes['chat.1.local.postDeleteHistoryByAge']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.postDeleteHistoryByAge']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.postDeleteHistoryByAge', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPostDeleteNonblockRpcPromise = (params: MessageTypes['chat.1.local.postDeleteNonblock']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.postDeleteNonblock']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.postDeleteNonblock', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPostEditNonblockRpcPromise = (params: MessageTypes['chat.1.local.postEditNonblock']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.postEditNonblock']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.postEditNonblock', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPostFileAttachmentLocalNonblockRpcPromise = (params: MessageTypes['chat.1.local.postFileAttachmentLocalNonblock']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.postFileAttachmentLocalNonblock']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.postFileAttachmentLocalNonblock', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPostHeadlineNonblockRpcPromise = (params: MessageTypes['chat.1.local.postHeadlineNonblock']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.postHeadlineNonblock']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.postHeadlineNonblock', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPostHeadlineRpcPromise = (params: MessageTypes['chat.1.local.postHeadline']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.postHeadline']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.postHeadline', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPostMetadataRpcPromise = (params: MessageTypes['chat.1.local.postMetadata']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.postMetadata']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.postMetadata', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPostReactionNonblockRpcPromise = (params: MessageTypes['chat.1.local.postReactionNonblock']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.postReactionNonblock']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.postReactionNonblock', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPostTextNonblockRpcPromise = (params: MessageTypes['chat.1.local.postTextNonblock']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.postTextNonblock']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.postTextNonblock', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPostTextNonblockRpcSaga = (p: {params: MessageTypes['chat.1.local.postTextNonblock']['inParam']; incomingCallMap: IncomingCallMapType; customResponseIncomingCallMap?: CustomResponseIncomingCallMap; waitingKey?: WaitingKey}) => call(getEngineSaga(), {method: 'chat.1.local.postTextNonblock', params: p.params, incomingCallMap: p.incomingCallMap, customResponseIncomingCallMap: p.customResponseIncomingCallMap, waitingKey: p.waitingKey})
export const localPreviewConversationByIDLocalRpcPromise = (params: MessageTypes['chat.1.local.previewConversationByIDLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.previewConversationByIDLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.previewConversationByIDLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localProfileChatSearchRpcPromise = (params: MessageTypes['chat.1.local.profileChatSearch']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.profileChatSearch']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.profileChatSearch', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localPutReacjiSkinToneRpcPromise = (params: MessageTypes['chat.1.local.putReacjiSkinTone']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.putReacjiSkinTone']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.putReacjiSkinTone', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localRefreshParticipantsRpcPromise = (params: MessageTypes['chat.1.local.refreshParticipants']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.refreshParticipants']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.refreshParticipants', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localRemoveBotMemberRpcPromise = (params: MessageTypes['chat.1.local.removeBotMember']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.removeBotMember']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.removeBotMember', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localRemoveEmojiRpcPromise = (params: MessageTypes['chat.1.local.removeEmoji']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.removeEmoji']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.removeEmoji', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localRemoveFromConversationLocalRpcPromise = (params: MessageTypes['chat.1.local.removeFromConversationLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.removeFromConversationLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.removeFromConversationLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localRequestInboxLayoutRpcPromise = (params: MessageTypes['chat.1.local.requestInboxLayout']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.requestInboxLayout']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.requestInboxLayout', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localRequestInboxSmallIncreaseRpcPromise = (params: MessageTypes['chat.1.local.requestInboxSmallIncrease']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.requestInboxSmallIncrease']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.requestInboxSmallIncrease', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localRequestInboxSmallResetRpcPromise = (params: MessageTypes['chat.1.local.requestInboxSmallReset']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.requestInboxSmallReset']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.requestInboxSmallReset', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localRequestInboxUnboxRpcPromise = (params: MessageTypes['chat.1.local.requestInboxUnbox']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.requestInboxUnbox']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.requestInboxUnbox', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localResolveMaybeMentionRpcPromise = (params: MessageTypes['chat.1.local.resolveMaybeMention']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.resolveMaybeMention']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.resolveMaybeMention', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localResolveUnfurlPromptRpcPromise = (params: MessageTypes['chat.1.local.resolveUnfurlPrompt']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.resolveUnfurlPrompt']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.resolveUnfurlPrompt', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localRetryPostRpcPromise = (params: MessageTypes['chat.1.local.RetryPost']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.RetryPost']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.RetryPost', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localSaveUnfurlSettingsRpcPromise = (params: MessageTypes['chat.1.local.saveUnfurlSettings']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.saveUnfurlSettings']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.saveUnfurlSettings', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localSearchInboxRpcSaga = (p: {params: MessageTypes['chat.1.local.searchInbox']['inParam']; incomingCallMap: IncomingCallMapType; customResponseIncomingCallMap?: CustomResponseIncomingCallMap; waitingKey?: WaitingKey}) => call(getEngineSaga(), {method: 'chat.1.local.searchInbox', params: p.params, incomingCallMap: p.incomingCallMap, customResponseIncomingCallMap: p.customResponseIncomingCallMap, waitingKey: p.waitingKey})
export const localSearchRegexpRpcSaga = (p: {params: MessageTypes['chat.1.local.searchRegexp']['inParam']; incomingCallMap: IncomingCallMapType; customResponseIncomingCallMap?: CustomResponseIncomingCallMap; waitingKey?: WaitingKey}) => call(getEngineSaga(), {method: 'chat.1.local.searchRegexp', params: p.params, incomingCallMap: p.incomingCallMap, customResponseIncomingCallMap: p.customResponseIncomingCallMap, waitingKey: p.waitingKey})
export const localSetAppNotificationSettingsLocalRpcPromise = (params: MessageTypes['chat.1.local.setAppNotificationSettingsLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.setAppNotificationSettingsLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.setAppNotificationSettingsLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localSetBotMemberSettingsRpcPromise = (params: MessageTypes['chat.1.local.setBotMemberSettings']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.setBotMemberSettings']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.setBotMemberSettings', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localSetConvMinWriterRoleLocalRpcPromise = (params: MessageTypes['chat.1.local.setConvMinWriterRoleLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.setConvMinWriterRoleLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.setConvMinWriterRoleLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localSetConvRetentionLocalRpcPromise = (params: MessageTypes['chat.1.local.setConvRetentionLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.setConvRetentionLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.setConvRetentionLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localSetConversationStatusLocalRpcPromise = (params: MessageTypes['chat.1.local.SetConversationStatusLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.SetConversationStatusLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.SetConversationStatusLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localSetDefaultTeamChannelsLocalRpcPromise = (params: MessageTypes['chat.1.local.setDefaultTeamChannelsLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.setDefaultTeamChannelsLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.setDefaultTeamChannelsLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localSetGlobalAppNotificationSettingsLocalRpcPromise = (params: MessageTypes['chat.1.local.setGlobalAppNotificationSettingsLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.setGlobalAppNotificationSettingsLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.setGlobalAppNotificationSettingsLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localSetTeamRetentionLocalRpcPromise = (params: MessageTypes['chat.1.local.setTeamRetentionLocal']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.setTeamRetentionLocal']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.setTeamRetentionLocal', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localSetWelcomeMessageRpcPromise = (params: MessageTypes['chat.1.local.setWelcomeMessage']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.setWelcomeMessage']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.setWelcomeMessage', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localSimpleSearchInboxConvNamesRpcPromise = (params: MessageTypes['chat.1.local.simpleSearchInboxConvNames']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.simpleSearchInboxConvNames']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.simpleSearchInboxConvNames', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localToggleEmojiAnimationsRpcPromise = (params: MessageTypes['chat.1.local.toggleEmojiAnimations']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.toggleEmojiAnimations']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.toggleEmojiAnimations', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localToggleMessageCollapseRpcPromise = (params: MessageTypes['chat.1.local.toggleMessageCollapse']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.toggleMessageCollapse']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.toggleMessageCollapse', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localUnboxMobilePushNotificationRpcPromise = (params: MessageTypes['chat.1.local.unboxMobilePushNotification']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.unboxMobilePushNotification']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.unboxMobilePushNotification', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localUnpinMessageRpcPromise = (params: MessageTypes['chat.1.local.unpinMessage']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.unpinMessage']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.unpinMessage', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localUpdateTypingRpcPromise = (params: MessageTypes['chat.1.local.updateTyping']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.updateTyping']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.updateTyping', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localUpdateUnsentTextRpcPromise = (params: MessageTypes['chat.1.local.updateUnsentText']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.updateUnsentText']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.updateUnsentText', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
export const localUserEmojisRpcPromise = (params: MessageTypes['chat.1.local.userEmojis']['inParam'], waitingKey?: WaitingKey) => new Promise<MessageTypes['chat.1.local.userEmojis']['outParam']>((resolve, reject) => engine()._rpcOutgoing({method: 'chat.1.local.userEmojis', params, callback: (error, result) => (error ? reject(error) : resolve(result)), waitingKey}))
// Not enabled calls. To enable add to enabled-calls.json:
// 'chat.1.blocking.blockConversations'
// 'chat.1.chatUi.chatInboxLayout'
// 'chat.1.chatUi.chatInboxUnverified'
// 'chat.1.chatUi.chatInboxConversation'
// 'chat.1.chatUi.chatInboxFailed'
// 'chat.1.chatUi.chatThreadCached'
// 'chat.1.chatUi.chatThreadFull'
// 'chat.1.chatUi.chatThreadStatus'
// 'chat.1.chatUi.chatSearchHit'
// 'chat.1.chatUi.chatSearchDone'
// 'chat.1.chatUi.chatSearchInboxStart'
// 'chat.1.chatUi.chatSearchInboxHit'
// 'chat.1.chatUi.chatSearchInboxDone'
// 'chat.1.chatUi.chatSearchIndexStatus'
// 'chat.1.chatUi.chatSearchConvHits'
// 'chat.1.chatUi.chatSearchTeamHits'
// 'chat.1.chatUi.chatSearchBotHits'
// 'chat.1.chatUi.chatConfirmChannelDelete'
// 'chat.1.chatUi.chatStellarShowConfirm'
// 'chat.1.chatUi.chatStellarDataConfirm'
// 'chat.1.chatUi.chatStellarDataError'
// 'chat.1.chatUi.chatStellarDone'
// 'chat.1.chatUi.chatGiphySearchResults'
// 'chat.1.chatUi.chatGiphyToggleResultWindow'
// 'chat.1.chatUi.chatShowManageChannels'
// 'chat.1.chatUi.chatCoinFlipStatus'
// 'chat.1.chatUi.chatCommandMarkdown'
// 'chat.1.chatUi.chatMaybeMentionUpdate'
// 'chat.1.chatUi.chatLoadGalleryHit'
// 'chat.1.chatUi.chatWatchPosition'
// 'chat.1.chatUi.chatClearWatch'
// 'chat.1.chatUi.chatCommandStatus'
// 'chat.1.chatUi.chatBotCommandsUpdateStatus'
// 'chat.1.chatUi.triggerContactSync'
// 'chat.1.local.getInboxAndUnboxLocal'
// 'chat.1.local.postLocal'
// 'chat.1.local.generateOutboxID'
// 'chat.1.local.postLocalNonblock'
// 'chat.1.local.forwardMessage'
// 'chat.1.local.postMetadataNonblock'
// 'chat.1.local.postDeleteHistoryUpto'
// 'chat.1.local.postDeleteHistoryThrough'
// 'chat.1.local.newConversationsLocal'
// 'chat.1.local.getInboxSummaryForCLILocal'
// 'chat.1.local.getConversationForCLILocal'
// 'chat.1.local.GetMessagesLocal'
// 'chat.1.local.postFileAttachmentLocal'
// 'chat.1.local.DownloadAttachmentLocal'
// 'chat.1.local.joinConversationLocal'
// 'chat.1.local.getAllResetConvMembers'
// 'chat.1.local.upgradeKBFSConversationToImpteam'
// 'chat.1.local.loadFlip'
// 'chat.1.local.advertiseBotCommandsLocal'
// 'chat.1.local.listBotCommandsLocal'
// 'chat.1.local.clearBotCommandsLocal'
// 'chat.1.local.teamIDFromTLFName'
// 'chat.1.local.getLastActiveAtLocal'
// 'chat.1.local.getParticipants'
// 'chat.1.local.addEmoji'
// 'chat.1.NotifyChat.NewChatActivity'
// 'chat.1.NotifyChat.ChatIdentifyUpdate'
// 'chat.1.NotifyChat.ChatTLFFinalize'
// 'chat.1.NotifyChat.ChatTLFResolve'
// 'chat.1.NotifyChat.ChatInboxStale'
// 'chat.1.NotifyChat.ChatThreadsStale'
// 'chat.1.NotifyChat.ChatTypingUpdate'
// 'chat.1.NotifyChat.ChatJoinedConversation'
// 'chat.1.NotifyChat.ChatLeftConversation'
// 'chat.1.NotifyChat.ChatResetConversation'
// 'chat.1.NotifyChat.ChatInboxSyncStarted'
// 'chat.1.NotifyChat.ChatInboxSynced'
// 'chat.1.NotifyChat.ChatSetConvRetention'
// 'chat.1.NotifyChat.ChatSetTeamRetention'
// 'chat.1.NotifyChat.ChatSetConvSettings'
// 'chat.1.NotifyChat.ChatSubteamRename'
// 'chat.1.NotifyChat.ChatKBFSToImpteamUpgrade'
// 'chat.1.NotifyChat.ChatAttachmentUploadStart'
// 'chat.1.NotifyChat.ChatAttachmentUploadProgress'
// 'chat.1.NotifyChat.ChatAttachmentDownloadProgress'
// 'chat.1.NotifyChat.ChatAttachmentDownloadComplete'
// 'chat.1.NotifyChat.ChatPaymentInfo'
// 'chat.1.NotifyChat.ChatRequestInfo'
// 'chat.1.NotifyChat.ChatPromptUnfurl'
// 'chat.1.NotifyChat.ChatConvUpdate'
// 'chat.1.NotifyChat.ChatWelcomeMessageLoaded'
// 'chat.1.NotifyChat.ChatParticipantsInfo'
// 'chat.1.remote.getInboxRemote'
// 'chat.1.remote.getThreadRemote'
// 'chat.1.remote.getUnreadlineRemote'
// 'chat.1.remote.getPublicConversations'
// 'chat.1.remote.postRemote'
// 'chat.1.remote.newConversationRemote'
// 'chat.1.remote.newConversationRemote2'
// 'chat.1.remote.getMessagesRemote'
// 'chat.1.remote.markAsRead'
// 'chat.1.remote.SetConversationStatus'
// 'chat.1.remote.GetUnreadUpdateFull'
// 'chat.1.remote.getS3Params'
// 'chat.1.remote.s3Sign'
// 'chat.1.remote.getInboxVersion'
// 'chat.1.remote.syncInbox'
// 'chat.1.remote.syncChat'
// 'chat.1.remote.syncAll'
// 'chat.1.remote.tlfFinalize'
// 'chat.1.remote.tlfResolve'
// 'chat.1.remote.updateTypingRemote'
// 'chat.1.remote.joinConversation'
// 'chat.1.remote.leaveConversation'
// 'chat.1.remote.previewConversation'
// 'chat.1.remote.deleteConversation'
// 'chat.1.remote.removeFromConversation'
// 'chat.1.remote.getMessageBefore'
// 'chat.1.remote.getTLFConversations'
// 'chat.1.remote.setAppNotificationSettings'
// 'chat.1.remote.setGlobalAppNotificationSettings'
// 'chat.1.remote.getGlobalAppNotificationSettings'
// 'chat.1.remote.remoteNotificationSuccessful'
// 'chat.1.remote.setConvRetention'
// 'chat.1.remote.setTeamRetention'
// 'chat.1.remote.setConvMinWriterRole'
// 'chat.1.remote.retentionSweepConv'
// 'chat.1.remote.upgradeKBFSToImpteam'
// 'chat.1.remote.registerSharePost'
// 'chat.1.remote.failSharePost'
// 'chat.1.remote.broadcastGregorMessageToConv'
// 'chat.1.remote.teamIDOfConv'
// 'chat.1.remote.serverNow'
// 'chat.1.remote.getExternalAPIKeys'
// 'chat.1.remote.advertiseBotCommands'
// 'chat.1.remote.clearBotCommands'
// 'chat.1.remote.getBotInfo'
// 'chat.1.remote.getDefaultTeamChannels'
// 'chat.1.remote.setDefaultTeamChannels'
// 'chat.1.remote.getRecentJoins'
// 'chat.1.remote.refreshParticipantsRemote'
// 'chat.1.remote.getLastActiveAt'
// 'chat.1.remote.getResetConversations'
