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";
import { Currency } from "./currency.js";
/**
 * The type of bank account.
 */
export declare const BankAccount2AccountType: {
    readonly BankAccount: "bank_account";
    readonly CreditCard: "credit_card";
    readonly Other: "other";
};
/**
 * The type of bank account.
 */
export type BankAccount2AccountType = ClosedEnum<typeof BankAccount2AccountType>;
export type BankAccount2 = {
    /**
     * The name of the bank or financial institution
     */
    bankName?: string | null | undefined;
    /**
     * The bank account number
     */
    accountNumber?: string | null | undefined;
    /**
     * The name of the bank account
     */
    accountName?: string | null | undefined;
    /**
     * The type of bank account.
     */
    accountType?: BankAccount2AccountType | null | undefined;
    /**
     * International Bank Account Number
     */
    iban?: string | null | undefined;
    /**
     * Bank Identifier Code / SWIFT Code
     */
    bic?: string | null | undefined;
    /**
     * Bank routing number (US)
     */
    routingNumber?: string | null | undefined;
    /**
     * Bank State Branch number (Australia/New Zealand)
     */
    bsbNumber?: string | null | undefined;
    /**
     * Bank branch identifier
     */
    branchIdentifier?: string | null | undefined;
    /**
     * Bank code assigned by central bank
     */
    bankCode?: string | null | undefined;
    /**
     * Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
     */
    currency?: Currency | null | undefined;
    /**
     * Country code according to ISO 3166-1 alpha-2.
     */
    country?: string | null | undefined;
};
/** @internal */
export declare const BankAccount2AccountType$inboundSchema: z.ZodNativeEnum<typeof BankAccount2AccountType>;
/** @internal */
export declare const BankAccount2AccountType$outboundSchema: z.ZodNativeEnum<typeof BankAccount2AccountType>;
/** @internal */
export declare const BankAccount2$inboundSchema: z.ZodType<BankAccount2, z.ZodTypeDef, unknown>;
/** @internal */
export type BankAccount2$Outbound = {
    bank_name?: string | null | undefined;
    account_number?: string | null | undefined;
    account_name?: string | null | undefined;
    account_type?: string | null | undefined;
    iban?: string | null | undefined;
    bic?: string | null | undefined;
    routing_number?: string | null | undefined;
    bsb_number?: string | null | undefined;
    branch_identifier?: string | null | undefined;
    bank_code?: string | null | undefined;
    currency?: string | null | undefined;
    country?: string | null | undefined;
};
/** @internal */
export declare const BankAccount2$outboundSchema: z.ZodType<BankAccount2$Outbound, z.ZodTypeDef, BankAccount2>;
export declare function bankAccount2ToJSON(bankAccount2: BankAccount2): string;
export declare function bankAccount2FromJSON(jsonString: string): SafeParseResult<BankAccount2, SDKValidationError>;
//# sourceMappingURL=bankaccount2.d.ts.map