export declare const ContentFeedType: Readonly<{
    STORY: "story";
    CLIP: "clip";
    CHAT: "chat";
    POST: "post";
    MESSAGE: "message";
}>;
export declare enum ContentFlagReasonEnum {
    CommunityGuidelines = "Against community guidelines",
    HarassmentOrBullying = "Harassment or bullying",
    SelfHarmOrSuicide = "Self-harm or suicide",
    ViolenceOrThreateningContent = "Violence or threatening content",
    SellingRestrictedItems = "Selling and promoting restricted items",
    SexualContentOrNudity = "Sexual message or nudity",
    SpamOrScams = "Spam or scams",
    FalseInformation = "False information or misinformation",
    Others = "Others"
}
declare global {
    namespace Amity {
        type ContentFlagReason = Exclude<`${ContentFlagReasonEnum}`, `${ContentFlagReasonEnum.Others}`> | (string & {});
        type ContentType = 'text' | 'image' | 'file' | 'video' | 'poll' | 'json' | 'liveStream' | string;
        type ContentFeedType = ValueOf<typeof ContentFeedType>;
        type ContentDataText = {
            text: string;
        };
        type ContentDataFile = {
            fileId: Amity.File<'file'>['fileId'];
        };
        type ContentDataImage = {
            fileId: Amity.File<'image'>['fileId'];
            caption?: string;
        };
        type Attachment = {
            type: 'image' | 'link';
            url?: string;
            fileId?: Amity.File<'image'>['fileId'];
        };
        type ContentDataVideo = {
            thumbnailFileId: Amity.File<'image'>['fileId'];
            videoFileId: {
                [K in Amity.VideoSize]?: Amity.File<'video'>['fileId'];
            };
        };
        type ContentDataPoll = {
            pollId: Amity.Poll['pollId'];
        };
        type ContentDataStream = {
            streamId: Amity.Stream['streamId'];
        };
        type ContentData<T extends ContentType> = T extends 'text' ? ContentDataText : T extends 'file' ? ContentDataFile : T extends 'image' ? ContentDataImage : T extends 'video' ? ContentDataVideo : T extends 'poll' ? ContentDataPoll : T extends 'liveStream' ? ContentDataStream : T extends 'json' ? Record<string, unknown> : T extends string ? string | Record<string, unknown> : never;
        type Content<T extends ContentType> = {
            dataType?: T;
            dataTypes?: T[];
            data?: ContentData<T>;
        };
        type ContentSettingText = {
            contentType: 'text';
            allowed: boolean;
        };
        type ContentSettingVideo = {
            contentType: 'video';
            allowed: boolean;
            maxDurationSeconds: number;
            transcodeConfig: {
                maxResolution: Amity.VideoResolution;
                minResolution: Amity.VideoResolution;
            };
        };
        type ContentSetting<T extends ContentType = 'text' | 'video'> = T extends 'text' ? ContentSettingText : T extends 'video' ? ContentSettingVideo : never;
    }
}
//# sourceMappingURL=content.d.ts.map