package redeem

import (
	"context"
	"time"
)

type Client interface {
	BindCard(ctx context.Context, input *CommonSendCardReq) (result *BindCardOutput, err error)
	QueryBalance(ctx context.Context, input *QueryBalanceReq) (result *QueryBalanceRes, err error)
	QueryBalanceWithCache(ctx context.Context, input *QueryBalanceReq, duration time.Duration) (result *QueryBalanceRes, err error)
	QueryUserInfoWithCache(ctx context.Context, cookie string, duration time.Duration) (result *QueryUserInfoRes, err error)
	QueryUserInfo(ctx context.Context, cookie string) (result *QueryUserInfoRes, err error)
	QueryCard(ctx context.Context, input *CommonSendCardReq) (result *BindCardOutput, err error)
	CheckCard(ctx context.Context, input *CommonCardTrimAndCheckerInput) (output *CommonCardTrimAndCheckerOutput)
	CheckAllowedAmount(ctx context.Context, amount float64) bool
}
