func (v Friends) Delete(params FriendsDeleteParams) (*FriendsDeleteResponse, error) {
	r, err := v.API.Request("friends.delete", params)
	if err != nil {
		return nil, err
	}
	var resp FriendsDeleteResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}
Delete Declines a friend request or deletes a user from the current user's friend list.
package vkapi
import (
	"encoding/json"
	"strconv"
	"github.com/stek29/vk"
)
type Friends struct {
	API vk.API
}
type FriendsGetParams struct {
	UserID int `url:"user_id,omitempty"`
	Order string `url:"order,omitempty"`
	ListID int `url:"list_id,omitempty"`
	Count int `url:"count,omitempty"`
	Offset int `url:"offset,omitempty"`
	Fields CSVStringSlice `url:"fields,omitempty"`
	NameCase string `url:"name_case,omitempty"`
}
type FriendsGetResponse struct {
	Count int `json:"count,omitempty"`
	Items []int `json:"items,omitempty"`
}
func (v Friends) Get(params FriendsGetParams) (*FriendsGetResponse, error) {
	r, err := v.API.Request("friends.get", params)
	if err != nil {
		return nil, err
	}
	var resp FriendsGetResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}
type FriendsGetOnlineParams struct {
	UserID int `url:"user_id,omitempty"`
	ListID int `url:"list_id,omitempty"`
	OnlineMobile bool `url:"online_mobile,omitempty"`
	Order string `url:"order,omitempty"`
	Count int `url:"count,omitempty"`
	Offset int `url:"offset,omitempty"`
}
type FriendsGetOnlineResponse []int
func (v Friends) GetOnline(params FriendsGetOnlineParams) (FriendsGetOnlineResponse, error) {
	r, err := v.API.Request("friends.getOnline", params)
	if err != nil {
		return nil, err
	}
	var resp FriendsGetOnlineResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type FriendsGetMutualParams struct {
	SourceUID int `url:"source_uid,omitempty"`
	TargetUID int `url:"target_uid,omitempty"`
	TargetUIDs CSVIntSlice `url:"target_uids,omitempty"`
	Order string `url:"order,omitempty"`
	Count int `url:"count,omitempty"`
	Offset int `url:"offset,omitempty"`
}
type FriendsGetMutualResponse []int
func (v Friends) GetMutual(params FriendsGetMutualParams) (FriendsGetMutualResponse, error) {
	r, err := v.API.Request("friends.getMutual", params)
	if err != nil {
		return nil, err
	}
	var resp FriendsGetMutualResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type FriendsGetRecentParams struct {
	Count int `url:"count,omitempty"`
}
type FriendsGetRecentResponse []int
func (v Friends) GetRecent(params FriendsGetRecentParams) (FriendsGetRecentResponse, error) {
	r, err := v.API.Request("friends.getRecent", params)
	if err != nil {
		return nil, err
	}
	var resp FriendsGetRecentResponse
	err = json.Unmarshal(r, &resp)
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type FriendsGetRequestsParams struct {
	Offset int `url:"offset,omitempty"`
	Count int `url:"count,omitempty"`
	Extended bool `url:"extended,omitempty"`
	NeedMutual bool `url:"need_mutual,omitempty"`
	Out bool `url:"out,omitempty"`
	Sort       int  `url:"sort,omitempty"`
	NeedViewed bool `url:"need_viewed,omitempty"`
	Suggested bool `url:"suggested,omitempty"`
}
type FriendsGetRequestsResponse interface {
	isFriendsGetRequests()
}
type FriendsGetRequestsResponseNormal struct {
	Count int `json:"count,omitempty"`
	Items []int `json:"items,omitempty"`
	CountUnread int `json:"count_unread,omitempty"`
}
func (FriendsGetRequestsResponseNormal) isFriendsGetRequests() {}
type FriendsGetRequestsResponseExtended struct {
	Count int `json:"count,omitempty"`
	Items []struct {
		UserID int `json:"user_id,omitempty"`
		From   string `json:"from,omitempty"`
		Mutual struct {
			Count int `json:"count,omitempty"`
			Users []int `json:"users,omitempty"`
		} `json:"mutual,omitempty"`
		Message string `json:"message,omitempty"`
	} `json:"items,omitempty"`
}
func (FriendsGetRequestsResponseExtended) isFriendsGetRequests() {}
func (v Friends) GetRequests(params FriendsGetRequestsParams) (FriendsGetRequestsResponse, error) {
	r, err := v.API.Request("friends.getRequests", params)
	if err != nil {
		return nil, err
	}
	var resp FriendsGetRequestsResponse
	if params.Extended {
		var tmp FriendsGetRequestsResponseExtended
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	} else {
		var tmp FriendsGetRequestsResponseNormal
		err = json.Unmarshal(r, &tmp)
		resp = &tmp
	}
	if err != nil {
		return nil, err
	}
	return resp, nil
}
type FriendsAddParams struct {
	UserID int `url:"user_id,omitempty"`
	Text string `url:"text,omitempty"`
	Follow bool `url:"follow,omitempty"`
}
type FriendsAddResponse int
func (v Friends) Add(params FriendsAddParams) (FriendsAddResponse, error) {
	r, err := v.API.Request("friends.add", params)
	if err != nil {
		return 0, err
	}
	var resp FriendsAddResponse
	var cnv int
	cnv, err = strconv.Atoi(string(r))
	resp = FriendsAddResponse(cnv)
	if err != nil {
		return 0, err
	}
	return resp, nil
}
type FriendsEditParams struct {
	UserID int `url:"user_id"`
	ListIDs CSVIntSlice `url:"list_ids,omitempty"`
}
func (v Friends) Edit(params FriendsEditParams) (bool, error) {
	r, err := v.API.Request("friends.edit", params)
	if err != nil {
		return false, err
	}
	return decodeBoolIntResponse(r)
}
type FriendsDeleteParams struct {
	UserID int `url:"user_id,omitempty"`
}
type FriendsDeleteResponse struct {
	Success vk.BoolInt `json:"success,omitempty"`
	FriendDeleted int `json:"friend_deleted,omitempty"`
	OutRequestDeleted int `json:"out_request_deleted,omitempty"`
	InRequestDeleted int `json:"in_request_deleted,omitempty"`
	SuggestionDeleted int `json:"suggestion_deleted,omitempty"`
}