import { Serializable } from '../../../internal/interfaces/serializable';
export declare class GetAnnouncementsReq implements Serializable {
    /**
     * page number
     */
    currentPage?: number;
    /**
     * page Size
     */
    pageSize?: number;
    /**
     * Announcement types: latest-announcements , activities (latest activities), new-listings (new currency online), product-updates (product updates), vip (institutions and VIPs), maintenance-updates (system maintenance), product -updates (product news), delistings (currency offline), others, api-campaigns (API user activities), default : latest-announcements
     */
    annType?: GetAnnouncementsReq.AnnTypeEnum;
    /**
     * Language type, the default is en_US, the specific value parameters are as follows
     */
    lang?: GetAnnouncementsReq.LangEnum;
    /**
     * Announcement online start time (milliseconds)
     */
    startTime?: number;
    /**
     * Announcement online end time (milliseconds)
     */
    endTime?: number;
    /**
     * Private constructor, please use the corresponding static methods to construct the object.
     */
    private constructor();
    /**
     * Creates a new instance of the `GetAnnouncementsReq` class.
     * The builder pattern allows step-by-step construction of a `GetAnnouncementsReq` object.
     */
    static builder(): GetAnnouncementsReqBuilder;
    /**
     * Creates a new instance of the `GetAnnouncementsReq` class with the given data.
     */
    static create(data: {
        /**
         * page number
         */
        currentPage?: number;
        /**
         * page Size
         */
        pageSize?: number;
        /**
         * Announcement types: latest-announcements , activities (latest activities), new-listings (new currency online), product-updates (product updates), vip (institutions and VIPs), maintenance-updates (system maintenance), product -updates (product news), delistings (currency offline), others, api-campaigns (API user activities), default : latest-announcements
         */
        annType?: GetAnnouncementsReq.AnnTypeEnum;
        /**
         * Language type, the default is en_US, the specific value parameters are as follows
         */
        lang?: GetAnnouncementsReq.LangEnum;
        /**
         * Announcement online start time (milliseconds)
         */
        startTime?: number;
        /**
         * Announcement online end time (milliseconds)
         */
        endTime?: number;
    }): GetAnnouncementsReq;
    /**
     * Convert the object to a JSON string.
     */
    toJson(): string;
    /**
     * Create an object from a JSON string.
     */
    static fromJson(input: string): GetAnnouncementsReq;
    /**
     * Create an object from Js Object.
     */
    static fromObject(jsonObject: Object): GetAnnouncementsReq;
}
export declare namespace GetAnnouncementsReq {
    enum AnnTypeEnum {
        /**
         * latest-announcements
         */
        LATEST_ANNOUNCEMENTS,
        /**
         * latest activities
         */
        ACTIVITIES,
        /**
         * product updates
         */
        PRODUCT_UPDATES,
        /**
         * institutions and VIPs
         */
        VIPS,
        /**
         * system maintenance
         */
        MAINTENANCE_UPDATE,
        /**
         * currency offline
         */
        DELISTINGS,
        /**
         * others
         */
        OTHERS,
        /**
         * API user activities
         */
        API_CAMPAIGNS,
        /**
         * new currency online
         */
        NEW_LISTINGS
    }
    enum LangEnum {
        /**
         * Chinese (Hong Kong)
         */
        ZH_HK,
        /**
         * Japanese (Japan)
         */
        JA_JP,
        /**
         * Korean (Korea)
         */
        KO_KR,
        /**
         * English
         */
        EN_US,
        /**
         * Polish (Poland)
         */
        PL_PL,
        /**
         * Spanish (Spain)
         */
        ES_ES,
        /**
         * French (France)
         */
        FR_FR,
        /**
         * Arabic (Egypt)
         */
        AR_AE,
        /**
         * Italian (Italy)
         */
        IT_IT,
        /**
         * Indonesian (Indonesia)
         */
        ID_ID,
        /**
         * Dutch (Netherlands)
         */
        NL_NL,
        /**
         * Portuguese (Brazil)
         */
        PT_PT,
        /**
         * Vietnamese (Vietnam)
         */
        VI_VN,
        /**
         * German (Germany)
         */
        DE_DE,
        /**
         * Turkish (Turkey)
         */
        TR_TR,
        /**
         * Malay (Malaysia)
         */
        MS_MY,
        /**
         * Russian (Russia)
         */
        RU_RU,
        /**
         * Thai (Thailand)
         */
        TH_TH,
        /**
         * Hindi (India)
         */
        HI_IN,
        /**
         * Bengali (Bangladesh)
         */
        BN_BD,
        /**
         * Filipino (Philippines)
         */
        FIL_PH,
        /**
         * Urdu (Pakistan)
         */
        UR_PK
    }
}
export declare class GetAnnouncementsReqBuilder {
    readonly obj: GetAnnouncementsReq;
    constructor(obj: GetAnnouncementsReq);
    /**
     * page number
     */
    setCurrentPage(value: number): GetAnnouncementsReqBuilder;
    /**
     * page Size
     */
    setPageSize(value: number): GetAnnouncementsReqBuilder;
    /**
     * Announcement types: latest-announcements , activities (latest activities), new-listings (new currency online), product-updates (product updates), vip (institutions and VIPs), maintenance-updates (system maintenance), product -updates (product news), delistings (currency offline), others, api-campaigns (API user activities), default : latest-announcements
     */
    setAnnType(value: GetAnnouncementsReq.AnnTypeEnum): GetAnnouncementsReqBuilder;
    /**
     * Language type, the default is en_US, the specific value parameters are as follows
     */
    setLang(value: GetAnnouncementsReq.LangEnum): GetAnnouncementsReqBuilder;
    /**
     * Announcement online start time (milliseconds)
     */
    setStartTime(value: number): GetAnnouncementsReqBuilder;
    /**
     * Announcement online end time (milliseconds)
     */
    setEndTime(value: number): GetAnnouncementsReqBuilder;
    /**
     * Get the final object.
     */
    build(): GetAnnouncementsReq;
}
