@automate.ax/integration-contracts 0.147.1 → 0.148.0

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.
@@ -0,0 +1,98 @@
1
+ /** Complete practical Kit V4 action surface with verifiable request contracts. */
2
+ export const KIT_OPERATION_DEFINITIONS = [
3
+ operation("getCurrentAccount", "GET", "/v4/account", "getKitCurrentAccount", "Get current Kit account", "Returns the authenticated Kit account and user identity.", "safe", false),
4
+ operation("listColors", "GET", "/v4/account/colors", "listKitColors", "List Kit colors", "Lists the account's saved brand color palette.", "safe", false),
5
+ operation("updateColors", "PUT", "/v4/account/colors", "updateKitColors", "Update Kit colors", "Replaces the account's saved brand color palette.", "safe", false),
6
+ operation("getCreatorProfile", "GET", "/v4/account/creator_profile", "getKitCreatorProfile", "Get Kit creator profile", "Returns the account's public creator profile.", "safe", false),
7
+ operation("getEmailStats", "GET", "/v4/account/email_stats", "getKitEmailStats", "Get Kit email stats", "Returns account-level email performance for the last 90 days.", "safe", false),
8
+ operation("getGrowthStats", "GET", "/v4/account/growth_stats", "getKitGrowthStats", "Get Kit growth stats", "Returns subscriber growth statistics for a selected period.", "safe", false),
9
+ operation("listBroadcasts", "GET", "/v4/broadcasts", "listKitBroadcasts", "List Kit broadcasts", "Lists broadcasts with cursor pagination and lifecycle filters.", "safe", false),
10
+ operation("createBroadcast", "POST", "/v4/broadcasts", "createKitBroadcast", "Create Kit broadcast", "Creates a draft or scheduled Kit broadcast.", "unsafe", false),
11
+ operation("listBroadcastStats", "GET", "/v4/broadcasts/stats", "listKitBroadcastStats", "List Kit broadcast stats", "Lists delivery and engagement statistics for broadcasts.", "safe", false),
12
+ operation("listBroadcastLinkClicks", "GET", "/v4/broadcasts/{broadcast_id}/clicks", "listKitBroadcastLinkClicks", "List Kit broadcast link clicks", "Lists link-level click performance for a broadcast.", "safe", false),
13
+ operation("getBroadcastStats", "GET", "/v4/broadcasts/{broadcast_id}/stats", "getKitBroadcastStats", "Get Kit broadcast stats", "Returns delivery and engagement statistics for one broadcast.", "safe", false),
14
+ operation("deleteBroadcast", "DELETE", "/v4/broadcasts/{id}", "deleteKitBroadcast", "Delete Kit broadcast", "Permanently deletes a draft or scheduled broadcast.", "safe", false),
15
+ operation("getBroadcast", "GET", "/v4/broadcasts/{id}", "getKitBroadcast", "Get Kit broadcast", "Returns one broadcast with content, targeting, and publication settings.", "safe", false),
16
+ operation("updateBroadcast", "PUT", "/v4/broadcasts/{id}", "updateKitBroadcast", "Update Kit broadcast", "Updates a draft or scheduled broadcast.", "safe", false),
17
+ operation("bulkCreateCustomFields", "POST", "/v4/bulk/custom_fields", "bulkCreateKitCustomFields", "Bulk create Kit custom fields", "Creates custom fields synchronously or as an asynchronous bulk job.", "unsafe", true),
18
+ operation("bulkUpdateSubscriberCustomFieldValues", "POST", "/v4/bulk/custom_fields/subscribers", "bulkUpdateKitSubscriberCustomFieldValues", "Bulk update Kit subscriber custom fields", "Updates custom field values across subscribers in one bulk request.", "safe", true),
19
+ operation("listCustomFields", "GET", "/v4/custom_fields", "listKitCustomFields", "List Kit custom fields", "Lists custom fields with cursor pagination.", "safe", false),
20
+ operation("createCustomField", "POST", "/v4/custom_fields", "createKitCustomField", "Create Kit custom field", "Creates one account custom field.", "unsafe", false),
21
+ operation("deleteCustomField", "DELETE", "/v4/custom_fields/{id}", "deleteKitCustomField", "Delete Kit custom field", "Deletes a custom field and all subscriber values stored in it.", "safe", false),
22
+ operation("updateCustomField", "PUT", "/v4/custom_fields/{id}", "updateKitCustomField", "Update Kit custom field", "Renames one custom field.", "safe", false),
23
+ operation("listEmailTemplates", "GET", "/v4/email_templates", "listKitEmailTemplates", "List Kit email templates", "Lists account email templates with cursor pagination.", "safe", false),
24
+ operation("bulkAddSubscribersToForms", "POST", "/v4/bulk/forms/subscribers", "bulkAddKitSubscribersToForms", "Bulk add Kit subscribers to forms", "Adds subscribers to forms synchronously or as an asynchronous bulk job.", "safe", true),
25
+ operation("listForms", "GET", "/v4/forms", "listKitForms", "List Kit forms", "Lists forms and landing pages with status and type filters.", "safe", false),
26
+ operation("listFormSubscribers", "GET", "/v4/forms/{form_id}/subscribers", "listKitFormSubscribers", "List Kit form subscribers", "Lists subscribers associated with one form.", "safe", false),
27
+ operation("addSubscriberToFormByEmailAddress", "POST", "/v4/forms/{form_id}/subscribers", "addKitSubscriberToFormByEmailAddress", "Add Kit subscriber to form by email", "Adds an existing subscriber to a form by email address.", "safe", false),
28
+ operation("addSubscriberToForm", "POST", "/v4/forms/{form_id}/subscribers/{id}", "addKitSubscriberToForm", "Add Kit subscriber to form", "Adds an existing subscriber to a form by subscriber ID.", "safe", false),
29
+ operation("listPosts", "GET", "/v4/posts", "listKitPosts", "List Kit posts", "Lists posts published to the creator's Kit site or email audience.", "safe", false),
30
+ operation("getPost", "GET", "/v4/posts/{id}", "getKitPost", "Get Kit post", "Returns one post with content, publication, and SEO fields.", "safe", false),
31
+ operation("listPurchases", "GET", "/v4/purchases", "listKitPurchases", "List Kit purchases", "Lists purchases recorded in the account.", "safe", true),
32
+ operation("createPurchase", "POST", "/v4/purchases", "createKitPurchase", "Create Kit purchase", "Records a purchase against a subscriber.", "unsafe", true),
33
+ operation("getPurchase", "GET", "/v4/purchases/{id}", "getKitPurchase", "Get Kit purchase", "Returns one recorded purchase.", "safe", true),
34
+ operation("listSegments", "GET", "/v4/segments", "listKitSegments", "List Kit segments", "Lists account segments with cursor pagination.", "safe", false),
35
+ operation("listSequenceEmails", "GET", "/v4/sequences/{sequence_id}/emails", "listKitSequenceEmails", "List Kit sequence emails", "Lists the email steps in one sequence.", "safe", false),
36
+ operation("createSequenceEmail", "POST", "/v4/sequences/{sequence_id}/emails", "createKitSequenceEmail", "Create Kit sequence email", "Adds one email step to a sequence.", "unsafe", false),
37
+ operation("deleteSequenceEmail", "DELETE", "/v4/sequences/{sequence_id}/emails/{id}", "deleteKitSequenceEmail", "Delete Kit sequence email", "Permanently removes one email from a sequence.", "safe", false),
38
+ operation("getSequenceEmail", "GET", "/v4/sequences/{sequence_id}/emails/{id}", "getKitSequenceEmail", "Get Kit sequence email", "Returns one sequence email with its full content.", "safe", false),
39
+ operation("updateSequenceEmail", "PUT", "/v4/sequences/{sequence_id}/emails/{id}", "updateKitSequenceEmail", "Update Kit sequence email", "Updates one sequence email's content, timing, position, or state.", "safe", false),
40
+ operation("listSequences", "GET", "/v4/sequences", "listKitSequences", "List Kit sequences", "Lists automated email sequences.", "safe", false),
41
+ operation("createSequence", "POST", "/v4/sequences", "createKitSequence", "Create Kit sequence", "Creates an empty automated email sequence.", "unsafe", false),
42
+ operation("deleteSequence", "DELETE", "/v4/sequences/{id}", "deleteKitSequence", "Delete Kit sequence", "Soft-deletes a sequence and stops active delivery.", "safe", false),
43
+ operation("getSequence", "GET", "/v4/sequences/{id}", "getKitSequence", "Get Kit sequence", "Returns one sequence and its delivery settings.", "safe", false),
44
+ operation("updateSequence", "PUT", "/v4/sequences/{id}", "updateKitSequence", "Update Kit sequence", "Updates one sequence's schedule and delivery settings.", "safe", false),
45
+ operation("listSequenceSubscribers", "GET", "/v4/sequences/{sequence_id}/subscribers", "listKitSequenceSubscribers", "List Kit sequence subscribers", "Lists subscribers enrolled in one sequence.", "safe", false),
46
+ operation("addSubscriberToSequenceByEmailAddress", "POST", "/v4/sequences/{sequence_id}/subscribers", "addKitSubscriberToSequenceByEmailAddress", "Add Kit subscriber to sequence by email", "Adds an existing subscriber to a sequence by email address.", "safe", false),
47
+ operation("addSubscriberToSequence", "POST", "/v4/sequences/{sequence_id}/subscribers/{id}", "addKitSubscriberToSequence", "Add Kit subscriber to sequence", "Adds an existing subscriber to a sequence by subscriber ID.", "safe", false),
48
+ operation("listSnippets", "GET", "/v4/snippets", "listKitSnippets", "List Kit snippets", "Lists reusable email snippets.", "safe", false),
49
+ operation("createSnippet", "POST", "/v4/snippets", "createKitSnippet", "Create Kit snippet", "Creates a reusable email snippet.", "unsafe", false),
50
+ operation("getSnippet", "GET", "/v4/snippets/{id}", "getKitSnippet", "Get Kit snippet", "Returns one reusable snippet with full content.", "safe", false),
51
+ operation("updateSnippet", "PUT", "/v4/snippets/{id}", "updateKitSnippet", "Update Kit snippet", "Updates a snippet's name, content, or archive state.", "safe", false),
52
+ operation("bulkCreateSubscribers", "POST", "/v4/bulk/subscribers", "bulkCreateKitSubscribers", "Bulk create Kit subscribers", "Creates or updates subscribers in one bulk request.", "safe", true),
53
+ operation("listSubscribers", "GET", "/v4/subscribers", "listKitSubscribers", "List Kit subscribers", "Lists subscribers with cursor, status, date, and engagement sorting filters.", "safe", false),
54
+ operation("createSubscriber", "POST", "/v4/subscribers", "createKitSubscriber", "Create Kit subscriber", "Creates or updates a subscriber by email address.", "safe", false),
55
+ operation("filterSubscribers", "POST", "/v4/subscribers/filter", "filterKitSubscribers", "Filter Kit subscribers", "Filters subscribers by engagement, signup, state, and tags.", "safe", false),
56
+ operation("getSubscriber", "GET", "/v4/subscribers/{id}", "getKitSubscriber", "Get Kit subscriber", "Returns one subscriber and their custom field values.", "safe", false),
57
+ operation("updateSubscriber", "PUT", "/v4/subscribers/{id}", "updateKitSubscriber", "Update Kit subscriber", "Updates one subscriber and their custom field values.", "safe", false),
58
+ operation("unsubscribeSubscriber", "POST", "/v4/subscribers/{id}/unsubscribe", "unsubscribeKitSubscriber", "Unsubscribe Kit subscriber", "Unsubscribes a subscriber from all future Kit email.", "safe", false),
59
+ operation("deleteSubscriberLocation", "DELETE", "/v4/subscribers/{subscriber_id}/location", "deleteKitSubscriberLocation", "Delete Kit subscriber location", "Removes a subscriber's pinned location.", "safe", false),
60
+ operation("updateSubscriberLocation", "PATCH", "/v4/subscribers/{subscriber_id}/location", "updateKitSubscriberLocation", "Update Kit subscriber location", "Replaces a subscriber's pinned location.", "safe", false),
61
+ operation("pinSubscriberLocation", "POST", "/v4/subscribers/{subscriber_id}/location", "pinKitSubscriberLocation", "Pin Kit subscriber location", "Pins an explicit location to a subscriber.", "safe", false),
62
+ operation("getSubscriberStats", "GET", "/v4/subscribers/{subscriber_id}/stats", "getKitSubscriberStats", "Get Kit subscriber stats", "Returns delivery and engagement statistics for one subscriber.", "safe", false),
63
+ operation("listSubscriberTags", "GET", "/v4/subscribers/{subscriber_id}/tags", "listKitSubscriberTags", "List Kit subscriber tags", "Lists tags currently applied to one subscriber.", "safe", false),
64
+ operation("bulkDeleteTags", "DELETE", "/v4/bulk/tags", "bulkDeleteKitTags", "Bulk delete Kit tags", "Deletes tags synchronously or as an asynchronous bulk job.", "safe", true),
65
+ operation("bulkCreateTags", "POST", "/v4/bulk/tags", "bulkCreateKitTags", "Bulk create Kit tags", "Creates tags synchronously or as an asynchronous bulk job.", "safe", true),
66
+ operation("bulkTagSubscribers", "POST", "/v4/bulk/tags/subscribers", "bulkTagKitSubscribers", "Bulk tag Kit subscribers", "Applies tags to subscribers in one bulk request.", "safe", true),
67
+ operation("listTags", "GET", "/v4/tags", "listKitTags", "List Kit tags", "Lists account tags with cursor pagination.", "safe", false),
68
+ operation("createTag", "POST", "/v4/tags", "createKitTag", "Create Kit tag", "Creates a tag or returns the existing case-insensitive name match.", "safe", false),
69
+ operation("updateTag", "PUT", "/v4/tags/{id}", "updateKitTag", "Update Kit tag", "Renames one tag without changing its memberships.", "safe", false),
70
+ operation("listTagSubscribers", "GET", "/v4/tags/{tag_id}/subscribers", "listKitTagSubscribers", "List Kit tag subscribers", "Lists subscribers that have one tag.", "safe", false),
71
+ operation("tagSubscriberByEmailAddress", "POST", "/v4/tags/{tag_id}/subscribers", "tagKitSubscriberByEmailAddress", "Tag Kit subscriber by email", "Applies a tag to an existing subscriber by email address.", "safe", false),
72
+ operation("removeTagFromSubscriber", "DELETE", "/v4/tags/{tag_id}/subscribers/{id}", "removeKitTagFromSubscriber", "Remove Kit tag from subscriber", "Removes one tag from a subscriber by ID.", "safe", false),
73
+ operation("tagSubscriber", "POST", "/v4/tags/{tag_id}/subscribers/{id}", "tagKitSubscriber", "Tag Kit subscriber", "Applies a tag to an existing subscriber by ID.", "safe", false),
74
+ ];
75
+ /**
76
+ * Preserves one Kit operation's public metadata.
77
+ *
78
+ * @param alias Public object alias and generated operation key.
79
+ * @param method Provider HTTP method.
80
+ * @param path Provider-relative V4 path.
81
+ * @param exportName Named SDK export.
82
+ * @param title Public action title.
83
+ * @param description Public action description.
84
+ * @param replaySafety Whether the provider operation can be replayed.
85
+ * @param oauthOnly Whether Kit rejects API-key authentication.
86
+ */
87
+ function operation(alias, method, path, exportName, title, description, replaySafety, oauthOnly) {
88
+ return {
89
+ alias,
90
+ description,
91
+ exportName,
92
+ method,
93
+ oauthOnly,
94
+ path,
95
+ replaySafety,
96
+ title,
97
+ };
98
+ }
@@ -0,0 +1,42 @@
1
+ import * as z from "zod";
2
+ import type { KitOperationKey } from "./operation-manifest.js";
3
+ import type { KitOperationInput, KitOperationOutput } from "./types.js";
4
+ export interface KitRuntimeParameter {
5
+ explode: boolean;
6
+ name: string;
7
+ providerName: string;
8
+ style: string;
9
+ }
10
+ /** Frozen runtime description of one public Kit operation. */
11
+ export interface KitRuntimeOperation {
12
+ bodyParameters: string[];
13
+ bodyWireSchema?: Record<string, unknown>;
14
+ inputSchema: Record<string, unknown>;
15
+ method: "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
16
+ outputSchema: Record<string, unknown>;
17
+ outputWireSchema: Record<string, unknown>;
18
+ path: string;
19
+ pathParameters: KitRuntimeParameter[];
20
+ queryParameters: KitRuntimeParameter[];
21
+ responseMode: "json" | "void";
22
+ }
23
+ /**
24
+ * Returns the immutable runtime descriptor for one Kit operation.
25
+ *
26
+ * @param key Public operation name.
27
+ */
28
+ export declare function kitOperation<TKey extends KitOperationKey>(key: TKey): Record<"getCurrentAccount" | "listColors" | "updateColors" | "getCreatorProfile" | "getEmailStats" | "getGrowthStats" | "listBroadcasts" | "createBroadcast" | "listBroadcastStats" | "listBroadcastLinkClicks" | "getBroadcastStats" | "deleteBroadcast" | "getBroadcast" | "updateBroadcast" | "bulkCreateCustomFields" | "bulkUpdateSubscriberCustomFieldValues" | "listCustomFields" | "createCustomField" | "deleteCustomField" | "updateCustomField" | "listEmailTemplates" | "bulkAddSubscribersToForms" | "listForms" | "listFormSubscribers" | "addSubscriberToFormByEmailAddress" | "addSubscriberToForm" | "listPosts" | "getPost" | "listPurchases" | "createPurchase" | "getPurchase" | "listSegments" | "listSequenceEmails" | "createSequenceEmail" | "deleteSequenceEmail" | "getSequenceEmail" | "updateSequenceEmail" | "listSequences" | "createSequence" | "deleteSequence" | "getSequence" | "updateSequence" | "listSequenceSubscribers" | "addSubscriberToSequenceByEmailAddress" | "addSubscriberToSequence" | "listSnippets" | "createSnippet" | "getSnippet" | "updateSnippet" | "bulkCreateSubscribers" | "listSubscribers" | "createSubscriber" | "filterSubscribers" | "getSubscriber" | "updateSubscriber" | "unsubscribeSubscriber" | "deleteSubscriberLocation" | "updateSubscriberLocation" | "pinSubscriberLocation" | "getSubscriberStats" | "listSubscriberTags" | "bulkDeleteTags" | "bulkCreateTags" | "bulkTagSubscribers" | "listTags" | "createTag" | "updateTag" | "listTagSubscribers" | "tagSubscriberByEmailAddress" | "removeTagFromSubscriber" | "tagSubscriber", KitRuntimeOperation>[TKey];
29
+ /**
30
+ * Validates flattened public input for one Kit operation.
31
+ *
32
+ * @param key Public operation name.
33
+ */
34
+ export declare function kitOperationInputSchema<TKey extends KitOperationKey>(key: TKey): z.ZodType<KitOperationInput<TKey>>;
35
+ /**
36
+ * Validates a public successful response for one Kit operation.
37
+ *
38
+ * @param key Public operation name.
39
+ */
40
+ export declare function kitOperationOutputSchema<TKey extends KitOperationKey>(key: TKey): z.ZodType<KitOperationOutput<TKey>>;
41
+ /** Provider-native component schemas used for schema-guided key mapping. */
42
+ export declare const KIT_WIRE_DEFINITIONS: Record<string, Record<string, unknown>>;
@@ -0,0 +1,43 @@
1
+ /* oxlint-disable typescript/no-unsafe-type-assertion -- Generated operation keys index a frozen external contract. */
2
+ import { Validator } from "@cfworker/json-schema";
3
+ import * as z from "zod";
4
+ import { KIT_OPENAPI_DATA } from "./openapi-operations.generated";
5
+ /** Runtime Kit contract narrowed once from the opaque generated payload. */
6
+ const operationData = KIT_OPENAPI_DATA;
7
+ const OPERATIONS = operationData.operations;
8
+ const VALIDATOR = new Validator({
9
+ $defs: operationData.definitions,
10
+ $schema: "https://json-schema.org/draft/2020-12/schema",
11
+ additionalProperties: false,
12
+ properties: Object.fromEntries(Object.entries(OPERATIONS).flatMap(([key, operation]) => [
13
+ [`${key}:input`, operation.inputSchema],
14
+ [`${key}:output`, operation.outputSchema],
15
+ ])),
16
+ type: "object",
17
+ }, "2020-12");
18
+ /**
19
+ * Returns the immutable runtime descriptor for one Kit operation.
20
+ *
21
+ * @param key Public operation name.
22
+ */
23
+ export function kitOperation(key) {
24
+ return OPERATIONS[key];
25
+ }
26
+ /**
27
+ * Validates flattened public input for one Kit operation.
28
+ *
29
+ * @param key Public operation name.
30
+ */
31
+ export function kitOperationInputSchema(key) {
32
+ return z.custom((value) => VALIDATOR.validate({ [`${key}:input`]: value }).valid, { message: `Input does not match Kit operation ${key}.` });
33
+ }
34
+ /**
35
+ * Validates a public successful response for one Kit operation.
36
+ *
37
+ * @param key Public operation name.
38
+ */
39
+ export function kitOperationOutputSchema(key) {
40
+ return z.custom((value) => VALIDATOR.validate({ [`${key}:output`]: value }).valid, { message: `Output does not match Kit operation ${key}.` });
41
+ }
42
+ /** Provider-native component schemas used for schema-guided key mapping. */
43
+ export const KIT_WIRE_DEFINITIONS = operationData.wireDefinitions;
@@ -0,0 +1,41 @@
1
+ import type { Encodable } from "@automate.ax/codec";
2
+ import type { KitOperationMap } from "./openapi-types.generated";
3
+ import type { KitOperationKey } from "./operation-manifest.js";
4
+ type Operation<TKey extends KitOperationKey> = TKey extends keyof KitOperationMap ? KitOperationMap[TKey] : never;
5
+ /** Converts absent generated operation sections into intersection identities. */
6
+ type InputPart<TValue> = [NonNullable<TValue>] extends [never] ? unknown : NonNullable<TValue>;
7
+ type Parameters<TOperation, TLocation extends string> = TOperation extends {
8
+ parameters?: infer TParameters;
9
+ } ? TLocation extends keyof NonNullable<TParameters> ? InputPart<NonNullable<TParameters>[TLocation]> : unknown : unknown;
10
+ /** Extracts the JSON request body from one generated operation. */
11
+ type JsonBody<TOperation> = TOperation extends {
12
+ requestBody?: infer TBody;
13
+ } ? [NonNullable<TBody>] extends [never] ? unknown : NonNullable<TBody> extends {
14
+ content: infer TContent;
15
+ } ? "application/json" extends keyof TContent ? TContent["application/json"] : unknown : unknown : unknown;
16
+ /** Extracts the JSON response body from one generated response. */
17
+ type JsonResponse<TResponse> = TResponse extends {
18
+ content: infer TContent;
19
+ } ? "application/json" extends keyof TContent ? TContent["application/json"] : object : object;
20
+ /** Extracts the union of successful generated operation responses. */
21
+ type SuccessResponse<TOperation> = TOperation extends {
22
+ responses: infer TResponses;
23
+ } ? JsonResponse<TResponses[Extract<keyof TResponses, 200 | 201 | 202 | 203 | 204>]> : never;
24
+ /** Materializes an intersection as one readable object type. */
25
+ type Simplify<TValue> = {
26
+ [TKey in keyof TValue]: TValue[TKey];
27
+ } & {};
28
+ type EncodableValue<TValue> = unknown extends TValue ? Encodable : TValue extends undefined | null | boolean | number | string ? TValue : TValue extends readonly (infer TItem)[] ? EncodableValue<TItem>[] : TValue extends object ? keyof TValue extends never ? Record<string, Encodable> : {
29
+ [TKey in keyof TValue]: EncodableValue<TValue[TKey]>;
30
+ } : never;
31
+ /** Flattens one generated operation's path, query, and body fields. */
32
+ type RawKitOperationInput<TKey extends KitOperationKey> = Simplify<Parameters<Operation<TKey>, "path"> & Parameters<Operation<TKey>, "query"> & JsonBody<Operation<TKey>>>;
33
+ /** Preserves operation unions and rejects fields on truly empty inputs. */
34
+ type PublicInput<TValue> = TValue extends unknown ? keyof TValue extends never ? Record<string, never> : {
35
+ [TField in keyof TValue]: EncodableValue<TValue[TField]>;
36
+ } : never;
37
+ /** Flattened camelCase input for one frozen Kit V4 operation. */
38
+ export type KitOperationInput<TKey extends KitOperationKey> = PublicInput<RawKitOperationInput<TKey>>;
39
+ /** CamelCase successful response for one frozen Kit V4 operation. */
40
+ export type KitOperationOutput<TKey extends KitOperationKey> = EncodableValue<SuccessResponse<Operation<TKey>>>;
41
+ export {};
@@ -0,0 +1 @@
1
+ export {};