import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Address, Address$Outbound } from "./address.js";
import { CustomerStateBenefitGrant, CustomerStateBenefitGrant$Outbound } from "./customerstatebenefitgrant.js";
import { CustomerStateMeter, CustomerStateMeter$Outbound } from "./customerstatemeter.js";
import { CustomerStateSubscription, CustomerStateSubscription$Outbound } from "./customerstatesubscription.js";
import { MetadataOutputType, MetadataOutputType$Outbound } from "./metadataoutputtype.js";
import { TaxIDFormat } from "./taxidformat.js";
export type CustomerStateTeamTaxId = string | TaxIDFormat;
/**
 * A team customer along with additional state information:
 *
 * @remarks
 *
 * * Active subscriptions
 * * Granted benefits
 * * Active meters
 */
export type CustomerStateTeam = {
    /**
     * The ID of the customer.
     */
    id: string;
    /**
     * Creation timestamp of the object.
     */
    createdAt: Date;
    /**
     * Last modification timestamp of the object.
     */
    modifiedAt: Date | null;
    metadata: {
        [k: string]: MetadataOutputType;
    };
    /**
     * The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.
     */
    externalId?: string | null | undefined;
    /**
     * The email address of the customer. This must be unique within the organization.
     */
    email?: string | null | undefined;
    /**
     * Whether the customer email address is verified. The address is automatically verified when the customer accesses the customer portal using their email address.
     */
    emailVerified: boolean;
    /**
     * The type of customer. Team customers can have multiple members.
     */
    type: "team";
    /**
     * The name of the customer.
     */
    name: string | null;
    /**
     * The name that should appear on the customer's invoices. Falls back to the customer name when not explicitly set.
     */
    billingName: string | null;
    billingAddress: Address | null;
    taxId: Array<string | TaxIDFormat | null> | null;
    locale?: string | null | undefined;
    /**
     * The ID of the organization owning the customer.
     */
    organizationId: string;
    /**
     * The ID of the customer's default payment method, if any. Use the payment methods endpoint to retrieve its details.
     */
    defaultPaymentMethodId?: string | null | undefined;
    /**
     * Timestamp for when the customer was soft deleted.
     */
    deletedAt: Date | null;
    avatarUrl: string | null;
    /**
     * The customer's active subscriptions.
     */
    activeSubscriptions: Array<CustomerStateSubscription>;
    /**
     * The customer's active benefit grants.
     */
    grantedBenefits: Array<CustomerStateBenefitGrant>;
    /**
     * The customer's active meters.
     */
    activeMeters: Array<CustomerStateMeter>;
};
/** @internal */
export declare const CustomerStateTeamTaxId$inboundSchema: z.ZodMiniType<CustomerStateTeamTaxId, unknown>;
/** @internal */
export type CustomerStateTeamTaxId$Outbound = string | string;
/** @internal */
export declare const CustomerStateTeamTaxId$outboundSchema: z.ZodMiniType<CustomerStateTeamTaxId$Outbound, CustomerStateTeamTaxId>;
export declare function customerStateTeamTaxIdToJSON(customerStateTeamTaxId: CustomerStateTeamTaxId): string;
export declare function customerStateTeamTaxIdFromJSON(jsonString: string): SafeParseResult<CustomerStateTeamTaxId, SDKValidationError>;
/** @internal */
export declare const CustomerStateTeam$inboundSchema: z.ZodMiniType<CustomerStateTeam, unknown>;
/** @internal */
export type CustomerStateTeam$Outbound = {
    id: string;
    created_at: string;
    modified_at: string | null;
    metadata: {
        [k: string]: MetadataOutputType$Outbound;
    };
    external_id?: string | null | undefined;
    email?: string | null | undefined;
    email_verified: boolean;
    type: "team";
    name: string | null;
    billing_name: string | null;
    billing_address: Address$Outbound | null;
    tax_id: Array<string | string | null> | null;
    locale?: string | null | undefined;
    organization_id: string;
    default_payment_method_id?: string | null | undefined;
    deleted_at: string | null;
    avatar_url: string | null;
    active_subscriptions: Array<CustomerStateSubscription$Outbound>;
    granted_benefits: Array<CustomerStateBenefitGrant$Outbound>;
    active_meters: Array<CustomerStateMeter$Outbound>;
};
/** @internal */
export declare const CustomerStateTeam$outboundSchema: z.ZodMiniType<CustomerStateTeam$Outbound, CustomerStateTeam>;
export declare function customerStateTeamToJSON(customerStateTeam: CustomerStateTeam): string;
export declare function customerStateTeamFromJSON(jsonString: string): SafeParseResult<CustomerStateTeam, SDKValidationError>;
//# sourceMappingURL=customerstateteam.d.ts.map