// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. type ChannelType = 'O' | 'P' | 'D' | 'G'; type ChannelStats = { channel_id: string; guest_count: number; member_count: number; guest_count: number; pinnedpost_count: number; }; type ChannelNotifyProps = { desktop: 'default' | 'all' | 'mention' | 'none'; email: 'default' | 'all' | 'mention' | 'none'; mark_unread: 'all' | 'mention'; push: 'default' | 'all' | 'mention' | 'none'; ignore_channel_mentions: 'default' | 'off' | 'on'; }; type Channel = { id: string; create_at: number; update_at: number; delete_at: number; team_id: string; type: ChannelType; display_name: string; name: string; header: string; purpose: string; last_post_at: number; total_msg_count: number; extra_update_at: number; creator_id: string; scheme_id: string|null; isCurrent?: boolean; teammate_id?: string; status?: string; fake?: boolean; group_constrained: boolean|null; shared: boolean; }; type ChannelWithTeamData = Channel & { team_display_name: string; team_name: string; team_update_at: number; } type ChannelMember = { id?: string; channel_id: string; user_id: string; } type ChannelMembership = { id?: string; channel_id: string; user_id: string; roles: string; last_viewed_at: number; msg_count: number; mention_count: number; notify_props: Partial; last_post_at?: number; last_update_at: number; scheme_user?: boolean; scheme_admin?: boolean; post_root_id?: string; is_unread?: boolean; }; type ChannelUnread = { channel_id: string; user_id: string; team_id: string; msg_count: number; mention_count: number; last_viewed_at: number; deltaMsgs: number; }; type ChannelsState = { currentChannelId: string; channels: IDMappedObjects; channelsInTeam: RelationOneToMany; myMembers: RelationOneToOne; membersInChannel: RelationOneToOne>; stats: RelationOneToOne; groupsAssociatedToChannel: any; totalCount: number; manuallyUnread: RelationOneToOne; channelMemberCountsByGroup: RelationOneToOne; }; type ChannelModeration = { name: string; roles: { guests?: { value: boolean; enabled: boolean; }; members: { value: boolean; enabled: boolean; }; }; }; type ChannelModerationPatch = { name: string; roles: { guests?: boolean; members?: boolean; }; }; type ChannelMemberCountByGroup = { group_id: string; channel_member_count: number; channel_member_timezones_count: number; }; type ChannelMemberCountsByGroup = Record;