import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Member, Member$Outbound } from "./member.js";
import { SeatStatus } from "./seatstatus.js";
export type CustomerSeat = {
    /**
     * Creation timestamp of the object.
     */
    createdAt: Date;
    /**
     * Last modification timestamp of the object.
     */
    modifiedAt: Date | null;
    /**
     * The seat ID
     */
    id: string;
    /**
     * The subscription ID (for recurring seats)
     */
    subscriptionId: string | null;
    /**
     * The order ID (for one-time purchase seats)
     */
    orderId: string | null;
    status: SeatStatus;
    /**
     * The customer ID. When member_model_enabled is true, this is the billing customer (purchaser). When false, this is the seat member customer.
     */
    customerId: string | null;
    /**
     * The member ID of the seat occupant
     */
    memberId: string | null;
    /**
     * The member associated with this seat
     */
    member: Member | null;
    /**
     * Email of the seat member (set when member_model_enabled is true)
     */
    email: string | null;
    /**
     * The assigned customer email
     */
    customerEmail: string | null;
    /**
     * When the invitation token expires
     */
    invitationTokenExpiresAt: Date | null;
    /**
     * When the seat was claimed
     */
    claimedAt: Date | null;
    /**
     * When the seat was revoked
     */
    revokedAt: Date | null;
    /**
     * Additional metadata for the seat
     */
    seatMetadata: {
        [k: string]: any;
    } | null;
};
/** @internal */
export declare const CustomerSeat$inboundSchema: z.ZodMiniType<CustomerSeat, unknown>;
/** @internal */
export type CustomerSeat$Outbound = {
    created_at: string;
    modified_at: string | null;
    id: string;
    subscription_id: string | null;
    order_id: string | null;
    status: string;
    customer_id: string | null;
    member_id: string | null;
    member: Member$Outbound | null;
    email: string | null;
    customer_email: string | null;
    invitation_token_expires_at: string | null;
    claimed_at: string | null;
    revoked_at: string | null;
    seat_metadata: {
        [k: string]: any;
    } | null;
};
/** @internal */
export declare const CustomerSeat$outboundSchema: z.ZodMiniType<CustomerSeat$Outbound, CustomerSeat>;
export declare function customerSeatToJSON(customerSeat: CustomerSeat): string;
export declare function customerSeatFromJSON(jsonString: string): SafeParseResult<CustomerSeat, SDKValidationError>;
//# sourceMappingURL=customerseat.d.ts.map