// Code generated by mktyping, DO NOT EDIT.
package message

import (
	"context"

	"github.com/gotd/td/tg"
)

var (
	_ = tg.Invoker(nil)
	_ = context.Context(nil)
)

// Typing sends SendMessageTypingAction.
func (b *TypingActionBuilder) Typing(ctx context.Context) error {
	return b.send(ctx, &tg.SendMessageTypingAction{})
}

// Cancel sends SendMessageCancelAction.
func (b *TypingActionBuilder) Cancel(ctx context.Context) error {
	return b.send(ctx, &tg.SendMessageCancelAction{})
}

// RecordVideo sends SendMessageRecordVideoAction.
func (b *TypingActionBuilder) RecordVideo(ctx context.Context) error {
	return b.send(ctx, &tg.SendMessageRecordVideoAction{})
}

// UploadVideo sends SendMessageUploadVideoAction.
func (b *TypingActionBuilder) UploadVideo(ctx context.Context, progress int) error {
	return b.send(ctx, &tg.SendMessageUploadVideoAction{
		Progress: progress,
	})
}

// RecordAudio sends SendMessageRecordAudioAction.
func (b *TypingActionBuilder) RecordAudio(ctx context.Context) error {
	return b.send(ctx, &tg.SendMessageRecordAudioAction{})
}

// UploadAudio sends SendMessageUploadAudioAction.
func (b *TypingActionBuilder) UploadAudio(ctx context.Context, progress int) error {
	return b.send(ctx, &tg.SendMessageUploadAudioAction{
		Progress: progress,
	})
}

// UploadPhoto sends SendMessageUploadPhotoAction.
func (b *TypingActionBuilder) UploadPhoto(ctx context.Context, progress int) error {
	return b.send(ctx, &tg.SendMessageUploadPhotoAction{
		Progress: progress,
	})
}

// UploadDocument sends SendMessageUploadDocumentAction.
func (b *TypingActionBuilder) UploadDocument(ctx context.Context, progress int) error {
	return b.send(ctx, &tg.SendMessageUploadDocumentAction{
		Progress: progress,
	})
}

// GeoLocation sends SendMessageGeoLocationAction.
func (b *TypingActionBuilder) GeoLocation(ctx context.Context) error {
	return b.send(ctx, &tg.SendMessageGeoLocationAction{})
}

// ChooseContact sends SendMessageChooseContactAction.
func (b *TypingActionBuilder) ChooseContact(ctx context.Context) error {
	return b.send(ctx, &tg.SendMessageChooseContactAction{})
}

// GamePlay sends SendMessageGamePlayAction.
func (b *TypingActionBuilder) GamePlay(ctx context.Context) error {
	return b.send(ctx, &tg.SendMessageGamePlayAction{})
}

// RecordRound sends SendMessageRecordRoundAction.
func (b *TypingActionBuilder) RecordRound(ctx context.Context) error {
	return b.send(ctx, &tg.SendMessageRecordRoundAction{})
}

// UploadRound sends SendMessageUploadRoundAction.
func (b *TypingActionBuilder) UploadRound(ctx context.Context, progress int) error {
	return b.send(ctx, &tg.SendMessageUploadRoundAction{
		Progress: progress,
	})
}

// SpeakingInGroupCall sends SpeakingInGroupCallAction.
func (b *TypingActionBuilder) SpeakingInGroupCall(ctx context.Context) error {
	return b.send(ctx, &tg.SpeakingInGroupCallAction{})
}

// HistoryImport sends SendMessageHistoryImportAction.
func (b *TypingActionBuilder) HistoryImport(ctx context.Context, progress int) error {
	return b.send(ctx, &tg.SendMessageHistoryImportAction{
		Progress: progress,
	})
}

// ChooseSticker sends SendMessageChooseStickerAction.
func (b *TypingActionBuilder) ChooseSticker(ctx context.Context) error {
	return b.send(ctx, &tg.SendMessageChooseStickerAction{})
}

// EmojiInteraction sends SendMessageEmojiInteraction.
func (b *TypingActionBuilder) EmojiInteraction(ctx context.Context, emoticon string, msgID int, interaction tg.DataJSON) error {
	return b.send(ctx, &tg.SendMessageEmojiInteraction{
		Emoticon:    emoticon,
		MsgID:       msgID,
		Interaction: interaction,
	})
}

// EmojiInteractionSeen sends SendMessageEmojiInteractionSeen.
func (b *TypingActionBuilder) EmojiInteractionSeen(ctx context.Context, emoticon string) error {
	return b.send(ctx, &tg.SendMessageEmojiInteractionSeen{
		Emoticon: emoticon,
	})
}
