import { WeverseOauthCredentials } from ".";
import { WeverseComment, WeverseNotification, WeversePost } from "../models";
export declare const isWeverseLogin: (res: any) => res is WeverseOauthCredentials;
export declare const Community: (val: unknown) => {
    id: number;
    name: string;
    description: string;
    memberCount: number;
    homeBannerImgPath: URL;
    iconImgPath: URL;
    bannerImgPath: URL;
    fullname: string[];
    fcMember: boolean;
    membershipName: string | undefined;
};
export declare const CommunityArray: (val: unknown) => {
    id: number;
    name: string;
    description: string;
    memberCount: number;
    homeBannerImgPath: URL;
    iconImgPath: URL;
    bannerImgPath: URL;
    fullname: string[];
    fcMember: boolean;
    membershipName: string | undefined;
}[];
export declare type Community = ReturnType<typeof Community>;
export declare type CommunityArray = Community[];
export declare const Artist: (val: unknown) => {
    id: number;
    communityUserId: number;
    name: string;
    listName: string[];
    profileNickName: string;
    profileImgPath: URL;
    profileUploadImgPath: URL;
    isBirthday: boolean;
    groupName: string;
    communityId: number;
    hasNewToFans: boolean;
    hasNewPrivateToFans: boolean;
    toFanLastId: number | undefined;
    toFanLastCreatedAt: Date | undefined;
    birthdayImgUrl: URL;
};
export declare const ArtistArray: (val: unknown) => {
    id: number;
    communityUserId: number;
    name: string;
    listName: string[];
    profileNickName: string;
    profileImgPath: URL;
    profileUploadImgPath: URL;
    isBirthday: boolean;
    groupName: string;
    communityId: number;
    hasNewToFans: boolean;
    hasNewPrivateToFans: boolean;
    toFanLastId: number | undefined;
    toFanLastCreatedAt: Date | undefined;
    birthdayImgUrl: URL;
}[];
export declare type Artist = ReturnType<typeof Artist>;
export declare type ArtistArray = Artist[];
export declare enum NotificationType {
    MEDIA = "MEDIA",
    SERVICE = "SERVICE_NOTICE",
    FANS = "TO_FANS",
    POST = "ARTIST_POST",
    FAN_REPLY = "COMMENT_DETAIL",
    NOTICE = "NOTICE",
    O_POST = "POST"
}
export declare const ExtraInfo: (val: unknown) => {
    replyCommentId: number;
    originContentId: number;
    originContentType: NotificationType;
};
export declare const Notification: (val: unknown) => {
    id: number;
    message: string;
    boldElement: string;
    communityId: number;
    communityName: string;
    contentsExtraInfo: {
        replyCommentId: number | undefined;
        originContentId: number | undefined;
        originContentType: NotificationType | undefined;
    };
    contentsType: NotificationType;
    contentsId: number;
    notifiedAt: Date;
    iconImageUrl: URL;
    artistId: number | undefined;
    isMembershipContent: boolean;
    isWebOnly: boolean;
    platform: string;
};
export declare const NotificationArray: (val: unknown) => {
    id: number;
    message: string;
    boldElement: string;
    communityId: number;
    communityName: string;
    contentsExtraInfo: {
        replyCommentId: number | undefined;
        originContentId: number | undefined;
        originContentType: NotificationType | undefined;
    };
    contentsType: NotificationType;
    contentsId: number;
    notifiedAt: Date;
    iconImageUrl: URL;
    artistId: number | undefined;
    isMembershipContent: boolean;
    isWebOnly: boolean;
    platform: string;
}[];
export declare type Notification = ReturnType<typeof Notification>;
export declare type NotificationArray = Notification[];
export declare const isNotification: (n: WeverseNotification | undefined) => n is WeverseNotification;
export declare const Photo: (val: unknown) => {
    mediaId: number | undefined;
    postId: number;
    imgUrl: URL;
    imgWidth: number;
    imgHeight: number;
    id: number;
    contentIndex: number;
    thumbnailImgUrl: URL;
    thumbnailImgWidth: number;
    thumbnailImgHeight: number;
    orgImgUrl: URL;
    orgImgWidth: number;
    orgImgHeight: number;
    downloadImgFilename: string;
    isGif: boolean;
};
export declare const Video: (val: unknown) => {
    id: number | undefined;
    videoUrl: URL;
    thumbnailUrl: URL;
    thumbnailWidth: number;
    thumbnailHeight: number;
    playTime: number;
};
export declare const artistInfo: (val: unknown) => {
    artistId: number;
    communityId: number;
};
export declare const Comment: (val: unknown) => {
    id: number;
    body: string;
    commentCount: number;
    likeCount: number;
    postId: number;
    createdAt: Date;
    updatedAt: Date;
    communityUser: {
        artistId: number;
        communityId: number;
    };
};
export declare const Post: (val: unknown) => {
    id: number;
    communityUser: {
        artistId: number;
        communityId: number;
    };
    communityTabId: number;
    body: string | undefined;
    artistComments: {
        id: number;
        body: string;
        commentCount: number;
        likeCount: number;
        postId: number;
        createdAt: Date;
        updatedAt: Date;
        communityUser: {
            artistId: number;
            communityId: number;
        };
    }[] | undefined;
    commentCount: number;
    likeCount: number;
    createdAt: Date;
    updatedAt: Date;
    photos: {
        mediaId: number | undefined;
        postId: number;
        imgUrl: URL;
        imgWidth: number;
        imgHeight: number;
        id: number;
        contentIndex: number;
        thumbnailImgUrl: URL;
        thumbnailImgWidth: number;
        thumbnailImgHeight: number;
        orgImgUrl: URL;
        orgImgWidth: number;
        orgImgHeight: number;
        downloadImgFilename: string;
        isGif: boolean;
    }[] | undefined;
    attachedVideos: {
        id: number | undefined;
        videoUrl: URL;
        thumbnailUrl: URL;
        thumbnailWidth: number;
        thumbnailHeight: number;
        playTime: number;
    }[] | undefined;
};
export declare const PostArray: (val: unknown) => {
    id: number;
    communityUser: {
        artistId: number;
        communityId: number;
    };
    communityTabId: number;
    body: string | undefined;
    artistComments: {
        id: number;
        body: string;
        commentCount: number;
        likeCount: number;
        postId: number;
        createdAt: Date;
        updatedAt: Date;
        communityUser: {
            artistId: number;
            communityId: number;
        };
    }[] | undefined;
    commentCount: number;
    likeCount: number;
    createdAt: Date;
    updatedAt: Date;
    photos: {
        mediaId: number | undefined;
        postId: number;
        imgUrl: URL;
        imgWidth: number;
        imgHeight: number;
        id: number;
        contentIndex: number;
        thumbnailImgUrl: URL;
        thumbnailImgWidth: number;
        thumbnailImgHeight: number;
        orgImgUrl: URL;
        orgImgWidth: number;
        orgImgHeight: number;
        downloadImgFilename: string;
        isGif: boolean;
    }[] | undefined;
    attachedVideos: {
        id: number | undefined;
        videoUrl: URL;
        thumbnailUrl: URL;
        thumbnailWidth: number;
        thumbnailHeight: number;
        playTime: number;
    }[] | undefined;
}[];
export declare type Post = ReturnType<typeof Post>;
export declare type PostArray = Post[];
export declare const PhotoArray: (val: unknown) => {
    mediaId: number | undefined;
    postId: number;
    imgUrl: URL;
    imgWidth: number;
    imgHeight: number;
    id: number;
    contentIndex: number;
    thumbnailImgUrl: URL;
    thumbnailImgWidth: number;
    thumbnailImgHeight: number;
    orgImgUrl: URL;
    orgImgWidth: number;
    orgImgHeight: number;
    downloadImgFilename: string;
    isGif: boolean;
}[];
export declare type Photo = ReturnType<typeof Photo>;
export declare type PhotoArray = Photo[];
export declare type Video = ReturnType<typeof Video>;
export declare const isPost: (n: WeversePost | undefined) => n is WeversePost;
export declare const isComment: (c: WeverseComment | undefined) => c is WeverseComment;
export declare const Media: (val: unknown) => {
    id: number;
    communityId: number;
    body: string;
    type: MediaTypes;
    thumbnailPath: URL;
    title: string;
    extVideoPath: URL | undefined;
    youtubeId: string | undefined;
    likeCount: number;
    playCount: number;
    commentCount: number;
    createdAt: Date;
    updatedAt: Date;
    photos: {
        mediaId: number | undefined;
        postId: number;
        imgUrl: URL;
        imgWidth: number;
        imgHeight: number;
        id: number;
        contentIndex: number;
        thumbnailImgUrl: URL;
        thumbnailImgWidth: number;
        thumbnailImgHeight: number;
        orgImgUrl: URL;
        orgImgWidth: number;
        orgImgHeight: number;
        downloadImgFilename: string;
        isGif: boolean;
    }[];
};
export declare const MediaArray: (val: unknown) => {
    id: number;
    communityId: number;
    body: string;
    type: MediaTypes;
    thumbnailPath: URL;
    title: string;
    extVideoPath: URL | undefined;
    youtubeId: string | undefined;
    likeCount: number;
    playCount: number;
    commentCount: number;
    createdAt: Date;
    updatedAt: Date;
    photos: {
        mediaId: number | undefined;
        postId: number;
        imgUrl: URL;
        imgWidth: number;
        imgHeight: number;
        id: number;
        contentIndex: number;
        thumbnailImgUrl: URL;
        thumbnailImgWidth: number;
        thumbnailImgHeight: number;
        orgImgUrl: URL;
        orgImgWidth: number;
        orgImgHeight: number;
        downloadImgFilename: string;
        isGif: boolean;
    }[];
}[];
export declare type Media = ReturnType<typeof Media>;
export declare type MediaArray = Media[];
export declare type MediaTypes = 'PHOTO' | 'VIDEO';
export declare type NotifContentKeys = 'COMMENT' | 'POST' | 'MEDIA' | 'ANNOUNCEMENT';
export declare type NotifContentType = {
    [key in NotifContentKeys]: string[];
};
export declare const CommentArray: (val: unknown) => {
    id: number;
    body: string;
    commentCount: number;
    likeCount: number;
    postId: number;
    createdAt: Date;
    updatedAt: Date;
    communityUser: {
        artistId: number;
        communityId: number;
    };
}[];
export declare type Comment = ReturnType<typeof Comment>;
export declare type CommentArray = Comment[];
export declare const NotifContent: NotifContentType;
export declare enum NotifKeys {
    COMMENT = "COMMENT",
    POST = "POST",
    MEDIA = "MEDIA",
    ANNOUNCEMENT = "ANNOUNCEMENT"
}
