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";
import { CustomField, CustomField$Outbound } from "./customfield.js";
/**
 * Type of the bank account.
 */
export declare const BankAccountType: {
    readonly Bank: "bank";
    readonly CreditCard: "credit_card";
};
/**
 * Type of the bank account.
 */
export type BankAccountType = ClosedEnum<typeof BankAccountType>;
/**
 * Current status of the bank feed.
 */
export declare const FeedStatus: {
    readonly Pending: "pending";
    readonly Rejected: "rejected";
};
/**
 * Current status of the bank feed.
 */
export type FeedStatus = ClosedEnum<typeof FeedStatus>;
export type BankFeedAccount = {
    /**
     * A unique identifier for an object.
     */
    id: string;
    /**
     * Type of the bank account.
     */
    bankAccountType?: BankAccountType | undefined;
    /**
     * The source account's unique identifier.
     */
    sourceAccountId?: string | undefined;
    /**
     * The target account's unique identifier in the accounting connector.
     */
    targetAccountId?: string | undefined;
    /**
     * Name associated with the target account.
     */
    targetAccountName?: string | undefined;
    /**
     * Account number of the destination bank account.
     */
    targetAccountNumber?: string | 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;
    /**
     * Current status of the bank feed.
     */
    feedStatus?: FeedStatus | undefined;
    /**
     * Country code according to ISO 3166-1 alpha-2.
     */
    country?: string | null | undefined;
    customFields?: Array<CustomField> | undefined;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     */
    customMappings?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The date and time when the object was created.
     */
    createdAt?: Date | null | undefined;
    /**
     * The date and time when the object was last updated.
     */
    updatedAt?: Date | null | undefined;
    /**
     * The user who last updated the object.
     */
    updatedBy?: string | null | undefined;
    /**
     * The user who created the object.
     */
    createdBy?: string | null | undefined;
};
export type BankFeedAccountInput = {
    /**
     * Type of the bank account.
     */
    bankAccountType?: BankAccountType | undefined;
    /**
     * The source account's unique identifier.
     */
    sourceAccountId?: string | undefined;
    /**
     * The target account's unique identifier in the accounting connector.
     */
    targetAccountId?: string | undefined;
    /**
     * Name associated with the target account.
     */
    targetAccountName?: string | undefined;
    /**
     * Account number of the destination bank account.
     */
    targetAccountNumber?: string | 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;
    /**
     * Current status of the bank feed.
     */
    feedStatus?: FeedStatus | undefined;
    /**
     * Country code according to ISO 3166-1 alpha-2.
     */
    country?: string | null | undefined;
    customFields?: Array<CustomField> | undefined;
};
/** @internal */
export declare const BankAccountType$inboundSchema: z.ZodNativeEnum<typeof BankAccountType>;
/** @internal */
export declare const BankAccountType$outboundSchema: z.ZodNativeEnum<typeof BankAccountType>;
/** @internal */
export declare const FeedStatus$inboundSchema: z.ZodNativeEnum<typeof FeedStatus>;
/** @internal */
export declare const FeedStatus$outboundSchema: z.ZodNativeEnum<typeof FeedStatus>;
/** @internal */
export declare const BankFeedAccount$inboundSchema: z.ZodType<BankFeedAccount, z.ZodTypeDef, unknown>;
export declare function bankFeedAccountFromJSON(jsonString: string): SafeParseResult<BankFeedAccount, SDKValidationError>;
/** @internal */
export type BankFeedAccountInput$Outbound = {
    bank_account_type?: string | undefined;
    source_account_id?: string | undefined;
    target_account_id?: string | undefined;
    target_account_name?: string | undefined;
    target_account_number?: string | undefined;
    currency?: string | null | undefined;
    feed_status?: string | undefined;
    country?: string | null | undefined;
    custom_fields?: Array<CustomField$Outbound> | undefined;
};
/** @internal */
export declare const BankFeedAccountInput$outboundSchema: z.ZodType<BankFeedAccountInput$Outbound, z.ZodTypeDef, BankFeedAccountInput>;
export declare function bankFeedAccountInputToJSON(bankFeedAccountInput: BankFeedAccountInput): string;
//# sourceMappingURL=bankfeedaccount.d.ts.map