// Code generated by depstubber. DO NOT EDIT.
// This is a simple stub for github.com/sendgrid/sendgrid-go/helpers/mail, strictly for use in testing.

// See the LICENSE file for information about the licensing of the original library.
// Source: github.com/sendgrid/sendgrid-go/helpers/mail (exports: ; functions: NewEmail,NewSingleEmail,NewContent,NewV3Mail,NewV3MailInit)

// Package mail is a stub of github.com/sendgrid/sendgrid-go/helpers/mail, generated by depstubber.
package mail

import ()

type Asm struct {
	GroupID         int
	GroupsToDisplay []int
}

func (_ *Asm) AddGroupsToDisplay(_ ...int) *Asm {
	return nil
}

func (_ *Asm) SetGroupID(_ int) *Asm {
	return nil
}

type Attachment struct {
	Content     string
	Type        string
	Name        string
	Filename    string
	Disposition string
	ContentID   string
}

func (_ *Attachment) SetContent(_ string) *Attachment {
	return nil
}

func (_ *Attachment) SetContentID(_ string) *Attachment {
	return nil
}

func (_ *Attachment) SetDisposition(_ string) *Attachment {
	return nil
}

func (_ *Attachment) SetFilename(_ string) *Attachment {
	return nil
}

func (_ *Attachment) SetType(_ string) *Attachment {
	return nil
}

type BccSetting struct {
	Enable *bool
	Email  string
}

func (_ *BccSetting) SetEmail(_ string) *BccSetting {
	return nil
}

func (_ *BccSetting) SetEnable(_ bool) *BccSetting {
	return nil
}

type ClickTrackingSetting struct {
	Enable     *bool
	EnableText *bool
}

func (_ *ClickTrackingSetting) SetEnable(_ bool) *ClickTrackingSetting {
	return nil
}

func (_ *ClickTrackingSetting) SetEnableText(_ bool) *ClickTrackingSetting {
	return nil
}

type Content struct {
	Type  string
	Value string
}

type Email struct {
	Name    string
	Address string
}

type FooterSetting struct {
	Enable *bool
	Text   string
	Html   string
}

func (_ *FooterSetting) SetEnable(_ bool) *FooterSetting {
	return nil
}

func (_ *FooterSetting) SetHTML(_ string) *FooterSetting {
	return nil
}

func (_ *FooterSetting) SetText(_ string) *FooterSetting {
	return nil
}

type GaSetting struct {
	Enable          *bool
	CampaignSource  string
	CampaignTerm    string
	CampaignContent string
	CampaignName    string
	CampaignMedium  string
}

func (_ *GaSetting) SetCampaignContent(_ string) *GaSetting {
	return nil
}

func (_ *GaSetting) SetCampaignMedium(_ string) *GaSetting {
	return nil
}

func (_ *GaSetting) SetCampaignName(_ string) *GaSetting {
	return nil
}

func (_ *GaSetting) SetCampaignSource(_ string) *GaSetting {
	return nil
}

func (_ *GaSetting) SetCampaignTerm(_ string) *GaSetting {
	return nil
}

func (_ *GaSetting) SetEnable(_ bool) *GaSetting {
	return nil
}

type MailSettings struct {
	BCC                  *BccSetting
	BypassListManagement *Setting
	Footer               *FooterSetting
	SandboxMode          *Setting
	SpamCheckSetting     *SpamCheckSetting
}

func (_ *MailSettings) SetBCC(_ *BccSetting) *MailSettings {
	return nil
}

func (_ *MailSettings) SetBypassListManagement(_ *Setting) *MailSettings {
	return nil
}

func (_ *MailSettings) SetFooter(_ *FooterSetting) *MailSettings {
	return nil
}

func (_ *MailSettings) SetSandboxMode(_ *Setting) *MailSettings {
	return nil
}

func (_ *MailSettings) SetSpamCheckSettings(_ *SpamCheckSetting) *MailSettings {
	return nil
}

func NewContent(_ string, _ string) *Content {
	return nil
}

func NewEmail(_ string, _ string) *Email {
	return nil
}

func NewSingleEmail(_ *Email, _ string, _ *Email, _ string, _ string) *SGMailV3 {
	return nil
}

func NewV3Mail() *SGMailV3 {
	return nil
}

func NewV3MailInit(_ *Email, _ string, _ *Email, _ ...*Content) *SGMailV3 {
	return nil
}

type OpenTrackingSetting struct {
	Enable          *bool
	SubstitutionTag string
}

func (_ *OpenTrackingSetting) SetEnable(_ bool) *OpenTrackingSetting {
	return nil
}

func (_ *OpenTrackingSetting) SetSubstitutionTag(_ string) *OpenTrackingSetting {
	return nil
}

type Personalization struct {
	To                  []*Email
	CC                  []*Email
	BCC                 []*Email
	Subject             string
	Headers             map[string]string
	Substitutions       map[string]string
	CustomArgs          map[string]string
	DynamicTemplateData map[string]interface{}
	Categories          []string
	SendAt              int
}

func (_ *Personalization) AddBCCs(_ ...*Email) {}

func (_ *Personalization) AddCCs(_ ...*Email) {}

func (_ *Personalization) AddTos(_ ...*Email) {}

func (_ *Personalization) SetCustomArg(_ string, _ string) {}

func (_ *Personalization) SetDynamicTemplateData(_ string, _ interface{}) {}

func (_ *Personalization) SetHeader(_ string, _ string) {}

func (_ *Personalization) SetSendAt(_ int) {}

func (_ *Personalization) SetSubstitution(_ string, _ string) {}

type SGMailV3 struct {
	From             *Email
	Subject          string
	Personalizations []*Personalization
	Content          []*Content
	Attachments      []*Attachment
	TemplateID       string
	Sections         map[string]string
	Headers          map[string]string
	Categories       []string
	CustomArgs       map[string]string
	SendAt           int
	BatchID          string
	Asm              *Asm
	IPPoolID         string
	MailSettings     *MailSettings
	TrackingSettings *TrackingSettings
	ReplyTo          *Email
}

func (_ *SGMailV3) AddAttachment(_ ...*Attachment) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) AddCategories(_ ...string) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) AddContent(_ ...*Content) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) AddPersonalizations(_ ...*Personalization) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) AddSection(_ string, _ string) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) SetASM(_ *Asm) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) SetBatchID(_ string) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) SetCustomArg(_ string, _ string) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) SetFrom(_ *Email) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) SetHeader(_ string, _ string) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) SetIPPoolID(_ string) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) SetMailSettings(_ *MailSettings) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) SetReplyTo(_ *Email) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) SetSendAt(_ int) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) SetTemplateID(_ string) *SGMailV3 {
	return nil
}

func (_ *SGMailV3) SetTrackingSettings(_ *TrackingSettings) *SGMailV3 {
	return nil
}

type SandboxModeSetting struct {
	Enable      *bool
	ForwardSpam *bool
	SpamCheck   *SpamCheckSetting
}

type Setting struct {
	Enable *bool
}

type SpamCheckSetting struct {
	Enable        *bool
	SpamThreshold int
	PostToURL     string
}

func (_ *SpamCheckSetting) SetEnable(_ bool) *SpamCheckSetting {
	return nil
}

func (_ *SpamCheckSetting) SetPostToURL(_ string) *SpamCheckSetting {
	return nil
}

func (_ *SpamCheckSetting) SetSpamThreshold(_ int) *SpamCheckSetting {
	return nil
}

type SubscriptionTrackingSetting struct {
	Enable          *bool
	Text            string
	Html            string
	SubstitutionTag string
}

func (_ *SubscriptionTrackingSetting) SetEnable(_ bool) *SubscriptionTrackingSetting {
	return nil
}

func (_ *SubscriptionTrackingSetting) SetHTML(_ string) *SubscriptionTrackingSetting {
	return nil
}

func (_ *SubscriptionTrackingSetting) SetSubstitutionTag(_ string) *SubscriptionTrackingSetting {
	return nil
}

func (_ *SubscriptionTrackingSetting) SetText(_ string) *SubscriptionTrackingSetting {
	return nil
}

type TrackingSettings struct {
	ClickTracking        *ClickTrackingSetting
	OpenTracking         *OpenTrackingSetting
	SubscriptionTracking *SubscriptionTrackingSetting
	GoogleAnalytics      *GaSetting
	BCC                  *BccSetting
	BypassListManagement *Setting
	Footer               *FooterSetting
	SandboxMode          *SandboxModeSetting
}

func (_ *TrackingSettings) SetClickTracking(_ *ClickTrackingSetting) *TrackingSettings {
	return nil
}

func (_ *TrackingSettings) SetGoogleAnalytics(_ *GaSetting) *TrackingSettings {
	return nil
}

func (_ *TrackingSettings) SetOpenTracking(_ *OpenTrackingSetting) *TrackingSettings {
	return nil
}

func (_ *TrackingSettings) SetSubscriptionTracking(_ *SubscriptionTrackingSetting) *TrackingSettings {
	return nil
}
