import { NewTweet, NewTweetMedia } from 'rettiwt-core'; import { EResourceType } from '../../enums/Resource'; /** * Options specifying the data that is to be posted. * * @public */ export declare class PostArgs { /** * The id of the target resource. * * @remarks * Required only when posting using the following resources: * - {@link EResourceType.TWEET_LIKE} * - {@link EResourceType.TWEET_RETWEET} * - {@link EResourceType.TWEET_UNLIKE} * - {@link EResourceType.TWEET_UNPOST} * - {@link EResourceType.TWEET_UNRETWEET} * - {@link EResourceType.USER_FOLLOW} * - {@link EResourceType.USER_UNFOLLOW} */ id?: string; /** * The tweet that is to be posted. * * @remarks * Required only when posting a tweet using {@link EResourceType.TWEET_POST} */ tweet?: TweetArgs; /** * The media file to be uploaded. * * @remarks * Required only when uploading a media using the following resources: * - {@link EResourceType.MEDIA_UPLOAD_APPEND} * - {@link EResourceType.MEDIA_UPLOAD_FINALIZE} * - {@link EResourceType.MEDIA_UPLOAD_INITIALIZE} */ upload?: UploadArgs; /** * @param resource - The resource to be posted. * @param args - Additional user-defined arguments for posting the resource. */ constructor(resource: EResourceType, args: PostArgs); } /** * Options specifying the tweet that is to be posted. * * @public */ export declare class TweetArgs extends NewTweet { /** * The list of media to be uploaded. * * @remarks * Maximum number of media items that can be posted is 4. */ media?: TweetMediaArgs[]; /** The id of the tweet to quote. */ quote?: string; /** The id of the tweet to which the given tweet must be a reply. */ replyTo?: string; /** The date/time at which the tweet must be scheduled to be posted. */ scheduleFor?: Date; /** * The text for the tweet to be created. */ text: string; /** * @param args - Arguments specifying the tweet to be posted. */ constructor(resource: EResourceType, args: TweetArgs); } /** * Options specifying the media that is to be posted. * * @public */ export declare class TweetMediaArgs extends NewTweetMedia { /** The id of the media to post. */ id: string; /** * The list of id of the users tagged in the media. * * @remarks * Maximum number of users that can be tagged is 10. */ tags?: string[]; /** * @param args - Arguments specifying the media to be posted. */ constructor(args: TweetMediaArgs); } /** * Options specifying the media file to be uploaded. * * @internal */ export declare class UploadArgs { /** The id allocated to the media file to be uploaded. */ id?: string; /** The media file to be uploaded. */ media?: string | ArrayBuffer; /** * The size (in bytes) of the media file to be uploaded. * * @remarks The size must be \<= 5242880 bytes. */ size?: number; /** * @param step - The upload step. * @param args - The upload arguments for uploading the media file. */ constructor(step: EResourceType, args: UploadArgs); }