@open-loyalty/mcp-server 1.1.0 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +180 -177
  2. package/dist/auth/provider.js +2 -14
  3. package/dist/auth/storage.js +22 -0
  4. package/dist/client/http.js +10 -0
  5. package/dist/config.d.ts +0 -13
  6. package/dist/config.js +0 -14
  7. package/dist/http.js +35 -3
  8. package/dist/instructions.d.ts +5 -0
  9. package/dist/instructions.js +440 -0
  10. package/dist/prompts/fan-engagement-setup.d.ts +107 -0
  11. package/dist/prompts/fan-engagement-setup.js +492 -0
  12. package/dist/server.d.ts +1 -1
  13. package/dist/server.js +60 -273
  14. package/dist/tools/achievement/handlers.d.ts +117 -0
  15. package/dist/tools/achievement/handlers.js +161 -0
  16. package/dist/tools/achievement/index.d.ts +479 -0
  17. package/dist/tools/achievement/index.js +74 -0
  18. package/dist/tools/achievement/schemas.d.ts +433 -0
  19. package/dist/tools/achievement/schemas.js +142 -0
  20. package/dist/tools/achievement.d.ts +141 -121
  21. package/dist/tools/achievement.js +60 -24
  22. package/dist/tools/admin.d.ts +6 -6
  23. package/dist/tools/admin.js +12 -12
  24. package/dist/tools/analytics.d.ts +11 -11
  25. package/dist/tools/analytics.js +30 -29
  26. package/dist/tools/apikey.d.ts +3 -3
  27. package/dist/tools/apikey.js +6 -6
  28. package/dist/tools/audit.d.ts +2 -2
  29. package/dist/tools/audit.js +4 -4
  30. package/dist/tools/badge.d.ts +6 -6
  31. package/dist/tools/badge.js +23 -18
  32. package/dist/tools/campaign/handlers.d.ts +42 -0
  33. package/dist/tools/campaign/handlers.js +223 -0
  34. package/dist/tools/campaign/index.d.ts +783 -0
  35. package/dist/tools/campaign/index.js +117 -0
  36. package/dist/tools/campaign/member-handlers.d.ts +60 -0
  37. package/dist/tools/campaign/member-handlers.js +159 -0
  38. package/dist/tools/campaign/schemas.d.ts +704 -0
  39. package/dist/tools/campaign/schemas.js +259 -0
  40. package/dist/tools/campaign/types.d.ts +161 -0
  41. package/dist/tools/campaign/types.js +2 -0
  42. package/dist/tools/custom-event.d.ts +315 -0
  43. package/dist/tools/custom-event.js +270 -0
  44. package/dist/tools/export.d.ts +4 -4
  45. package/dist/tools/export.js +12 -12
  46. package/dist/tools/import.d.ts +3 -3
  47. package/dist/tools/import.js +23 -15
  48. package/dist/tools/index.js +13 -5
  49. package/dist/tools/member/handlers.d.ts +111 -0
  50. package/dist/tools/member/handlers.js +206 -0
  51. package/dist/tools/member/index.d.ts +169 -0
  52. package/dist/tools/member/index.js +92 -0
  53. package/dist/tools/member/schemas.d.ts +89 -0
  54. package/dist/tools/member/schemas.js +65 -0
  55. package/dist/tools/points.d.ts +7 -6
  56. package/dist/tools/points.js +21 -20
  57. package/dist/tools/referral/handlers.d.ts +47 -0
  58. package/dist/tools/referral/handlers.js +115 -0
  59. package/dist/tools/referral/index.d.ts +44 -0
  60. package/dist/tools/referral/index.js +44 -0
  61. package/dist/tools/referral/schemas.d.ts +34 -0
  62. package/dist/tools/referral/schemas.js +52 -0
  63. package/dist/tools/reward/handlers.d.ts +110 -0
  64. package/dist/tools/reward/handlers.js +289 -0
  65. package/dist/tools/reward/index.d.ts +177 -0
  66. package/dist/tools/reward/index.js +93 -0
  67. package/dist/tools/reward/schemas.d.ts +116 -0
  68. package/dist/tools/reward/schemas.js +92 -0
  69. package/dist/tools/role.d.ts +6 -6
  70. package/dist/tools/role.js +12 -12
  71. package/dist/tools/segment/handlers.d.ts +87 -0
  72. package/dist/tools/segment/handlers.js +174 -0
  73. package/dist/tools/segment/index.d.ts +395 -0
  74. package/dist/tools/segment/index.js +88 -0
  75. package/dist/tools/segment/schemas.d.ts +337 -0
  76. package/dist/tools/segment/schemas.js +79 -0
  77. package/dist/tools/segment.d.ts +10 -10
  78. package/dist/tools/segment.js +55 -31
  79. package/dist/tools/store.d.ts +4 -4
  80. package/dist/tools/store.js +8 -8
  81. package/dist/tools/tierset.d.ts +10 -10
  82. package/dist/tools/tierset.js +69 -37
  83. package/dist/tools/transaction.d.ts +4 -4
  84. package/dist/tools/transaction.js +12 -12
  85. package/dist/tools/wallet-type.d.ts +221 -16
  86. package/dist/tools/wallet-type.js +248 -17
  87. package/dist/tools/webhook.d.ts +6 -6
  88. package/dist/tools/webhook.js +90 -31
  89. package/dist/types/schemas/achievement.d.ts +18 -18
  90. package/dist/types/schemas/campaign.d.ts +64 -184
  91. package/dist/types/schemas/campaign.js +2 -7
  92. package/dist/types/schemas/common.d.ts +5 -0
  93. package/dist/types/schemas/common.js +5 -0
  94. package/dist/types/schemas/member.d.ts +2 -2
  95. package/dist/types/schemas/reward.d.ts +94 -18
  96. package/dist/types/schemas/reward.js +8 -3
  97. package/dist/types/schemas/wallet-type.d.ts +306 -8
  98. package/dist/types/schemas/wallet-type.js +82 -1
  99. package/dist/utils/errors.js +32 -5
  100. package/dist/workflows/app-login-streak.d.ts +39 -0
  101. package/dist/workflows/app-login-streak.js +298 -0
  102. package/dist/workflows/early-arrival.d.ts +33 -0
  103. package/dist/workflows/early-arrival.js +148 -0
  104. package/dist/workflows/index.d.ts +101 -0
  105. package/dist/workflows/index.js +208 -0
  106. package/dist/workflows/match-attendance.d.ts +45 -0
  107. package/dist/workflows/match-attendance.js +308 -0
  108. package/dist/workflows/sportsbar-visit.d.ts +41 -0
  109. package/dist/workflows/sportsbar-visit.js +284 -0
  110. package/dist/workflows/vod-watching.d.ts +43 -0
  111. package/dist/workflows/vod-watching.js +326 -0
  112. package/package.json +8 -2
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Create a referral relationship between two members
3
+ * POST /api/:storeCode/member/:member/referral
4
+ */
5
+ export declare function referralCreate(input: {
6
+ storeCode?: string;
7
+ memberId: string;
8
+ referrerId: string;
9
+ }): Promise<void>;
10
+ /**
11
+ * List referrals with optional filters
12
+ * GET /api/:storeCode/referral
13
+ */
14
+ export declare function referralList(input: {
15
+ storeCode?: string;
16
+ referralId?: string;
17
+ referrerId?: string;
18
+ referrerName?: string;
19
+ referrerToken?: string;
20
+ refereeId?: string;
21
+ refereeName?: string;
22
+ createdAt?: string;
23
+ page?: number;
24
+ perPage?: number;
25
+ }): Promise<{
26
+ referrals: Array<{
27
+ referralId: string;
28
+ referrerId: string;
29
+ referrerName?: string;
30
+ referrerToken?: string;
31
+ refereeId: string;
32
+ refereeName?: string;
33
+ createdAt: string;
34
+ }>;
35
+ total: {
36
+ all?: number;
37
+ filtered?: number;
38
+ };
39
+ }>;
40
+ /**
41
+ * Delete a referral relationship
42
+ * DELETE /api/:storeCode/member/:member/referral
43
+ */
44
+ export declare function referralDelete(input: {
45
+ storeCode?: string;
46
+ memberId: string;
47
+ }): Promise<void>;
@@ -0,0 +1,115 @@
1
+ import { apiGet, apiPost, apiDelete } from "../../client/http.js";
2
+ import { formatApiError, OpenLoyaltyError } from "../../utils/errors.js";
3
+ import { getStoreCode } from "../../config.js";
4
+ /**
5
+ * Create a referral relationship between two members
6
+ * POST /api/:storeCode/member/:member/referral
7
+ */
8
+ export async function referralCreate(input) {
9
+ const storeCode = getStoreCode(input.storeCode);
10
+ // Validate that memberId and referrerId are different
11
+ if (input.memberId === input.referrerId) {
12
+ throw new OpenLoyaltyError({
13
+ code: "INVALID_REFERRAL",
14
+ message: "A member cannot refer themselves",
15
+ hint: "The memberId (referee) must be different from the referrerId (referrer). The referee is the new member, the referrer is the existing member who made the referral.",
16
+ relatedTool: "ol_referral_create",
17
+ });
18
+ }
19
+ try {
20
+ await apiPost(`/${storeCode}/member/${input.memberId}/referral`, { referrerId: input.referrerId });
21
+ }
22
+ catch (error) {
23
+ const errorMessage = error instanceof Error ? error.message : String(error);
24
+ if (errorMessage.includes("already has a referrer") || errorMessage.includes("referral already exists")) {
25
+ throw new OpenLoyaltyError({
26
+ code: "REFERRAL_EXISTS",
27
+ message: "This member already has a referral relationship",
28
+ hint: `Member ${input.memberId} has already been referred by someone. Use referral_list(refereeId: "${input.memberId}") to see existing referral.`,
29
+ relatedTool: "ol_referral_create",
30
+ });
31
+ }
32
+ if (errorMessage.includes("not found") || errorMessage.includes("Not Found")) {
33
+ throw new OpenLoyaltyError({
34
+ code: "MEMBER_NOT_FOUND",
35
+ message: "One or both member IDs do not exist",
36
+ hint: `Verify both members exist: member_get(memberId: "${input.memberId}") for referee and member_get(memberId: "${input.referrerId}") for referrer.`,
37
+ relatedTool: "ol_referral_create",
38
+ });
39
+ }
40
+ throw formatApiError(error, "ol_referral_create");
41
+ }
42
+ }
43
+ /**
44
+ * List referrals with optional filters
45
+ * GET /api/:storeCode/referral
46
+ */
47
+ export async function referralList(input) {
48
+ const storeCode = getStoreCode(input.storeCode);
49
+ const params = new URLSearchParams();
50
+ if (input.referralId)
51
+ params.append("referralId", input.referralId);
52
+ if (input.referrerId)
53
+ params.append("referrerId", input.referrerId);
54
+ if (input.referrerName)
55
+ params.append("referrerName", input.referrerName);
56
+ if (input.referrerToken)
57
+ params.append("referrerToken", input.referrerToken);
58
+ if (input.refereeId)
59
+ params.append("refereeId", input.refereeId);
60
+ if (input.refereeName)
61
+ params.append("refereeName", input.refereeName);
62
+ if (input.createdAt)
63
+ params.append("createdAt", input.createdAt);
64
+ if (input.page)
65
+ params.append("_page", String(input.page));
66
+ if (input.perPage)
67
+ params.append("_itemsOnPage", String(input.perPage));
68
+ const queryString = params.toString();
69
+ const url = `/${storeCode}/referral${queryString ? `?${queryString}` : ""}`;
70
+ try {
71
+ const response = await apiGet(url);
72
+ const referrals = (response.items || []).map((item) => ({
73
+ referralId: item.referralId,
74
+ referrerId: item.referrerId,
75
+ referrerName: item.referrerName,
76
+ referrerToken: item.referrerToken,
77
+ refereeId: item.refereeId,
78
+ refereeName: item.refereeName,
79
+ createdAt: item.createdAt,
80
+ }));
81
+ const total = response.total || {};
82
+ return {
83
+ referrals,
84
+ total: {
85
+ all: typeof total.all === "number" ? total.all : undefined,
86
+ filtered: typeof total.filtered === "number" ? total.filtered : undefined,
87
+ },
88
+ };
89
+ }
90
+ catch (error) {
91
+ throw formatApiError(error, "ol_referral_list");
92
+ }
93
+ }
94
+ /**
95
+ * Delete a referral relationship
96
+ * DELETE /api/:storeCode/member/:member/referral
97
+ */
98
+ export async function referralDelete(input) {
99
+ const storeCode = getStoreCode(input.storeCode);
100
+ try {
101
+ await apiDelete(`/${storeCode}/member/${input.memberId}/referral`);
102
+ }
103
+ catch (error) {
104
+ const errorMessage = error instanceof Error ? error.message : String(error);
105
+ if (errorMessage.includes("not found") || errorMessage.includes("Not Found")) {
106
+ throw new OpenLoyaltyError({
107
+ code: "REFERRAL_NOT_FOUND",
108
+ message: "No referral relationship found for this member",
109
+ hint: `Member ${input.memberId} does not have a referral relationship. Use referral_list(refereeId: "${input.memberId}") to verify.`,
110
+ relatedTool: "ol_referral_delete",
111
+ });
112
+ }
113
+ throw formatApiError(error, "ol_referral_delete");
114
+ }
115
+ }
@@ -0,0 +1,44 @@
1
+ export { ReferralCreateInputSchema, ReferralListInputSchema, ReferralDeleteInputSchema, } from "./schemas.js";
2
+ export { referralCreate, referralList, referralDelete } from "./handlers.js";
3
+ import { referralCreate, referralList, referralDelete } from "./handlers.js";
4
+ export declare const referralToolDefinitions: readonly [{
5
+ readonly name: "ol_referral_create";
6
+ readonly title: "Create Referral Relationship";
7
+ readonly description: string;
8
+ readonly readOnly: false;
9
+ readonly inputSchema: {
10
+ storeCode: import("zod").ZodOptional<import("zod").ZodString>;
11
+ memberId: import("zod").ZodString;
12
+ referrerId: import("zod").ZodString;
13
+ };
14
+ readonly handler: typeof referralCreate;
15
+ }, {
16
+ readonly name: "ol_referral_list";
17
+ readonly title: "List Referrals";
18
+ readonly description: string;
19
+ readonly readOnly: true;
20
+ readonly inputSchema: {
21
+ storeCode: import("zod").ZodOptional<import("zod").ZodString>;
22
+ referralId: import("zod").ZodOptional<import("zod").ZodString>;
23
+ referrerId: import("zod").ZodOptional<import("zod").ZodString>;
24
+ referrerName: import("zod").ZodOptional<import("zod").ZodString>;
25
+ referrerToken: import("zod").ZodOptional<import("zod").ZodString>;
26
+ refereeId: import("zod").ZodOptional<import("zod").ZodString>;
27
+ refereeName: import("zod").ZodOptional<import("zod").ZodString>;
28
+ createdAt: import("zod").ZodOptional<import("zod").ZodString>;
29
+ page: import("zod").ZodOptional<import("zod").ZodNumber>;
30
+ perPage: import("zod").ZodOptional<import("zod").ZodNumber>;
31
+ };
32
+ readonly handler: typeof referralList;
33
+ }, {
34
+ readonly name: "ol_referral_delete";
35
+ readonly title: "Delete Referral Relationship";
36
+ readonly description: string;
37
+ readonly readOnly: false;
38
+ readonly destructive: true;
39
+ readonly inputSchema: {
40
+ storeCode: import("zod").ZodOptional<import("zod").ZodString>;
41
+ memberId: import("zod").ZodString;
42
+ };
43
+ readonly handler: typeof referralDelete;
44
+ }];
@@ -0,0 +1,44 @@
1
+ // Re-export schemas
2
+ export { ReferralCreateInputSchema, ReferralListInputSchema, ReferralDeleteInputSchema, } from "./schemas.js";
3
+ // Re-export handlers
4
+ export { referralCreate, referralList, referralDelete } from "./handlers.js";
5
+ // Imports for tool definitions
6
+ import { ReferralCreateInputSchema, ReferralListInputSchema, ReferralDeleteInputSchema, } from "./schemas.js";
7
+ import { referralCreate, referralList, referralDelete } from "./handlers.js";
8
+ // Tool definitions
9
+ export const referralToolDefinitions = [
10
+ {
11
+ name: "ol_referral_create",
12
+ title: "Create Referral Relationship",
13
+ description: "Create a referral relationship between an existing member (referrer) and a new member (referee). " +
14
+ "The referrer is the member who made the referral and will receive referral rewards. " +
15
+ "The referee (memberId) is the new member who was referred. " +
16
+ "Use this after creating a new member who was referred by an existing member. " +
17
+ "Both members must exist. A member can only have one referrer.",
18
+ readOnly: false,
19
+ inputSchema: ReferralCreateInputSchema,
20
+ handler: referralCreate,
21
+ },
22
+ {
23
+ name: "ol_referral_list",
24
+ title: "List Referrals",
25
+ description: "List referral relationships with optional filters. " +
26
+ "Filter by referrerId to see all members a specific person has referred. " +
27
+ "Filter by refereeId to find who referred a specific member. " +
28
+ "Returns referralId, referrerId, referrerName, refereeId, refereeName, and createdAt.",
29
+ readOnly: true,
30
+ inputSchema: ReferralListInputSchema,
31
+ handler: referralList,
32
+ },
33
+ {
34
+ name: "ol_referral_delete",
35
+ title: "Delete Referral Relationship",
36
+ description: "Delete a referral relationship for a member. " +
37
+ "Use with caution - this removes the referral tracking but may not reverse any rewards already given. " +
38
+ "The memberId is the referee (the member who was referred).",
39
+ readOnly: false,
40
+ destructive: true,
41
+ inputSchema: ReferralDeleteInputSchema,
42
+ handler: referralDelete,
43
+ },
44
+ ];
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Schema for creating a referral relationship
4
+ * POST /api/:storeCode/member/:member/referral
5
+ */
6
+ export declare const ReferralCreateInputSchema: {
7
+ storeCode: z.ZodOptional<z.ZodString>;
8
+ memberId: z.ZodString;
9
+ referrerId: z.ZodString;
10
+ };
11
+ /**
12
+ * Schema for listing referrals
13
+ * GET /api/:storeCode/referral
14
+ */
15
+ export declare const ReferralListInputSchema: {
16
+ storeCode: z.ZodOptional<z.ZodString>;
17
+ referralId: z.ZodOptional<z.ZodString>;
18
+ referrerId: z.ZodOptional<z.ZodString>;
19
+ referrerName: z.ZodOptional<z.ZodString>;
20
+ referrerToken: z.ZodOptional<z.ZodString>;
21
+ refereeId: z.ZodOptional<z.ZodString>;
22
+ refereeName: z.ZodOptional<z.ZodString>;
23
+ createdAt: z.ZodOptional<z.ZodString>;
24
+ page: z.ZodOptional<z.ZodNumber>;
25
+ perPage: z.ZodOptional<z.ZodNumber>;
26
+ };
27
+ /**
28
+ * Schema for deleting a referral relationship
29
+ * DELETE /api/:storeCode/member/:member/referral
30
+ */
31
+ export declare const ReferralDeleteInputSchema: {
32
+ storeCode: z.ZodOptional<z.ZodString>;
33
+ memberId: z.ZodString;
34
+ };
@@ -0,0 +1,52 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Schema for creating a referral relationship
4
+ * POST /api/:storeCode/member/:member/referral
5
+ */
6
+ export const ReferralCreateInputSchema = {
7
+ storeCode: z
8
+ .string()
9
+ .optional()
10
+ .describe("Store code for multi-tenant routing. DO NOT pass this parameter - the configured default will be used automatically. Only provide a value if the user explicitly asks to work with a different store."),
11
+ memberId: z
12
+ .string()
13
+ .uuid()
14
+ .describe("The member ID (UUID) of the referee (the new member being referred). This is the member who was referred by someone else."),
15
+ referrerId: z
16
+ .string()
17
+ .uuid()
18
+ .describe("The member ID (UUID) of the referrer (the existing member who made the referral). This member will receive referral rewards."),
19
+ };
20
+ /**
21
+ * Schema for listing referrals
22
+ * GET /api/:storeCode/referral
23
+ */
24
+ export const ReferralListInputSchema = {
25
+ storeCode: z
26
+ .string()
27
+ .optional()
28
+ .describe("Store code for multi-tenant routing. DO NOT pass this parameter - the configured default will be used automatically. Only provide a value if the user explicitly asks to work with a different store."),
29
+ referralId: z.string().uuid().optional().describe("Filter by specific referral ID"),
30
+ referrerId: z.string().uuid().optional().describe("Filter by referrer member ID"),
31
+ referrerName: z.string().max(255).optional().describe("Filter by referrer name"),
32
+ referrerToken: z.string().max(255).optional().describe("Filter by referrer token"),
33
+ refereeId: z.string().uuid().optional().describe("Filter by referee member ID"),
34
+ refereeName: z.string().max(255).optional().describe("Filter by referee name"),
35
+ createdAt: z.string().optional().describe("Filter by creation date (ISO 8601)"),
36
+ page: z.number().int().min(1).optional().describe("Page number (starts from 1)"),
37
+ perPage: z.number().int().min(1).max(100).optional().describe("Items per page (default 25, max 100)"),
38
+ };
39
+ /**
40
+ * Schema for deleting a referral relationship
41
+ * DELETE /api/:storeCode/member/:member/referral
42
+ */
43
+ export const ReferralDeleteInputSchema = {
44
+ storeCode: z
45
+ .string()
46
+ .optional()
47
+ .describe("Store code for multi-tenant routing. DO NOT pass this parameter - the configured default will be used automatically. Only provide a value if the user explicitly asks to work with a different store."),
48
+ memberId: z
49
+ .string()
50
+ .uuid()
51
+ .describe("The member ID (UUID) of the referee whose referral relationship should be deleted."),
52
+ };
@@ -0,0 +1,110 @@
1
+ import { Reward } from "../../types/schemas/reward.js";
2
+ export declare function rewardList(input: {
3
+ storeCode?: string;
4
+ page?: number;
5
+ perPage?: number;
6
+ active?: boolean;
7
+ type?: string;
8
+ categoryId?: string;
9
+ }): Promise<{
10
+ rewards: Array<{
11
+ rewardId: string;
12
+ name: string;
13
+ type: string;
14
+ costInPoints?: number;
15
+ active: boolean;
16
+ }>;
17
+ total: {
18
+ all?: number;
19
+ filtered?: number;
20
+ };
21
+ }>;
22
+ export declare function rewardCreate(input: {
23
+ storeCode?: string;
24
+ translations: {
25
+ en: {
26
+ name: string;
27
+ };
28
+ };
29
+ reward: string;
30
+ activity: {
31
+ from: string;
32
+ to: string;
33
+ };
34
+ visibility: {
35
+ from: string;
36
+ to: string;
37
+ };
38
+ usageLimit: {
39
+ perUser: number;
40
+ general?: number;
41
+ };
42
+ costInPoints?: number;
43
+ usageInstruction?: string;
44
+ active?: boolean;
45
+ categories?: string[];
46
+ levels?: string[];
47
+ segments?: string[];
48
+ target?: string | null;
49
+ couponValue?: number;
50
+ couponValueType?: string;
51
+ daysValid?: number;
52
+ }): Promise<{
53
+ rewardId: string;
54
+ name: string;
55
+ costInPoints?: number;
56
+ }>;
57
+ export declare function rewardGet(input: {
58
+ storeCode?: string;
59
+ rewardId: string;
60
+ }): Promise<Reward>;
61
+ export declare function rewardUpdate(input: {
62
+ storeCode?: string;
63
+ rewardId: string;
64
+ name?: string;
65
+ costInPoints?: number;
66
+ description?: string;
67
+ active?: boolean;
68
+ categories?: string[];
69
+ levels?: string[];
70
+ segments?: string[];
71
+ }): Promise<void>;
72
+ export declare function rewardActivate(input: {
73
+ storeCode?: string;
74
+ rewardId: string;
75
+ }): Promise<void>;
76
+ export declare function rewardDeactivate(input: {
77
+ storeCode?: string;
78
+ rewardId: string;
79
+ }): Promise<void>;
80
+ export declare function rewardBuy(input: {
81
+ storeCode?: string;
82
+ rewardId: string;
83
+ memberId: string;
84
+ quantity?: number;
85
+ couponValue?: number;
86
+ withoutPoints?: boolean;
87
+ }): Promise<{
88
+ issuedRewardId: string;
89
+ couponCode?: string;
90
+ }>;
91
+ export declare function rewardRedeem(input: {
92
+ storeCode?: string;
93
+ memberId: string;
94
+ couponCode: string;
95
+ }): Promise<{
96
+ code: string;
97
+ used: boolean;
98
+ }>;
99
+ export declare function rewardCategoryList(input: {
100
+ storeCode?: string;
101
+ page?: number;
102
+ perPage?: number;
103
+ active?: boolean;
104
+ }): Promise<{
105
+ categories: Array<{
106
+ categoryId: string;
107
+ name: string;
108
+ active: boolean;
109
+ }>;
110
+ }>;