import * as z from "zod/v3"; import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * The payment processor via which the sale was made. */ export declare const PaymentProcessor: { readonly Stripe: "stripe"; readonly Shopify: "shopify"; readonly Polar: "polar"; readonly Paddle: "paddle"; readonly Revenuecat: "revenuecat"; readonly Custom: "custom"; }; /** * The payment processor via which the sale was made. */ export type PaymentProcessor = ClosedEnum; export type TrackSaleRequestBody = { /** * The unique ID of the customer in your system. Will be used to identify and attribute all future events to this customer. */ customerExternalId: string; /** * The amount of the sale in cents (for all two-decimal currencies). If the sale is in a zero-decimal currency, pass the full integer value (e.g. `1580` JPY). Learn more: https://d.to/currency */ amount: number; /** * The currency of the sale. Accepts ISO 4217 currency codes. Sales will be automatically converted and stored as USD at the latest exchange rates. Learn more: https://d.to/currency */ currency?: string | undefined; /** * The name of the sale event. Recommended format: `Invoice paid` or `Subscription created`. */ eventName?: string | undefined; /** * The payment processor via which the sale was made. */ paymentProcessor?: PaymentProcessor | undefined; /** * The invoice ID of the sale. Can be used as a idempotency key – only one sale event can be recorded for a given invoice ID. */ invoiceId?: string | null | undefined; /** * Additional metadata to be stored with the sale event. Max 10,000 characters when stringified. */ metadata?: { [k: string]: any; } | null | undefined; /** * The name of the lead event that occurred before the sale (case-sensitive). This is used to associate the sale event with a particular lead event (instead of the latest lead event for a link-customer combination, which is the default behavior). For direct sale tracking, this field can also be used to specify the lead event name. */ leadEventName?: string | null | undefined; /** * [For direct sale tracking]: The unique ID of the click that the sale conversion event is attributed to. You can read this value from `dub_id` cookie. */ clickId?: string | null | undefined; /** * [For direct sale tracking]: The name of the customer. If not passed, a random name will be generated (e.g. “Big Red Caribou”). */ customerName?: string | null | undefined; /** * [For direct sale tracking]: The email address of the customer. */ customerEmail?: string | null | undefined; /** * [For direct sale tracking]: The avatar URL of the customer. */ customerAvatar?: string | null | undefined; }; export type TrackSaleCustomer = { id: string; name: string | null; email: string | null; avatar: string | null; externalId: string | null; }; export type Sale = { amount: number; currency: string; paymentProcessor: string; invoiceId: string | null; metadata: { [k: string]: any; } | null; }; /** * A sale was tracked. */ export type TrackSaleResponseBody = { eventName: string; customer: TrackSaleCustomer | null; sale: Sale | null; }; /** @internal */ export declare const PaymentProcessor$outboundSchema: z.ZodNativeEnum; /** @internal */ export type TrackSaleRequestBody$Outbound = { customerExternalId: string; amount: number; currency: string; eventName: string; paymentProcessor: string; invoiceId: string | null; metadata?: { [k: string]: any; } | null | undefined; leadEventName: string | null; clickId?: string | null | undefined; customerName: string | null; customerEmail: string | null; customerAvatar: string | null; }; /** @internal */ export declare const TrackSaleRequestBody$outboundSchema: z.ZodType; export declare function trackSaleRequestBodyToJSON(trackSaleRequestBody: TrackSaleRequestBody): string; /** @internal */ export declare const TrackSaleCustomer$inboundSchema: z.ZodType; export declare function trackSaleCustomerFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const Sale$inboundSchema: z.ZodType; export declare function saleFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const TrackSaleResponseBody$inboundSchema: z.ZodType; export declare function trackSaleResponseBodyFromJSON(jsonString: string): SafeParseResult; //# sourceMappingURL=tracksale.d.ts.map