mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
130 lines (129 loc) • 3.93 kB
TypeScript
import { IDMappedObjects, UserIDMappedObjects, RelationOneToMany, RelationOneToOne } from './utilities';
import { Team } from './teams';
export declare type ChannelType = 'O' | 'P' | 'D' | 'G';
export declare type ChannelStats = {
channel_id: string;
member_count: number;
guest_count: number;
pinnedpost_count: number;
};
export declare 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';
};
export declare 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;
isCurrent?: boolean;
teammate_id?: string;
status?: string;
fake?: boolean;
group_constrained: boolean;
};
export declare type ChannelWithTeamData = Channel & {
team_display_name: string;
team_name: string;
team_update_at: number;
};
export declare type ChannelsWithTotalCount = {
channels: ChannelWithTeamData[];
total_count: number;
};
export declare type ChannelMembership = {
channel_id: string;
user_id: string;
roles: string;
last_viewed_at: number;
msg_count: number;
mention_count: number;
notify_props: Partial<ChannelNotifyProps>;
last_update_at: number;
scheme_user: boolean;
scheme_admin: boolean;
post_root_id?: string;
};
export declare type ChannelUnread = {
channel_id: string;
user_id: string;
team_id: string;
msg_count: number;
mention_count: number;
last_viewed_at: number;
deltaMsgs: number;
};
export declare type ChannelsState = {
currentChannelId: string;
channels: IDMappedObjects<Channel>;
channelsInTeam: RelationOneToMany<Team, Channel>;
myMembers: RelationOneToOne<Channel, ChannelMembership>;
membersInChannel: RelationOneToOne<Channel, UserIDMappedObjects<ChannelMembership>>;
stats: RelationOneToOne<Channel, ChannelStats>;
groupsAssociatedToChannel: any;
totalCount: number;
manuallyUnread: RelationOneToOne<Channel, boolean>;
channelModerations: RelationOneToOne<Channel, ChannelModeration[]>;
channelMemberCountsByGroup: RelationOneToOne<Channel, ChannelMemberCountsByGroup>;
};
export declare type ChannelModeration = {
name: string;
roles: {
guests?: {
value: boolean;
enabled: boolean;
};
members: {
value: boolean;
enabled: boolean;
};
admins: {
value: boolean;
enabled: boolean;
};
};
};
export declare type ChannelModerationPatch = {
name: string;
roles: {
guests?: boolean;
members?: boolean;
};
};
export declare type ChannelMemberCountByGroup = {
group_id: string;
channel_member_count: number;
channel_member_timezones_count: number;
};
export declare type ChannelMemberCountsByGroup = Record<string, ChannelMemberCountByGroup>;
export declare type ChannelViewResponse = {
status: string;
last_viewed_at_times: RelationOneToOne<Channel, number>;
};
export declare type ChannelSearchOpts = {
exclude_default_channels?: boolean;
not_associated_to_group?: string;
team_ids?: string[];
group_constrained?: boolean;
exclude_group_constrained?: boolean;
public?: boolean;
private?: boolean;
include_deleted?: boolean;
deleted?: boolean;
page?: number;
per_page?: number;
};