Skip to content

Credits

Usage credit benefit schema and validated constructor; construction does not credit a balance.

const Credits: Schema.Union<readonly [Schema.Struct<{
unit: Schema.brand<Schema.String, "UsageUnitKey">;
quantity: Schema.brand<Schema.BigInt, "UsageCreditQuantity">;
expiry: Schema.Literal<"never">;
type: Schema.tag<"usage_credits">;
}>]> & {
discriminants: readonly ["usage_credits"];
cases: {
usage_credits: Schema.Struct<{
unit: Schema.brand<Schema.String, "UsageUnitKey">;
quantity: Schema.brand<Schema.BigInt, "UsageCreditQuantity">;
expiry: Schema.Literal<"never">;
type: Schema.tag<"usage_credits">;
}>;
};
isAnyOf: <Keys>(keys) => (value) => value is Extract<{ unit: string & any; quantity: bigint & any; expiry: "never"; type: "usage_credits" }, { type: Keys }>;
guards: {
usage_credits: (u) => u is { unit: string & any; quantity: bigint & any; expiry: "never"; type: "usage_credits" };
};
match: {
<Cases> (value, cases): Cases[keyof Cases] extends (value) => R ? any : never;
<Cases> (cases): (value) => Cases[keyof Cases] extends (value) => R ? any : never;
};
} & {
pack: (input) => Effect.Effect<typeof CreditBenefit.Type, Schema.SchemaError>;
};
readonly discriminants: readonly ["usage_credits"];
readonly cases: {
usage_credits: Schema.Struct<{
unit: Schema.brand<Schema.String, "UsageUnitKey">;
quantity: Schema.brand<Schema.BigInt, "UsageCreditQuantity">;
expiry: Schema.Literal<"never">;
type: Schema.tag<"usage_credits">;
}>;
};
usage_credits: Schema.Struct<{
unit: Schema.brand<Schema.String, "UsageUnitKey">;
quantity: Schema.brand<Schema.BigInt, "UsageCreditQuantity">;
expiry: Schema.Literal<"never">;
type: Schema.tag<"usage_credits">;
}>;
readonly isAnyOf: <Keys>(keys) => (value) => value is Extract<{ unit: string & any; quantity: bigint & any; expiry: "never"; type: "usage_credits" }, { type: Keys }>;

Keys

readonly Keys[]

(value) => value is Extract<{ unit: string & any; quantity: bigint & any; expiry: "never"; type: "usage_credits" }, { type: Keys }>

readonly guards: {
usage_credits: (u) => u is { unit: string & any; quantity: bigint & any; expiry: "never"; type: "usage_credits" };
};
usage_credits: (u) => u is { unit: string & any; quantity: bigint & any; expiry: "never"; type: "usage_credits" };

unknown

u is { unit: string & any; quantity: bigint & any; expiry: "never"; type: "usage_credits" }

readonly match: {
<Cases> (value, cases): Cases[keyof Cases] extends (value) => R ? any : never;
<Cases> (cases): (value) => Cases[keyof Cases] extends (value) => R ? any : never;
};
<Cases>(value, cases): Cases[keyof Cases] extends (value) => R ? any : never;

Cases extends { [key: string]: (value) => any; }

string & any

bigint & any

"never"

"usage_credits"

Cases

Cases[keyof Cases] extends (value) => R ? any : never

<Cases>(cases): (value) => Cases[keyof Cases] extends (value) => R ? any : never;

Cases extends { [key: string]: (value) => any; }

Cases

(value) => Cases[keyof Cases] extends (value) => R ? any : never

pack: (input) => Effect.Effect<typeof CreditBenefit.Type, Schema.SchemaError>;

Parses a non-expiring usage credit pack without fixed wire-format fields.

Omit<typeof CreditBenefit.Encoded, "type" | "expiry">

Effect.Effect<typeof CreditBenefit.Type, Schema.SchemaError>