import { INVITATION_TARGET } from '../../invitation.dto';
import { BADGE_TYPE, SCHEME_SCOPE } from '../enums';
export type RequiredProps<T> = T & {
    [key: string]: any;
};
export declare enum ActivityLogUserStateEnum {
    ACTIVE = "ACTIVE",
    DEACTIVATED = "DEACTIVATED",
    DELETED = "DELETED"
}
export declare class ActivityLogUserDTO {
    id: string;
    username: string;
    fullname: string;
    avatar: string;
    isDeactivated: boolean;
    state?: ActivityLogUserStateEnum;
    constructor(object: RequiredProps<ActivityLogUserDTO>);
}
export declare class ActivityLogCommunityDTO {
    id: string;
    groupId: string;
    name: string;
    privacy: string;
    description?: string;
    categories?: string[];
    constructor(object: RequiredProps<ActivityLogCommunityDTO>);
}
export declare class ActivityLogGroupDTO {
    id: string;
    communityId: string;
    name: string;
    level: number;
    privacy: string;
    description?: string;
    constructor(object: RequiredProps<ActivityLogGroupDTO>);
}
export declare class ActivityLogGroupSetDTO {
    id: string;
    communityId: string;
    name: string;
    description: string;
    isDefault: boolean;
    groups: ActivityLogGroupDTO[];
    constructor(object: RequiredProps<ActivityLogGroupSetDTO>);
}
export declare class ActivityLogBadgeDTO {
    id: string;
    name: string;
    type: BADGE_TYPE;
    iconUrl: string;
    communityId: string;
    constructor(object: RequiredProps<ActivityLogBadgeDTO>);
}
export declare class ActivityLogSchemeDTO {
    id: string;
    name: string;
    description: string;
    isSystem: boolean;
    scope: SCHEME_SCOPE;
    usedInsideCommId: string;
    constructor(object: RequiredProps<ActivityLogSchemeDTO>);
}
export declare class InvitationLogDTO {
    id: string;
    type: string;
    communityId: string;
    inviterId: string;
    inviteeId: string;
    email: string;
    targetType: INVITATION_TARGET;
    targetId: string;
    constructor(data: RequiredProps<InvitationLogDTO>);
}
export declare class ActivityLogBannedCommunityMemberDTO {
    communityId: string;
    userId: string;
    constructor(object: RequiredProps<ActivityLogBannedCommunityMemberDTO>);
}
export declare class ActivityLogAutoJoinGroupSetDTO {
    communityId: string;
    groupSetId: string;
    userId: string;
    constructor(object: RequiredProps<ActivityLogAutoJoinGroupSetDTO>);
}
export interface ChangeBaseDTO<T> {
    old: T;
    new: T;
}
export type ActivityPropChangedDTO<T = unknown> = {
    [k in keyof T]?: ChangeBaseDTO<T[k]>;
};
