import { IDataObject } from 'n8n-workflow';
export interface CreateGroupParams {
    groupName: string;
    userIds: string;
}
export interface ResolvedMemberIdentifier extends IDataObject {
    input: string;
    type: 'uid' | 'phone';
    uid: string;
}
export interface GetGroupInfoParams {
    groupId: string;
    includeMembers?: boolean;
    memberLimit?: number;
}
export interface MemberInfo {
    id: string;
    displayName: string;
    avatar: string;
    zaloName?: string;
    gender?: number;
    phoneNumber?: string;
    isFriend?: boolean;
    isBlocked?: boolean;
    status?: string;
}
export interface AddGroupDeputyParams {
    groupId: string;
    userId: string;
}
export interface AddUserToGroupParams {
    groupId: string;
    userIds: string;
}
export interface ChangeGroupAvatarParams {
    groupId: string;
    imageUrl: string;
}
export interface ChangeGroupNameParams {
    groupId: string;
    newName: string;
}
export interface GetGroupMembersParams {
    groupId: string;
    limit: number;
}
export interface GetAllGroupsParams {
    limit: number;
}
export interface RemoveUserFromGroupParams {
    groupId: string;
    userIds: string;
}
export interface ReplaceGroupMembersParams {
    groupId: string;
    oldMembers: string;
    newMembers: string;
}
export interface CreateNoteParams {
    groupId: string;
    content: string;
    pinAct: boolean;
}
export interface JoinGroupLinkParams {
    groupLink: string;
}
export interface LeaveGroupParams {
    groupId: string;
    silent: boolean;
}
export interface InviteUsersParams {
    userId: string;
    groupIds: string;
}
export interface GetBlockedMembersParams {
    groupId: string;
    page?: number;
    count?: number;
}
export interface BlockMemberParams {
    groupId: string;
    memberIds: string;
}
export interface UnblockMemberParams {
    groupId: string;
    memberIds: string;
}
export interface ProcessedGroupMembers extends IDataObject {
    members: string[];
    admins: string[];
    currentMems: string[];
    updateMems: string[];
    totalMember: number;
}
export interface ProcessedAllGroups extends IDataObject {
    groups: any[];
    totalGroups: number;
    limitedToCount: number;
    actualReturnedCount: number;
}
export interface GroupOperationResult extends IDataObject {
    status?: string;
    response: any;
}
export interface GetGroupLinkInfoParams {
    link: string;
    memberPage?: number;
}
export interface GetGroupLinkDetailParams {
    groupId: string;
}
export interface EnableGroupLinkParams {
    groupId: string;
}
export interface DisableGroupLinkParams {
    groupId: string;
}
export interface GetGroupChatHistoryParams {
    groupId: string;
    limit?: number;
    timestamp?: number;
}
export interface NormalizedGroupMessage {
    msgId: string;
    cliMsgId: string;
    threadId: string;
    senderId: string;
    senderName: string;
    content: unknown;
    msgType: string;
    contentType: string;
    mediaUrls: string[];
    timestamp: number;
    isSelf: boolean;
    mentions: unknown;
    quote: unknown;
    ttl: number;
}
export interface UpgradeGroupToCommunityParams {
    groupId: string;
}
export interface ChangeGroupOwnerParams {
    groupId: string;
    memberId: string;
}
export interface RemoveGroupDeputyParams {
    groupId: string;
    memberIds: string;
}
export interface GetGroupMembersInfoParams {
    memberIds: string;
}
export interface GetGroupInviteBoxInfoParams {
    groupId: string;
    memberPage?: number;
    memberCount?: number;
}
export interface GetGroupInviteBoxListParams {
    page?: number;
    invitesPerPage?: number;
    memberPage?: number;
    memberCount?: number;
}
export interface JoinGroupInviteBoxParams {
    groupId: string;
}
export interface DeleteGroupInviteBoxParams {
    groupIds: string;
    blockFutureInvite: boolean;
}
export interface DisperseGroupParams {
    groupId: string;
}
export interface EditNoteParams {
    groupId: string;
    topicId: string;
    title: string;
    pinAct?: boolean;
}
export interface GetListBoardParams {
    groupId: string;
    page?: number;
    count?: number;
}
export interface GetFriendBoardListParams {
    conversationId: string;
}
export interface UpdateGroupSettingsParams {
    groupId: string;
    blockName?: boolean;
    signAdminMsg?: boolean;
    setTopicOnly?: boolean;
    enableMsgHistory?: boolean;
    joinAppr?: boolean;
    lockCreatePost?: boolean;
    lockCreatePoll?: boolean;
    lockSendMsg?: boolean;
    lockViewMember?: boolean;
}
