/**
 * The Plaid API
 * The Plaid REST API. Please see https://plaid.com/docs/api for more details.
 *
 * The version of the OpenAPI document: 2020-09-14_1.617.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { Configuration } from './configuration';
import { AxiosPromise, AxiosInstance } from 'axios';
import { RequestArgs, BaseAPI } from './base';
/**
 * Specifies the use case of the transfer. Required for transfers on an ACH network. For more details, see [ACH SEC codes](https://plaid.com/docs/transfer/creating-transfers/#ach-sec-codes).  Codes supported for credits: `ccd`, `ppd` Codes supported for debits: `ccd`, `tel`, `web`  `\"ccd\"` - Corporate Credit or Debit - fund transfer between two corporate bank accounts  `\"ppd\"` - Prearranged Payment or Deposit - the transfer is part of a pre-existing relationship with a consumer, e.g. bill payment  `\"tel\"` - Telephone-Initiated Entry  `\"web\"` - Internet-Initiated Entry - debits from a consumer’s account where their authorization is obtained over the Internet
 * @export
 * @enum {string}
 */
export declare enum ACHClass {
    Ccd = "ccd",
    Ppd = "ppd",
    Tel = "tel",
    Web = "web"
}
/**
 * Information about the APR on the account.
 * @export
 * @interface APR
 */
export interface APR {
    /**
     * Annual Percentage Rate applied.
     * @type {number}
     * @memberof APR
     */
    apr_percentage: number;
    /**
     * The type of balance to which the APR applies.
     * @type {string}
     * @memberof APR
     */
    apr_type: APRAprTypeEnum;
    /**
     * Amount of money that is subjected to the APR if a balance was carried beyond payment due date. How it is calculated can vary by card issuer. It is often calculated as an average daily balance.
     * @type {number}
     * @memberof APR
     */
    balance_subject_to_apr: number | null;
    /**
     * Amount of money charged due to interest from last statement.
     * @type {number}
     * @memberof APR
     */
    interest_charge_amount: number | null;
}
/**
    * @export
    * @enum {string}
    */
export declare enum APRAprTypeEnum {
    BalanceTransferApr = "balance_transfer_apr",
    CashApr = "cash_apr",
    PurchaseApr = "purchase_apr",
    Special = "special"
}
/**
 * Allow or disallow product access by account. Unlisted (e.g. missing) accounts will be considered `new_accounts`.
 * @export
 * @interface AccountAccess
 */
export interface AccountAccess {
    /**
     * The unique account identifier for this account. This value must match that returned by the data access API for this account.
     * @type {string}
     * @memberof AccountAccess
     */
    unique_id: string;
    /**
     * Allow the application to see this account (and associated details, including balance) in the list of accounts  If unset, defaults to `true`.
     * @type {boolean}
     * @memberof AccountAccess
     */
    authorized?: boolean | null;
    /**
     *
     * @type {AccountProductAccessNullable}
     * @memberof AccountAccess
     */
    account_product_access?: AccountProductAccessNullable | null;
}
/**
 * Asset information about an account
 * @export
 * @interface AccountAssets
 */
export interface AccountAssets {
    /**
     * Plaid’s unique identifier for the account. This value will not change unless Plaid can\'t reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new `account_id` will be assigned to the account.  The `account_id` can also change if the `access_token` is deleted and the same credentials that were used to generate that `access_token` are used to generate a new `access_token` on a later date. In that case, the new `account_id` will be different from the old `account_id`.  If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.  Like all Plaid identifiers, the `account_id` is case sensitive.
     * @type {string}
     * @memberof AccountAssets
     */
    account_id: string;
    /**
     *
     * @type {AssetReportAccountBalance}
     * @memberof AccountAssets
     */
    balances: AssetReportAccountBalance;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number. Note that the mask may be non-unique between an Item\'s accounts, and it may also not match the mask that the bank displays to the user.
     * @type {string}
     * @memberof AccountAssets
     */
    mask: string | null;
    /**
     * The name of the account, either assigned by the user or by the financial institution itself
     * @type {string}
     * @memberof AccountAssets
     */
    name: string;
    /**
     * The official name of the account as given by the financial institution
     * @type {string}
     * @memberof AccountAssets
     */
    official_name: string | null;
    /**
     *
     * @type {AccountType}
     * @memberof AccountAssets
     */
    type: AccountType;
    /**
     *
     * @type {AccountSubtype}
     * @memberof AccountAssets
     */
    subtype: AccountSubtype | null;
    /**
     * The current verification status of an Auth Item initiated through Automated or Manual micro-deposits.  Returned for Auth Items only.  `pending_automatic_verification`: The Item is pending automatic verification  `pending_manual_verification`: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the micro-deposit.  `automatically_verified`: The Item has successfully been automatically verified   `manually_verified`: The Item has successfully been manually verified  `verification_expired`: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link.  `verification_failed`: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link.  `database_matched`: The Item has successfully been verified using Plaid\'s data sources. Note: Database Match is currently a beta feature, please contact your account manager for more information.
     * @type {string}
     * @memberof AccountAssets
     */
    verification_status?: AccountAssetsVerificationStatusEnum;
    /**
     * A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This is currently an opt-in field and only supported for Chase Items.
     * @type {string}
     * @memberof AccountAssets
     */
    persistent_account_id?: string;
    /**
     *
     * @type {AccountHolderCategory}
     * @memberof AccountAssets
     */
    holder_category?: AccountHolderCategory | null;
    /**
     * The duration of transaction history available within this report for this Item, typically defined as the time since the date of the earliest transaction in that account.
     * @type {number}
     * @memberof AccountAssets
     */
    days_available: number;
    /**
     * Transaction history associated with the account.
     * @type {Array<AssetReportTransaction>}
     * @memberof AccountAssets
     */
    transactions: Array<AssetReportTransaction>;
    /**
     *
     * @type {AssetReportInvestments}
     * @memberof AccountAssets
     */
    investments?: AssetReportInvestments;
    /**
     * Data returned by the financial institution about the account owner or owners.For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution. Multiple owners on a single account will be represented in the same `owner` object, not in multiple owner objects within the array. In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29)
     * @type {Array<Owner>}
     * @memberof AccountAssets
     */
    owners: Array<Owner>;
    /**
     *
     * @type {OwnershipType}
     * @memberof AccountAssets
     */
    ownership_type?: OwnershipType | null;
    /**
     * Calculated data about the historical balances on the account.
     * @type {Array<HistoricalBalance>}
     * @memberof AccountAssets
     */
    historical_balances: Array<HistoricalBalance>;
}
/**
    * @export
    * @enum {string}
    */
export declare enum AccountAssetsVerificationStatusEnum {
    AutomaticallyVerified = "automatically_verified",
    PendingAutomaticVerification = "pending_automatic_verification",
    PendingManualVerification = "pending_manual_verification",
    ManuallyVerified = "manually_verified",
    VerificationExpired = "verification_expired",
    VerificationFailed = "verification_failed",
    DatabaseMatched = "database_matched"
}
/**
 * A set of fields describing the balance for an account. Balance information may be cached unless the balance object was returned by `/accounts/balance/get`.
 * @export
 * @interface AccountBalance
 */
export interface AccountBalance {
    /**
     * The amount of funds available to be withdrawn from the account, as determined by the financial institution.  For `credit`-type accounts, the `available` balance typically equals the `limit` less the `current` balance, less any pending outflows plus any pending inflows.  For `depository`-type accounts, the `available` balance typically equals the `current` balance less any pending outflows plus any pending inflows. For `depository`-type accounts, the `available` balance does not include the overdraft limit.  For `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier), the `available` balance is the total cash available to withdraw as presented by the institution.  Note that not all institutions calculate the `available`  balance. In the event that `available` balance is unavailable, Plaid will return an `available` balance value of `null`.  Available balance may be cached and is not guaranteed to be up-to-date in realtime unless the value was returned by `/accounts/balance/get`.  If `current` is `null` this field is guaranteed not to be `null`.
     * @type {number}
     * @memberof AccountBalance
     */
    available: number | null;
    /**
     * The total amount of funds in or owed by the account.  For `credit`-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.  For `loan`-type accounts, the current balance is the principal remaining on the loan, except in the case of student loan accounts at Sallie Mae (`ins_116944`). For Sallie Mae student loans, the account\'s balance includes both principal and any outstanding interest. Similar to `credit`-type accounts, a positive balance is typically expected, while a negative amount indicates the lender owing the account holder.  For `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier), the current balance is the total value of assets as presented by the institution.  Note that balance information may be cached unless the value was returned by `/accounts/balance/get`; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require realtime balance information, use the `available` balance as provided by `/accounts/balance/get`.  When returned by `/accounts/balance/get`, this field may be `null`. When this happens, `available` is guaranteed not to be `null`.
     * @type {number}
     * @memberof AccountBalance
     */
    current: number | null;
    /**
     * For `credit`-type accounts, this represents the credit limit.  For `depository`-type accounts, this represents the pre-arranged overdraft limit, which is common for current (checking) accounts in Europe.  In North America, this field is typically only available for `credit`-type accounts.
     * @type {number}
     * @memberof AccountBalance
     */
    limit: number | null;
    /**
     * The ISO-4217 currency code of the balance. Always null if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof AccountBalance
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the balance. Always null if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
     * @type {string}
     * @memberof AccountBalance
     */
    unofficial_currency_code: string | null;
    /**
     * Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the oldest acceptable balance when making a request to `/accounts/balance/get`.  This field is only used and expected when the institution is `ins_128026` (Capital One) and the Item contains one or more accounts with a non-depository account type, in which case a value must be provided or an `INVALID_REQUEST` error with the code of `INVALID_FIELD` will be returned. For Capital One depository accounts as well as all other account types on all other institutions, this field is ignored. See [account type schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of account types.  If the balance that is pulled is older than the given timestamp for Items with this field required, an `INVALID_REQUEST` error with the code of `LAST_UPDATED_DATETIME_OUT_OF_RANGE` will be returned with the most recent timestamp for the requested account contained in the response.
     * @type {string}
     * @memberof AccountBalance
     */
    last_updated_datetime?: string | null;
}
/**
 * A single account at a financial institution.
 * @export
 * @interface AccountBase
 */
export interface AccountBase {
    /**
     * Plaid’s unique identifier for the account. This value will not change unless Plaid can\'t reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new `account_id` will be assigned to the account.  The `account_id` can also change if the `access_token` is deleted and the same credentials that were used to generate that `access_token` are used to generate a new `access_token` on a later date. In that case, the new `account_id` will be different from the old `account_id`.  If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.  Like all Plaid identifiers, the `account_id` is case sensitive.
     * @type {string}
     * @memberof AccountBase
     */
    account_id: string;
    /**
     *
     * @type {AccountBalance}
     * @memberof AccountBase
     */
    balances: AccountBalance;
    /**
     * The last 2-4 alphanumeric characters of either the account’s displayed mask or the account’s official account number. Note that the mask may be non-unique between an Item’s accounts.
     * @type {string}
     * @memberof AccountBase
     */
    mask: string | null;
    /**
     * The name of the account, either assigned by the user or by the financial institution itself
     * @type {string}
     * @memberof AccountBase
     */
    name: string;
    /**
     * The official name of the account as given by the financial institution
     * @type {string}
     * @memberof AccountBase
     */
    official_name: string | null;
    /**
     *
     * @type {AccountType}
     * @memberof AccountBase
     */
    type: AccountType;
    /**
     *
     * @type {AccountSubtype}
     * @memberof AccountBase
     */
    subtype: AccountSubtype | null;
    /**
     * The current verification status of an Auth Item initiated through micro-deposits or database verification. Returned for Auth Items only.  `pending_automatic_verification`: The Item is pending automatic verification  `pending_manual_verification`: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the micro-deposit.  `automatically_verified`: The Item has successfully been automatically verified   `manually_verified`: The Item has successfully been manually verified  `verification_expired`: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link.  `verification_failed`: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link.  `database_matched`: The Item has successfully been verified using Plaid\'s data sources. Only returned for Auth Items created via Database Match.  `database_insights_pass`: The Item\'s numbers have been verified using Plaid\'s data sources and have strong signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.  `database_insights_pass_with_caution`: The Item\'s numbers have been verified using Plaid\'s data sources and have some signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.  `database_insights_fail`:  The Item\'s numbers have been verified using Plaid\'s data sources and have signal for being invalid and/or have no signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.
     * @type {string}
     * @memberof AccountBase
     */
    verification_status?: AccountBaseVerificationStatusEnum;
    /**
     *
     * @type {AccountVerificationInsights}
     * @memberof AccountBase
     */
    verification_insights?: AccountVerificationInsights;
    /**
     * A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This field is currently supported only for Items at institutions that use Tokenized Account Numbers (i.e., Chase and PNC). Because these accounts have a different account number each time they are linked, this field may be used instead of the account number to uniquely identify an account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud. In Sandbox, this field may be populated for any account; in Production, it will only be populated for accounts at applicable institutions.
     * @type {string}
     * @memberof AccountBase
     */
    persistent_account_id?: string;
    /**
     *
     * @type {AccountHolderCategory}
     * @memberof AccountBase
     */
    holder_category?: AccountHolderCategory | null;
}
/**
    * @export
    * @enum {string}
    */
export declare enum AccountBaseVerificationStatusEnum {
    AutomaticallyVerified = "automatically_verified",
    PendingAutomaticVerification = "pending_automatic_verification",
    PendingManualVerification = "pending_manual_verification",
    ManuallyVerified = "manually_verified",
    VerificationExpired = "verification_expired",
    VerificationFailed = "verification_failed",
    DatabaseMatched = "database_matched",
    DatabaseInsightsPass = "database_insights_pass",
    DatabaseInsightsPassWithCaution = "database_insights_pass_with_caution",
    DatabaseInsightsFail = "database_insights_fail"
}
/**
 * Enumerates the account subtypes that the application wishes for the user to be able to select from. For more details refer to Plaid documentation on account filters.
 * @export
 * @interface AccountFilter
 */
export interface AccountFilter {
    /**
     * A list of account subtypes to be filtered.
     * @type {Array<string>}
     * @memberof AccountFilter
     */
    depository?: Array<string>;
    /**
     * A list of account subtypes to be filtered.
     * @type {Array<string>}
     * @memberof AccountFilter
     */
    credit?: Array<string>;
    /**
     * A list of account subtypes to be filtered.
     * @type {Array<string>}
     * @memberof AccountFilter
     */
    loan?: Array<string>;
    /**
     * A list of account subtypes to be filtered.
     * @type {Array<string>}
     * @memberof AccountFilter
     */
    investment?: Array<string>;
}
/**
 * The `account_filters` specified in the original call to `/link/token/create`.
 * @export
 * @interface AccountFiltersResponse
 */
export interface AccountFiltersResponse {
    /**
     *
     * @type {DepositoryFilter}
     * @memberof AccountFiltersResponse
     */
    depository?: DepositoryFilter;
    /**
     *
     * @type {CreditFilter}
     * @memberof AccountFiltersResponse
     */
    credit?: CreditFilter;
    /**
     *
     * @type {LoanFilter}
     * @memberof AccountFiltersResponse
     */
    loan?: LoanFilter;
    /**
     *
     * @type {InvestmentFilter}
     * @memberof AccountFiltersResponse
     */
    investment?: InvestmentFilter;
}
/**
 * Indicates the account\'s categorization as either a personal or a business account. This field is currently in beta; to request access, contact your account manager.
 * @export
 * @enum {string}
 */
export declare enum AccountHolderCategory {
    Business = "business",
    Personal = "personal",
    Unrecognized = "unrecognized"
}
/**
 * Identity information about an account
 * @export
 * @interface AccountIdentity
 */
export interface AccountIdentity {
    /**
     * Plaid’s unique identifier for the account. This value will not change unless Plaid can\'t reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new `account_id` will be assigned to the account.  The `account_id` can also change if the `access_token` is deleted and the same credentials that were used to generate that `access_token` are used to generate a new `access_token` on a later date. In that case, the new `account_id` will be different from the old `account_id`.  If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.  Like all Plaid identifiers, the `account_id` is case sensitive.
     * @type {string}
     * @memberof AccountIdentity
     */
    account_id: string;
    /**
     *
     * @type {AccountBalance}
     * @memberof AccountIdentity
     */
    balances: AccountBalance;
    /**
     * The last 2-4 alphanumeric characters of either the account’s displayed mask or the account’s official account number. Note that the mask may be non-unique between an Item’s accounts.
     * @type {string}
     * @memberof AccountIdentity
     */
    mask: string | null;
    /**
     * The name of the account, either assigned by the user or by the financial institution itself
     * @type {string}
     * @memberof AccountIdentity
     */
    name: string;
    /**
     * The official name of the account as given by the financial institution
     * @type {string}
     * @memberof AccountIdentity
     */
    official_name: string | null;
    /**
     *
     * @type {AccountType}
     * @memberof AccountIdentity
     */
    type: AccountType;
    /**
     *
     * @type {AccountSubtype}
     * @memberof AccountIdentity
     */
    subtype: AccountSubtype | null;
    /**
     * The current verification status of an Auth Item initiated through micro-deposits or database verification. Returned for Auth Items only.  `pending_automatic_verification`: The Item is pending automatic verification  `pending_manual_verification`: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the micro-deposit.  `automatically_verified`: The Item has successfully been automatically verified   `manually_verified`: The Item has successfully been manually verified  `verification_expired`: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link.  `verification_failed`: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link.  `database_matched`: The Item has successfully been verified using Plaid\'s data sources. Only returned for Auth Items created via Database Match.  `database_insights_pass`: The Item\'s numbers have been verified using Plaid\'s data sources and have strong signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.  `database_insights_pass_with_caution`: The Item\'s numbers have been verified using Plaid\'s data sources and have some signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.  `database_insights_fail`:  The Item\'s numbers have been verified using Plaid\'s data sources and have signal for being invalid and/or have no signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.
     * @type {string}
     * @memberof AccountIdentity
     */
    verification_status?: AccountIdentityVerificationStatusEnum;
    /**
     *
     * @type {AccountVerificationInsights}
     * @memberof AccountIdentity
     */
    verification_insights?: AccountVerificationInsights;
    /**
     * A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This field is currently supported only for Items at institutions that use Tokenized Account Numbers (i.e., Chase and PNC). Because these accounts have a different account number each time they are linked, this field may be used instead of the account number to uniquely identify an account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud. In Sandbox, this field may be populated for any account; in Production, it will only be populated for accounts at applicable institutions.
     * @type {string}
     * @memberof AccountIdentity
     */
    persistent_account_id?: string;
    /**
     *
     * @type {AccountHolderCategory}
     * @memberof AccountIdentity
     */
    holder_category?: AccountHolderCategory | null;
    /**
     * Data returned by the financial institution about the account owner or owners. Only returned by Identity or Assets endpoints. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution; detecting whether the linked account is a business account is not currently supported. Multiple owners on a single account will be represented in the same `owner` object, not in multiple owner objects within the array. In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29)
     * @type {Array<Owner>}
     * @memberof AccountIdentity
     */
    owners: Array<Owner>;
}
/**
    * @export
    * @enum {string}
    */
export declare enum AccountIdentityVerificationStatusEnum {
    AutomaticallyVerified = "automatically_verified",
    PendingAutomaticVerification = "pending_automatic_verification",
    PendingManualVerification = "pending_manual_verification",
    ManuallyVerified = "manually_verified",
    VerificationExpired = "verification_expired",
    VerificationFailed = "verification_failed",
    DatabaseMatched = "database_matched",
    DatabaseInsightsPass = "database_insights_pass",
    DatabaseInsightsPassWithCaution = "database_insights_pass_with_caution",
    DatabaseInsightsFail = "database_insights_fail"
}
/**
 *
 * @export
 * @interface AccountIdentityAllOf
 */
export interface AccountIdentityAllOf {
    /**
     * Data returned by the financial institution about the account owner or owners. Only returned by Identity or Assets endpoints. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution; detecting whether the linked account is a business account is not currently supported. Multiple owners on a single account will be represented in the same `owner` object, not in multiple owner objects within the array. In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29)
     * @type {Array<Owner>}
     * @memberof AccountIdentityAllOf
     */
    owners: Array<Owner>;
}
/**
 * Identity information about an account
 * @export
 * @interface AccountIdentityDocumentUpload
 */
export interface AccountIdentityDocumentUpload {
    /**
     * Plaid’s unique identifier for the account. This value will not change unless Plaid can\'t reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new `account_id` will be assigned to the account.  The `account_id` can also change if the `access_token` is deleted and the same credentials that were used to generate that `access_token` are used to generate a new `access_token` on a later date. In that case, the new `account_id` will be different from the old `account_id`.  If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.  Like all Plaid identifiers, the `account_id` is case sensitive.
     * @type {string}
     * @memberof AccountIdentityDocumentUpload
     */
    account_id: string;
    /**
     *
     * @type {AccountBalance}
     * @memberof AccountIdentityDocumentUpload
     */
    balances: AccountBalance;
    /**
     * The last 2-4 alphanumeric characters of either the account’s displayed mask or the account’s official account number. Note that the mask may be non-unique between an Item’s accounts.
     * @type {string}
     * @memberof AccountIdentityDocumentUpload
     */
    mask: string | null;
    /**
     * The name of the account, either assigned by the user or by the financial institution itself
     * @type {string}
     * @memberof AccountIdentityDocumentUpload
     */
    name: string;
    /**
     * The official name of the account as given by the financial institution
     * @type {string}
     * @memberof AccountIdentityDocumentUpload
     */
    official_name: string | null;
    /**
     *
     * @type {AccountType}
     * @memberof AccountIdentityDocumentUpload
     */
    type: AccountType;
    /**
     *
     * @type {AccountSubtype}
     * @memberof AccountIdentityDocumentUpload
     */
    subtype: AccountSubtype | null;
    /**
     * The current verification status of an Auth Item initiated through micro-deposits or database verification. Returned for Auth Items only.  `pending_automatic_verification`: The Item is pending automatic verification  `pending_manual_verification`: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the micro-deposit.  `automatically_verified`: The Item has successfully been automatically verified   `manually_verified`: The Item has successfully been manually verified  `verification_expired`: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link.  `verification_failed`: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link.  `database_matched`: The Item has successfully been verified using Plaid\'s data sources. Only returned for Auth Items created via Database Match.  `database_insights_pass`: The Item\'s numbers have been verified using Plaid\'s data sources and have strong signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.  `database_insights_pass_with_caution`: The Item\'s numbers have been verified using Plaid\'s data sources and have some signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.  `database_insights_fail`:  The Item\'s numbers have been verified using Plaid\'s data sources and have signal for being invalid and/or have no signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.
     * @type {string}
     * @memberof AccountIdentityDocumentUpload
     */
    verification_status?: AccountIdentityDocumentUploadVerificationStatusEnum;
    /**
     *
     * @type {AccountVerificationInsights}
     * @memberof AccountIdentityDocumentUpload
     */
    verification_insights?: AccountVerificationInsights;
    /**
     * A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This field is currently supported only for Items at institutions that use Tokenized Account Numbers (i.e., Chase and PNC). Because these accounts have a different account number each time they are linked, this field may be used instead of the account number to uniquely identify an account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud. In Sandbox, this field may be populated for any account; in Production, it will only be populated for accounts at applicable institutions.
     * @type {string}
     * @memberof AccountIdentityDocumentUpload
     */
    persistent_account_id?: string;
    /**
     *
     * @type {AccountHolderCategory}
     * @memberof AccountIdentityDocumentUpload
     */
    holder_category?: AccountHolderCategory | null;
    /**
     * Data returned by the financial institution about the account owner or owners. Only returned by Identity or Assets endpoints. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution; detecting whether the linked account is a business account is not currently supported. Multiple owners on a single account will be represented in the same `owner` object, not in multiple owner objects within the array. In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29)
     * @type {Array<Owner>}
     * @memberof AccountIdentityDocumentUpload
     */
    owners: Array<Owner>;
    /**
     * Data about the documents that were uploaded as proof of account ownership.
     * @type {Array<IdentityDocumentUpload>}
     * @memberof AccountIdentityDocumentUpload
     */
    documents?: Array<IdentityDocumentUpload> | null;
}
/**
    * @export
    * @enum {string}
    */
export declare enum AccountIdentityDocumentUploadVerificationStatusEnum {
    AutomaticallyVerified = "automatically_verified",
    PendingAutomaticVerification = "pending_automatic_verification",
    PendingManualVerification = "pending_manual_verification",
    ManuallyVerified = "manually_verified",
    VerificationExpired = "verification_expired",
    VerificationFailed = "verification_failed",
    DatabaseMatched = "database_matched",
    DatabaseInsightsPass = "database_insights_pass",
    DatabaseInsightsPassWithCaution = "database_insights_pass_with_caution",
    DatabaseInsightsFail = "database_insights_fail"
}
/**
 *
 * @export
 * @interface AccountIdentityDocumentUploadAllOf
 */
export interface AccountIdentityDocumentUploadAllOf {
    /**
     * Data returned by the financial institution about the account owner or owners. Only returned by Identity or Assets endpoints. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution; detecting whether the linked account is a business account is not currently supported. Multiple owners on a single account will be represented in the same `owner` object, not in multiple owner objects within the array. In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29)
     * @type {Array<Owner>}
     * @memberof AccountIdentityDocumentUploadAllOf
     */
    owners: Array<Owner>;
    /**
     * Data about the documents that were uploaded as proof of account ownership.
     * @type {Array<IdentityDocumentUpload>}
     * @memberof AccountIdentityDocumentUploadAllOf
     */
    documents?: Array<IdentityDocumentUpload> | null;
}
/**
 * Identity match scores for an account
 * @export
 * @interface AccountIdentityMatchScore
 */
export interface AccountIdentityMatchScore {
    /**
     * Plaid’s unique identifier for the account. This value will not change unless Plaid can\'t reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new `account_id` will be assigned to the account.  The `account_id` can also change if the `access_token` is deleted and the same credentials that were used to generate that `access_token` are used to generate a new `access_token` on a later date. In that case, the new `account_id` will be different from the old `account_id`.  If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.  Like all Plaid identifiers, the `account_id` is case sensitive.
     * @type {string}
     * @memberof AccountIdentityMatchScore
     */
    account_id: string;
    /**
     *
     * @type {AccountBalance}
     * @memberof AccountIdentityMatchScore
     */
    balances: AccountBalance;
    /**
     * The last 2-4 alphanumeric characters of either the account’s displayed mask or the account’s official account number. Note that the mask may be non-unique between an Item’s accounts.
     * @type {string}
     * @memberof AccountIdentityMatchScore
     */
    mask: string | null;
    /**
     * The name of the account, either assigned by the user or by the financial institution itself
     * @type {string}
     * @memberof AccountIdentityMatchScore
     */
    name: string;
    /**
     * The official name of the account as given by the financial institution
     * @type {string}
     * @memberof AccountIdentityMatchScore
     */
    official_name: string | null;
    /**
     *
     * @type {AccountType}
     * @memberof AccountIdentityMatchScore
     */
    type: AccountType;
    /**
     *
     * @type {AccountSubtype}
     * @memberof AccountIdentityMatchScore
     */
    subtype: AccountSubtype | null;
    /**
     * The current verification status of an Auth Item initiated through micro-deposits or database verification. Returned for Auth Items only.  `pending_automatic_verification`: The Item is pending automatic verification  `pending_manual_verification`: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the micro-deposit.  `automatically_verified`: The Item has successfully been automatically verified   `manually_verified`: The Item has successfully been manually verified  `verification_expired`: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link.  `verification_failed`: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link.  `database_matched`: The Item has successfully been verified using Plaid\'s data sources. Only returned for Auth Items created via Database Match.  `database_insights_pass`: The Item\'s numbers have been verified using Plaid\'s data sources and have strong signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.  `database_insights_pass_with_caution`: The Item\'s numbers have been verified using Plaid\'s data sources and have some signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.  `database_insights_fail`:  The Item\'s numbers have been verified using Plaid\'s data sources and have signal for being invalid and/or have no signal for being valid. Only returned for Auth Items created via Database Insights. Note: Database Insights is currently a beta feature, please contact your account manager for more information.
     * @type {string}
     * @memberof AccountIdentityMatchScore
     */
    verification_status?: AccountIdentityMatchScoreVerificationStatusEnum;
    /**
     *
     * @type {AccountVerificationInsights}
     * @memberof AccountIdentityMatchScore
     */
    verification_insights?: AccountVerificationInsights;
    /**
     * A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This field is currently supported only for Items at institutions that use Tokenized Account Numbers (i.e., Chase and PNC). Because these accounts have a different account number each time they are linked, this field may be used instead of the account number to uniquely identify an account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud. In Sandbox, this field may be populated for any account; in Production, it will only be populated for accounts at applicable institutions.
     * @type {string}
     * @memberof AccountIdentityMatchScore
     */
    persistent_account_id?: string;
    /**
     *
     * @type {AccountHolderCategory}
     * @memberof AccountIdentityMatchScore
     */
    holder_category?: AccountHolderCategory | null;
    /**
     *
     * @type {NameMatchScore}
     * @memberof AccountIdentityMatchScore
     */
    legal_name?: NameMatchScore | null;
    /**
     *
     * @type {PhoneNumberMatchScore}
     * @memberof AccountIdentityMatchScore
     */
    phone_number?: PhoneNumberMatchScore | null;
    /**
     *
     * @type {EmailAddressMatchScore}
     * @memberof AccountIdentityMatchScore
     */
    email_address?: EmailAddressMatchScore | null;
    /**
     *
     * @type {AddressMatchScore}
     * @memberof AccountIdentityMatchScore
     */
    address?: AddressMatchScore | null;
}
/**
    * @export
    * @enum {string}
    */
export declare enum AccountIdentityMatchScoreVerificationStatusEnum {
    AutomaticallyVerified = "automatically_verified",
    PendingAutomaticVerification = "pending_automatic_verification",
    PendingManualVerification = "pending_manual_verification",
    ManuallyVerified = "manually_verified",
    VerificationExpired = "verification_expired",
    VerificationFailed = "verification_failed",
    DatabaseMatched = "database_matched",
    DatabaseInsightsPass = "database_insights_pass",
    DatabaseInsightsPassWithCaution = "database_insights_pass_with_caution",
    DatabaseInsightsFail = "database_insights_fail"
}
/**
 *
 * @export
 * @interface AccountIdentityMatchScoreAllOf
 */
export interface AccountIdentityMatchScoreAllOf {
    /**
     *
     * @type {NameMatchScore}
     * @memberof AccountIdentityMatchScoreAllOf
     */
    legal_name?: NameMatchScore | null;
    /**
     *
     * @type {PhoneNumberMatchScore}
     * @memberof AccountIdentityMatchScoreAllOf
     */
    phone_number?: PhoneNumberMatchScore | null;
    /**
     *
     * @type {EmailAddressMatchScore}
     * @memberof AccountIdentityMatchScoreAllOf
     */
    email_address?: EmailAddressMatchScore | null;
    /**
     *
     * @type {AddressMatchScore}
     * @memberof AccountIdentityMatchScoreAllOf
     */
    address?: AddressMatchScore | null;
}
/**
 * Allow the application to access specific products on this account
 * @export
 * @interface AccountProductAccess
 */
export interface AccountProductAccess {
    /**
     * Allow the application to access account data. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof AccountProductAccess
     */
    account_data?: boolean | null;
    /**
     * Allow the application to access bank statements. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof AccountProductAccess
     */
    statements?: boolean | null;
    /**
     * Allow the application to access tax documents. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof AccountProductAccess
     */
    tax_documents?: boolean | null;
}
/**
 * Allow the application to access specific products on this account
 * @export
 * @interface AccountProductAccessNullable
 */
export interface AccountProductAccessNullable {
    /**
     * Allow the application to access account data. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof AccountProductAccessNullable
     */
    account_data?: boolean | null;
    /**
     * Allow the application to access bank statements. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof AccountProductAccessNullable
     */
    statements?: boolean | null;
    /**
     * Allow the application to access tax documents. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof AccountProductAccessNullable
     */
    tax_documents?: boolean | null;
}
/**
 * The application requires that accounts be limited to a specific cardinality. `MULTI_SELECT`: indicates that the user should be allowed to pick multiple accounts. `SINGLE_SELECT`: indicates that the user should be allowed to pick only a single account. `ALL`: indicates that the user must share all of their accounts and should not be given the opportunity to de-select
 * @export
 * @enum {string}
 */
export declare enum AccountSelectionCardinality {
    SingleSelect = "SINGLE_SELECT",
    MultiSelect = "MULTI_SELECT",
    All = "ALL"
}
/**
 * See the [Account type schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full listing of account types and corresponding subtypes.
 * @export
 * @enum {string}
 */
export declare enum AccountSubtype {
    _401a = "401a",
    _401k = "401k",
    _403B = "403B",
    _457b = "457b",
    _529 = "529",
    Auto = "auto",
    Brokerage = "brokerage",
    Business = "business",
    CashIsa = "cash isa",
    CashManagement = "cash management",
    Cd = "cd",
    Checking = "checking",
    Commercial = "commercial",
    Construction = "construction",
    Consumer = "consumer",
    CreditCard = "credit card",
    CryptoExchange = "crypto exchange",
    Ebt = "ebt",
    EducationSavingsAccount = "education savings account",
    FixedAnnuity = "fixed annuity",
    Gic = "gic",
    HealthReimbursementArrangement = "health reimbursement arrangement",
    HomeEquity = "home equity",
    Hsa = "hsa",
    Isa = "isa",
    Ira = "ira",
    Keogh = "keogh",
    Lif = "lif",
    LifeInsurance = "life insurance",
    LineOfCredit = "line of credit",
    Lira = "lira",
    Loan = "loan",
    Lrif = "lrif",
    Lrsp = "lrsp",
    MoneyMarket = "money market",
    Mortgage = "mortgage",
    MutualFund = "mutual fund",
    NonCustodialWallet = "non-custodial wallet",
    NonTaxableBrokerageAccount = "non-taxable brokerage account",
    Other = "other",
    OtherInsurance = "other insurance",
    OtherAnnuity = "other annuity",
    Overdraft = "overdraft",
    Paypal = "paypal",
    Payroll = "payroll",
    Pension = "pension",
    Prepaid = "prepaid",
    Prif = "prif",
    ProfitSharingPlan = "profit sharing plan",
    Rdsp = "rdsp",
    Resp = "resp",
    Retirement = "retirement",
    Rlif = "rlif",
    Roth = "roth",
    Roth401k = "roth 401k",
    Rrif = "rrif",
    Rrsp = "rrsp",
    Sarsep = "sarsep",
    Savings = "savings",
    SepIra = "sep ira",
    SimpleIra = "simple ira",
    Sipp = "sipp",
    StockPlan = "stock plan",
    Student = "student",
    ThriftSavingsPlan = "thrift savings plan",
    Tfsa = "tfsa",
    Trust = "trust",
    Ugma = "ugma",
    Utma = "utma",
    VariableAnnuity = "variable annuity"
}
/**
 * `investment:` Investment account. In API versions 2018-05-22 and earlier, this type is called `brokerage` instead.  `credit:` Credit card  `depository:` Depository account  `loan:` Loan account  `other:` Non-specified account type  See the [Account type schema](https://plaid.com/docs/api/accounts#account-type-schema) for a full listing of account types and corresponding subtypes.
 * @export
 * @enum {string}
 */
export declare enum AccountType {
    Investment = "investment",
    Credit = "credit",
    Depository = "depository",
    Loan = "loan",
    Brokerage = "brokerage",
    Other = "other"
}
/**
 * Insights from performing database verification for the account. Only returned for Auth Items created via Database Insights.
 * @export
 * @interface AccountVerificationInsights
 */
export interface AccountVerificationInsights {
    /**
     *
     * @type {AccountVerificationInsightsNetworkStatus}
     * @memberof AccountVerificationInsights
     */
    network_status: AccountVerificationInsightsNetworkStatus;
    /**
     *
     * @type {AccountVerificationInsightsPreviousReturns}
     * @memberof AccountVerificationInsights
     */
    previous_returns?: AccountVerificationInsightsPreviousReturns;
    /**
     *
     * @type {AccountVerificationInsightsAccountNumberFormat}
     * @memberof AccountVerificationInsights
     */
    account_number_format: AccountVerificationInsightsAccountNumberFormat;
}
/**
 * Indicator of account number format validity for institution.  `valid`: indicates that the account number has a correct format for the institution.  `invalid`: indicates that the account number has an incorrect format for the institution.  `unknown`: indicates that there was not enough information to determine whether the format is correct for the institution.
 * @export
 * @enum {string}
 */
export declare enum AccountVerificationInsightsAccountNumberFormat {
    Valid = "valid",
    Invalid = "invalid",
    Unknown = "unknown"
}
/**
 * Status information about the account and routing number in the Plaid network.
 * @export
 * @interface AccountVerificationInsightsNetworkStatus
 */
export interface AccountVerificationInsightsNetworkStatus {
    /**
     * Indicates whether we found at least one matching account for the ACH account and routing number.
     * @type {boolean}
     * @memberof AccountVerificationInsightsNetworkStatus
     */
    has_numbers_match: boolean;
    /**
     * Indicates if at least one matching account for the ACH account and routing number is already verified.
     * @type {boolean}
     * @memberof AccountVerificationInsightsNetworkStatus
     */
    is_numbers_match_verified: boolean;
}
/**
 * Information about known ACH returns for the account and routing number.
 * @export
 * @interface AccountVerificationInsightsPreviousReturns
 */
export interface AccountVerificationInsightsPreviousReturns {
    /**
     * Indicates whether Plaid\'s data sources include a known administrative ACH return for account and routing number.
     * @type {boolean}
     * @memberof AccountVerificationInsightsPreviousReturns
     */
    has_previous_administrative_return: boolean;
}
/**
 * AccountsBalanceGetRequest defines the request schema for `/accounts/balance/get`
 * @export
 * @interface AccountsBalanceGetRequest
 */
export interface AccountsBalanceGetRequest {
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof AccountsBalanceGetRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AccountsBalanceGetRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AccountsBalanceGetRequest
     */
    client_id?: string;
    /**
     *
     * @type {AccountsBalanceGetRequestOptions}
     * @memberof AccountsBalanceGetRequest
     */
    options?: AccountsBalanceGetRequestOptions;
    /**
     *
     * @type {AccountsBalanceGetRequestPaymentDetails}
     * @memberof AccountsBalanceGetRequest
     */
    payment_details?: AccountsBalanceGetRequestPaymentDetails | null;
}
/**
 * Optional parameters to `/accounts/balance/get`.
 * @export
 * @interface AccountsBalanceGetRequestOptions
 */
export interface AccountsBalanceGetRequestOptions {
    /**
     * A list of `account_ids` to retrieve for the Item. The default value is `null`.  Note: An error will be returned if a provided `account_id` is not associated with the Item.
     * @type {Array<string>}
     * @memberof AccountsBalanceGetRequestOptions
     */
    account_ids?: Array<string>;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the oldest acceptable balance when making a request to `/accounts/balance/get`.  This field is only necessary when the institution is `ins_128026` (Capital One), *and* one or more account types being requested is a non-depository account (such as a credit card) as Capital One does not provide real-time balance for non-depository accounts. In this case, a value must be provided or an `INVALID_REQUEST` error with the code of `INVALID_FIELD` will be returned. For all other institutions, as well as for depository accounts at Capital One (including all checking and savings accounts) this field is ignored and real-time balance information will be fetched.  If this field is not ignored, and no acceptable balance is available, an `INVALID_RESULT` error with the code `LAST_UPDATED_DATETIME_OUT_OF_RANGE` will be returned.
     * @type {string}
     * @memberof AccountsBalanceGetRequestOptions
     */
    min_last_updated_datetime?: string;
}
/**
 * To enable Balance Plus (beta), send this object as part of the `/accounts/balance/get` request. Only available to customers participating in the Balance Plus beta program; to enroll in the beta, contact your account manager. If this object is present in the request, the [`payment_risk_assessment`](https://plaid.com/docs/balance/balance-plus/#accounts-balance-get-response-payment-risk-assessment-risk-level) object will be present in the response.
 * @export
 * @interface AccountsBalanceGetRequestPaymentDetails
 */
export interface AccountsBalanceGetRequestPaymentDetails {
    /**
     * The Plaid `account_id` of the account that is the funding source for the proposed transaction. The `account_id` is returned in the `/accounts/get` endpoint as well as the [`onSuccess`](/docs/link/ios/#link-ios-onsuccess-linkSuccess-metadata-accounts-id) callback metadata.  This will return an [`INVALID_ACCOUNT_ID`](/docs/errors/invalid-input/#invalid_account_id) error if the account has been removed at the bank or if the `account_id` is no longer valid.
     * @type {string}
     * @memberof AccountsBalanceGetRequestPaymentDetails
     */
    account_id: string;
    /**
     * The unique ID that you would like to use to refer to this transaction. For your convenience mapping your internal data, you could use your internal identifier for this transaction.
     * @type {string}
     * @memberof AccountsBalanceGetRequestPaymentDetails
     */
    client_transaction_id: string;
    /**
     * The transaction amount, in USD (e.g. `102.05`)
     * @type {number}
     * @memberof AccountsBalanceGetRequestPaymentDetails
     */
    amount: number;
    /**
     * If the `amount` multiplied by the `balance_threshold_percentage` (as a percentage) exceeds the balance in the account, then [`payment_risk_assessment.exceeds_balance_threshold`](https://plaid.com/docs/balance/balance-plus/#accounts-balance-get-response-payment-risk-assessment-exceeds-balance-threshold) in the response will be true, otherwise, it will be false. For example, if the `amount` is 200 and the `balance_threshold_percentage` is 90, then the account balance must be at least 180 for `exceeds_balance_threshold` to be false.   By default, the available balance will be used for this calculation; if it cannot be obtained, the current balance will be used.   This field is particularly useful for customers using indirect Items and who do not have direct access to raw balance data.
     * @type {number}
     * @memberof AccountsBalanceGetRequestPaymentDetails
     */
    balance_threshold_percentage?: number;
    /**
     * A boolean that determines whether the balance has to be refreshed in real time as part of the API call when using Balance Plus. Setting this to field to `true` will result in more recent balances, but latency may be up to 30 seconds or more. If making a regular (non-Balance Plus) Balance call, without the `payment_details` object present, `/accounts/balance/get` will always return real-time balances.
     * @type {boolean}
     * @memberof AccountsBalanceGetRequestPaymentDetails
     */
    requires_real_time_balance_refresh?: boolean;
}
/**
 * Provides a detailed risk assessment for the requested transaction. For this field to be returned, the client must be enrolled in the Balance Plus beta program and the [`payment_details`](http://plaid.com/docs/balance/balance-plus/#accounts-balance-get-request-payment-details) object must have been sent in the request.
 * @export
 * @interface AccountsBalanceGetResponsePaymentRiskAssessment
 */
export interface AccountsBalanceGetResponsePaymentRiskAssessment {
    /**
     *
     * @type {BalancePlusRiskLevel}
     * @memberof AccountsBalanceGetResponsePaymentRiskAssessment
     */
    risk_level: BalancePlusRiskLevel;
    /**
     *
     * @type {BalancePlusAttributes}
     * @memberof AccountsBalanceGetResponsePaymentRiskAssessment
     */
    attributes: BalancePlusAttributes;
    /**
     * A risk score ranging from 1-99, reflecting the likelihood of ACH debit return. A higher score indicates a greater risk of return, often due to overdrawn accounts or account ineligibility to receive ACH transactions. Typical return codes include \"R01\", \"R02\", \"R03\", \"R04\", \"R06\", \"R08\", \"R09\", \"R13\", \"R16\", \"R17\", \"R20\", \"R23\", etc., with a turnaround of 2 banking days.
     * @type {number}
     * @memberof AccountsBalanceGetResponsePaymentRiskAssessment
     */
    score?: number | null;
    /**
     * Timestamp of the last successful balance update, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof AccountsBalanceGetResponsePaymentRiskAssessment
     */
    balance_last_updated: string;
    /**
     * An array of objects, each representing a specific reason contributing to the risk assessment of an ACH transaction. This field is only supplied for transactions classified as `HIGH`, `MEDIUM-HIGH`, or `MEDIUM` risk.
     * @type {Array<RiskReason>}
     * @memberof AccountsBalanceGetResponsePaymentRiskAssessment
     */
    risk_reasons?: Array<RiskReason>;
    /**
     * Whether the proposed transaction exceeds the balance threshold set in the request. `true` indicates higher risk; `false` indicates lower risk. If the `amount` multiplied by the `balance_threshold_percentage` (as a percentage) exceeds the balance in the account, then `exceeds_balance_threshold` will be true, otherwise, it will be false. For example, if the `amount` is 200 and the `balance_threshold_percentage` is 90, then the account balance must be at least 180 for `exceeds_balance_threshold` to be false.   By default, the available balance will be used for this calculation; if it cannot be obtained, the current balance will be used.   This field is particularly useful for customers using indirect Items and who do not have direct access to raw balance data.
     * @type {boolean}
     * @memberof AccountsBalanceGetResponsePaymentRiskAssessment
     */
    exceeds_balance_threshold: boolean;
}
/**
 * AccountsGetRequest defines the request schema for `/accounts/get`
 * @export
 * @interface AccountsGetRequest
 */
export interface AccountsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AccountsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AccountsGetRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof AccountsGetRequest
     */
    access_token: string;
    /**
     *
     * @type {AccountsGetRequestOptions}
     * @memberof AccountsGetRequest
     */
    options?: AccountsGetRequestOptions;
}
/**
 * An optional object to filter `/accounts/get` results.
 * @export
 * @interface AccountsGetRequestOptions
 */
export interface AccountsGetRequestOptions {
    /**
     * An array of `account_ids` to retrieve for the Account.
     * @type {Array<string>}
     * @memberof AccountsGetRequestOptions
     */
    account_ids?: Array<string>;
}
/**
 * AccountsGetResponse defines the response schema for `/accounts/get` and `/accounts/balance/get`.
 * @export
 * @interface AccountsGetResponse
 */
export interface AccountsGetResponse {
    /**
     * An array of financial institution accounts associated with the Item. If `/accounts/balance/get` was called, each account will include real-time balance information.
     * @type {Array<AccountBase>}
     * @memberof AccountsGetResponse
     */
    accounts: Array<AccountBase>;
    /**
     *
     * @type {Item}
     * @memberof AccountsGetResponse
     */
    item: Item;
    /**
     *
     * @type {AccountsBalanceGetResponsePaymentRiskAssessment}
     * @memberof AccountsGetResponse
     */
    payment_risk_assessment?: AccountsBalanceGetResponsePaymentRiskAssessment | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof AccountsGetResponse
     */
    request_id: string;
}
/**
 * Enum representing the state of the action/activity.
 * @export
 * @enum {string}
 */
export declare enum ActionState {
    Unknown = "UNKNOWN",
    Attempt = "ATTEMPT",
    Success = "SUCCESS",
    Failure = "FAILURE",
    Skipped = "SKIPPED"
}
/**
 * Describes a consent activity.
 * @export
 * @interface Activity
 */
export interface Activity {
    /**
     *
     * @type {ActivityType}
     * @memberof Activity
     */
    activity: ActivityType;
    /**
     * The date this activity was initiated [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format in UTC.
     * @type {string}
     * @memberof Activity
     */
    initiated_date: string;
    /**
     * A unique identifier for the activity
     * @type {string}
     * @memberof Activity
     */
    id: string;
    /**
     * Application ID of the client who initiated the activity.
     * @type {string}
     * @memberof Activity
     */
    initiator: string;
    /**
     *
     * @type {ActionState}
     * @memberof Activity
     */
    state: ActionState;
    /**
     * This field will map to the application ID that is returned from /item/application/list, or provided to the institution in an oauth redirect.
     * @type {string}
     * @memberof Activity
     */
    target_application_id?: string;
    /**
     *
     * @type {ScopesNullable}
     * @memberof Activity
     */
    scopes?: ScopesNullable | null;
    /**
     *
     * @type {ItemCreateAuthentication}
     * @memberof Activity
     */
    authentication?: ItemCreateAuthentication;
}
/**
 * Types of consent activities
 * @export
 * @enum {string}
 */
export declare enum ActivityType {
    Unknown = "UNKNOWN",
    ItemCreate = "ITEM_CREATE",
    ItemImport = "ITEM_IMPORT",
    ItemUpdate = "ITEM_UPDATE",
    ItemUnlink = "ITEM_UNLINK",
    PortalUnlink = "PORTAL_UNLINK",
    PortalItemsDelete = "PORTAL_ITEMS_DELETE",
    ItemRemove = "ITEM_REMOVE",
    InvariantCheckerDeletion = "INVARIANT_CHECKER_DELETION",
    ScopesUpdate = "SCOPES_UPDATE"
}
/**
 * A physical mailing address.
 * @export
 * @interface Address
 */
export interface Address {
    /**
     *
     * @type {AddressData}
     * @memberof Address
     */
    data: AddressData;
    /**
     * When `true`, identifies the address as the primary address on an account.
     * @type {boolean}
     * @memberof Address
     */
    primary?: boolean;
}
/**
 * Data about the components comprising an address.
 * @export
 * @interface AddressData
 */
export interface AddressData {
    /**
     * The full city name
     * @type {string}
     * @memberof AddressData
     */
    city: string | null;
    /**
     * The region or state. In API versions 2018-05-22 and earlier, this field is called `state`. Example: `\"NC\"`
     * @type {string}
     * @memberof AddressData
     */
    region: string | null;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof AddressData
     */
    street: string;
    /**
     * The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.
     * @type {string}
     * @memberof AddressData
     */
    postal_code: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code
     * @type {string}
     * @memberof AddressData
     */
    country: string | null;
}
/**
 * Data about the components comprising an address.
 * @export
 * @interface AddressDataNotRequired
 */
export interface AddressDataNotRequired {
    /**
     * The full city name
     * @type {string}
     * @memberof AddressDataNotRequired
     */
    city?: string | null;
    /**
     * The region or state. In API versions 2018-05-22 and earlier, this field is called `state`. Example: `\"NC\"`
     * @type {string}
     * @memberof AddressDataNotRequired
     */
    region?: string | null;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof AddressDataNotRequired
     */
    street?: string;
    /**
     * The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.
     * @type {string}
     * @memberof AddressDataNotRequired
     */
    postal_code?: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code
     * @type {string}
     * @memberof AddressDataNotRequired
     */
    country?: string | null;
}
/**
 * Data about the components comprising an address.
 * @export
 * @interface AddressDataNullable
 */
export interface AddressDataNullable {
    /**
     * The full city name
     * @type {string}
     * @memberof AddressDataNullable
     */
    city: string | null;
    /**
     * The region or state. In API versions 2018-05-22 and earlier, this field is called `state`. Example: `\"NC\"`
     * @type {string}
     * @memberof AddressDataNullable
     */
    region: string | null;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof AddressDataNullable
     */
    street: string;
    /**
     * The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.
     * @type {string}
     * @memberof AddressDataNullable
     */
    postal_code: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code
     * @type {string}
     * @memberof AddressDataNullable
     */
    country: string | null;
}
/**
 * Data about the components comprising an address.
 * @export
 * @interface AddressDataNullableNoRequiredFields
 */
export interface AddressDataNullableNoRequiredFields {
    /**
     * The full city name
     * @type {string}
     * @memberof AddressDataNullableNoRequiredFields
     */
    city?: string | null;
    /**
     * The region or state. In API versions 2018-05-22 and earlier, this field is called `state`. Example: `\"NC\"`
     * @type {string}
     * @memberof AddressDataNullableNoRequiredFields
     */
    region?: string | null;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof AddressDataNullableNoRequiredFields
     */
    street?: string;
    /**
     * The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.
     * @type {string}
     * @memberof AddressDataNullableNoRequiredFields
     */
    postal_code?: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code
     * @type {string}
     * @memberof AddressDataNullableNoRequiredFields
     */
    country?: string | null;
}
/**
 * Score found by matching address provided by the API with the address on the account at the financial institution. The score can range from 0 to 100 where 100 is a perfect match and 0 is a no match. If the account contains multiple owners, the maximum match score is filled.
 * @export
 * @interface AddressMatchScore
 */
export interface AddressMatchScore {
    /**
     * Match score for address. 100 is a perfect match, 99-90 is a strong match, 89-70 is a partial match, anything below 70 is considered a weak match. Typically, the match threshold should be set to a score of 70 or higher. If the address is missing from either the API or financial institution, this is null.
     * @type {number}
     * @memberof AddressMatchScore
     */
    score?: number | null;
    /**
     * postal code was provided for both and was a match
     * @type {boolean}
     * @memberof AddressMatchScore
     */
    is_postal_code_match?: boolean | null;
}
/**
 * A physical mailing address.
 * @export
 * @interface AddressNullable
 */
export interface AddressNullable {
    /**
     *
     * @type {AddressData}
     * @memberof AddressNullable
     */
    data: AddressData;
    /**
     * When `true`, identifies the address as the primary address on an account.
     * @type {boolean}
     * @memberof AddressNullable
     */
    primary?: boolean;
}
/**
 * Field describing whether the associated address is being used for commercial or residential purposes.  Note: This value will be `no_data` when Plaid does not have sufficient data to determine the address\'s use.
 * @export
 * @enum {string}
 */
export declare enum AddressPurposeLabel {
    Residential = "residential",
    Commercial = "commercial",
    NoData = "no_data"
}
/**
 * Metadata about the application
 * @export
 * @interface Application
 */
export interface Application {
    /**
     * This field will map to the application ID that is returned from /item/application/list, or provided to the institution in an oauth redirect.
     * @type {string}
     * @memberof Application
     */
    application_id: string;
    /**
     * The name of the application
     * @type {string}
     * @memberof Application
     */
    name: string;
    /**
     * A human-readable name of the application for display purposes
     * @type {string}
     * @memberof Application
     */
    display_name: string | null;
    /**
     * The date this application was granted production access at Plaid in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format in UTC.
     * @type {string}
     * @memberof Application
     */
    join_date: string;
    /**
     * A URL that links to the application logo image.
     * @type {string}
     * @memberof Application
     */
    logo_url: string | null;
    /**
     * The URL for the application\'s website
     * @type {string}
     * @memberof Application
     */
    application_url: string | null;
    /**
     * A string provided by the connected app stating why they use their respective enabled products.
     * @type {string}
     * @memberof Application
     */
    reason_for_access: string | null;
    /**
     * A string representing client’s broad use case as assessed by Plaid.
     * @type {string}
     * @memberof Application
     */
    use_case: string | null;
    /**
     * A string representing the name of client’s legal entity.
     * @type {string}
     * @memberof Application
     */
    company_legal_name: string | null;
    /**
     * A string representing the city of the client’s headquarters.
     * @type {string}
     * @memberof Application
     */
    city: string | null;
    /**
     * A string representing the region of the client’s headquarters.
     * @type {string}
     * @memberof Application
     */
    region: string | null;
    /**
     * A string representing the postal code of the client’s headquarters.
     * @type {string}
     * @memberof Application
     */
    postal_code: string | null;
    /**
     * A string representing the country code of the client’s headquarters.
     * @type {string}
     * @memberof Application
     */
    country_code: string | null;
}
/**
 * ApplicationGetRequest defines the schema for `/application/get`
 * @export
 * @interface ApplicationGetRequest
 */
export interface ApplicationGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ApplicationGetRequest
     */
    client_id: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ApplicationGetRequest
     */
    secret: string;
    /**
     * This field will map to the application ID that is returned from /item/application/list, or provided to the institution in an oauth redirect.
     * @type {string}
     * @memberof ApplicationGetRequest
     */
    application_id: string;
}
/**
 * ApplicationGetResponse defines the response schema for `/application/get`
 * @export
 * @interface ApplicationGetResponse
 */
export interface ApplicationGetResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ApplicationGetResponse
     */
    request_id: string;
    /**
     *
     * @type {Application}
     * @memberof ApplicationGetResponse
     */
    application: Application;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface Asset
 */
export interface Asset {
    /**
     *
     * @type {AssetDetail}
     * @memberof Asset
     */
    ASSET_DETAIL: AssetDetail;
    /**
     *
     * @type {AssetOwners}
     * @memberof Asset
     */
    ASSET_OWNERS: AssetOwners;
    /**
     *
     * @type {AssetHolder}
     * @memberof Asset
     */
    ASSET_HOLDER: AssetHolder;
    /**
     *
     * @type {AssetTransactions}
     * @memberof Asset
     */
    ASSET_TRANSACTIONS: AssetTransactions;
    /**
     *
     * @type {ValidationSources}
     * @memberof Asset
     */
    VALIDATION_SOURCES: ValidationSources;
}
/**
 * Details about an asset.
 * @export
 * @interface AssetDetail
 */
export interface AssetDetail {
    /**
     * A vendor created unique Identifier.
     * @type {string}
     * @memberof AssetDetail
     */
    AssetUniqueIdentifier: string;
    /**
     * A unique alphanumeric string identifying an asset.
     * @type {string}
     * @memberof AssetDetail
     */
    AssetAccountIdentifier: string;
    /**
     * Account Report As of Date / Create Date. Format YYYY-MM-DD
     * @type {string}
     * @memberof AssetDetail
     */
    AssetAsOfDate: string;
    /**
     * A text description that further defines the Asset. This could be used to describe the shares associated with the stocks, bonds or mutual funds, retirement funds or business owned that the borrower has disclosed (named) as an asset.
     * @type {string}
     * @memberof AssetDetail
     */
    AssetDescription: string | null;
    /**
     * Asset Account Available Balance.
     * @type {number}
     * @memberof AssetDetail
     */
    AssetAvailableBalanceAmount: number;
    /**
     * A vendor created unique Identifier
     * @type {number}
     * @memberof AssetDetail
     */
    AssetCurrentBalanceAmount: number;
    /**
     *
     * @type {AssetType}
     * @memberof AssetDetail
     */
    AssetType: AssetType;
    /**
     * Additional Asset Decription some examples are Investment Tax-Deferred , Loan, 401K, 403B, Checking, Money Market, Credit Card,ROTH,529,Biller,ROLLOVER,CD,Savings,Investment Taxable, IRA, Mortgage, Line Of Credit.
     * @type {string}
     * @memberof AssetDetail
     */
    AssetTypeAdditionalDescription: string | null;
    /**
     * The Number of days requested made to the Financial Institution. Example When looking for 3 months of data from the FI, pass in 90 days.
     * @type {number}
     * @memberof AssetDetail
     */
    AssetDaysRequestedCount: number;
    /**
     * Ownership type of the asset account.
     * @type {string}
     * @memberof AssetDetail
     */
    AssetOwnershipType: string | null;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface AssetHolder
 */
export interface AssetHolder {
    /**
     *
     * @type {AssetHolderName}
     * @memberof AssetHolder
     */
    NAME: AssetHolderName;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface AssetHolderName
 */
export interface AssetHolderName {
    /**
     * The unparsed name of either an individual or a legal entity.
     * @type {string}
     * @memberof AssetHolderName
     */
    FullName: string;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface AssetOwner
 */
export interface AssetOwner {
    /**
     * Account Owner Full Name.
     * @type {string}
     * @memberof AssetOwner
     */
    AssetOwnerText: string | null;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface AssetOwners
 */
export interface AssetOwners {
    /**
     * Multiple Occurances of Account Owners Full Name up to 4.
     * @type {Array<AssetOwner>}
     * @memberof AssetOwners
     */
    ASSET_OWNER: Array<AssetOwner>;
}
/**
 * An object representing an Asset Report
 * @export
 * @interface AssetReport
 */
export interface AssetReport {
    /**
     * A unique ID identifying an Asset Report. Like all Plaid identifiers, this ID is case sensitive.
     * @type {string}
     * @memberof AssetReport
     */
    asset_report_id: string;
    /**
     * An identifier you determine and submit for the Asset Report.
     * @type {string}
     * @memberof AssetReport
     */
    client_report_id: string | null;
    /**
     * The date and time when the Asset Report was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (e.g. \"2018-04-12T03:32:11Z\").
     * @type {string}
     * @memberof AssetReport
     */
    date_generated: string;
    /**
     * The duration of transaction history you requested
     * @type {number}
     * @memberof AssetReport
     */
    days_requested: number;
    /**
     *
     * @type {AssetReportUser}
     * @memberof AssetReport
     */
    user: AssetReportUser;
    /**
     * Data returned by Plaid about each of the Items included in the Asset Report.
     * @type {Array<AssetReportItem>}
     * @memberof AssetReport
     */
    items: Array<AssetReportItem>;
}
/**
 * A set of fields describing the balance for an account. Balance information may be cached unless the balance object was returned by `/accounts/balance/get`.
 * @export
 * @interface AssetReportAccountBalance
 */
export interface AssetReportAccountBalance {
    /**
     * The amount of funds available to be withdrawn from the account, as determined by the financial institution.  For `credit`-type accounts, the `available` balance typically equals the `limit` less the `current` balance, less any pending outflows plus any pending inflows.  For `depository`-type accounts, the `available` balance typically equals the `current` balance less any pending outflows plus any pending inflows. For `depository`-type accounts, the `available` balance does not include the overdraft limit.  For `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier), the `available` balance is the total cash available to withdraw as presented by the institution.  Note that not all institutions calculate the `available`  balance. In the event that `available` balance is unavailable, Plaid will return an `available` balance value of `null`.  Available balance may be cached and is not guaranteed to be up-to-date in realtime unless the value was returned by `/accounts/balance/get`.  If `current` is `null` this field is guaranteed not to be `null`.
     * @type {number}
     * @memberof AssetReportAccountBalance
     */
    available: number | null;
    /**
     * The total amount of funds in or owed by the account.  For `credit`-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.  For `loan`-type accounts, the current balance is the principal remaining on the loan, except in the case of student loan accounts at Sallie Mae (`ins_116944`). For Sallie Mae student loans, the account\'s balance includes both principal and any outstanding interest.  For `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier), the current balance is the total value of assets as presented by the institution.  Note that balance information may be cached unless the value was returned by `/accounts/balance/get`; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require realtime balance information, use the `available` balance as provided by `/accounts/balance/get`.  When returned by `/accounts/balance/get`, this field may be `null`. When this happens, `available` is guaranteed not to be `null`.
     * @type {number}
     * @memberof AssetReportAccountBalance
     */
    current: number | null;
    /**
     * For `credit`-type accounts, this represents the credit limit.  For `depository`-type accounts, this represents the pre-arranged overdraft limit, which is common for current (checking) accounts in Europe.  In North America, this field is typically only available for `credit`-type accounts.
     * @type {number}
     * @memberof AssetReportAccountBalance
     */
    limit: number | null;
    /**
     * The total amount of borrowed funds in the account, as determined by the financial institution. For investment-type accounts, the margin balance is the total value of borrowed assets in the account, as presented by the institution. This is commonly referred to as margin or a loan.
     * @type {number}
     * @memberof AssetReportAccountBalance
     */
    margin_loan_amount: number | null;
    /**
     * The ISO-4217 currency code of the balance. Always null if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof AssetReportAccountBalance
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the balance. Always null if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
     * @type {string}
     * @memberof AssetReportAccountBalance
     */
    unofficial_currency_code: string | null;
    /**
     * Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the oldest acceptable balance when making a request to `/accounts/balance/get`.  This field is only used and expected when the institution is `ins_128026` (Capital One) and the Item contains one or more accounts with a non-depository account type, in which case a value must be provided or an `INVALID_REQUEST` error with the code of `INVALID_FIELD` will be returned. For Capital One depository accounts as well as all other account types on all other institutions, this field is ignored. See [account type schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of account types.  If the balance that is pulled is older than the given timestamp for Items with this field required, an `INVALID_REQUEST` error with the code of `LAST_UPDATED_DATETIME_OUT_OF_RANGE` will be returned with the most recent timestamp for the requested account contained in the response.
     * @type {string}
     * @memberof AssetReportAccountBalance
     */
    last_updated_datetime?: string | null;
}
/**
 * A list of add-ons that should be included in the Asset Report.  `fast_assets`: When Fast Assets is requested, Plaid will create two versions of the Asset Report: the Fast Asset Report, which will contain only Identity and Balance information, and the Full Asset Report, which will also contain Transactions information. A `PRODUCT_READY` webhook will be fired for each Asset Report when it is ready, and the `report_type` field will indicate whether the webhook is firing for the `full` or `fast` Asset Report. To retrieve the Fast Asset Report, call `/asset_report/get` with `fast_report` set to `true`. There is no additional charge for using Fast Assets. To create a Fast Asset Report, Plaid must successfully retrieve both Identity and Balance data; if Plaid encounters an error obtaining this data, the Fast Asset Report will not be created. However, as long as Plaid can obtain Transactions data, the Full Asset Report will still be available.  `investments`: Request an Asset Report with Investments. This add-on is in closed beta and not generally available.
 * @export
 * @enum {string}
 */
export declare enum AssetReportAddOns {
    Investments = "investments",
    FastAssets = "fast_assets"
}
/**
 * AssetReportAuditCopyCreateRequest defines the request schema for `/asset_report/audit_copy/get`
 * @export
 * @interface AssetReportAuditCopyCreateRequest
 */
export interface AssetReportAuditCopyCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportAuditCopyCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportAuditCopyCreateRequest
     */
    secret?: string;
    /**
     * A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update an Asset Report.
     * @type {string}
     * @memberof AssetReportAuditCopyCreateRequest
     */
    asset_report_token: string;
    /**
     * The `auditor_id` of the third party with whom you would like to share the Asset Report.
     * @type {string}
     * @memberof AssetReportAuditCopyCreateRequest
     */
    auditor_id?: string;
}
/**
 * AssetReportAuditCopyCreateResponse defines the response schema for `/asset_report/audit_copy/get`
 * @export
 * @interface AssetReportAuditCopyCreateResponse
 */
export interface AssetReportAuditCopyCreateResponse {
    /**
     * A token that can be shared with a third party auditor to allow them to obtain access to the Asset Report. This token should be stored securely.
     * @type {string}
     * @memberof AssetReportAuditCopyCreateResponse
     */
    audit_copy_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof AssetReportAuditCopyCreateResponse
     */
    request_id: string;
}
/**
 * AssetReportAuditCopyGetRequest defines the request schema for `/asset_report/audit_copy/get`
 * @export
 * @interface AssetReportAuditCopyGetRequest
 */
export interface AssetReportAuditCopyGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportAuditCopyGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportAuditCopyGetRequest
     */
    secret?: string;
    /**
     * The `audit_copy_token` granting access to the Audit Copy you would like to get.
     * @type {string}
     * @memberof AssetReportAuditCopyGetRequest
     */
    audit_copy_token: string;
}
/**
 * AssetReportAuditCopyRemoveRequest defines the request schema for `/asset_report/audit_copy/remove`
 * @export
 * @interface AssetReportAuditCopyRemoveRequest
 */
export interface AssetReportAuditCopyRemoveRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportAuditCopyRemoveRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportAuditCopyRemoveRequest
     */
    secret?: string;
    /**
     * The `audit_copy_token` granting access to the Audit Copy you would like to revoke.
     * @type {string}
     * @memberof AssetReportAuditCopyRemoveRequest
     */
    audit_copy_token: string;
}
/**
 * AssetReportAuditCopyRemoveResponse defines the response schema for `/asset_report/audit_copy/remove`
 * @export
 * @interface AssetReportAuditCopyRemoveResponse
 */
export interface AssetReportAuditCopyRemoveResponse {
    /**
     * `true` if the Audit Copy was successfully removed.
     * @type {boolean}
     * @memberof AssetReportAuditCopyRemoveResponse
     */
    removed: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof AssetReportAuditCopyRemoveResponse
     */
    request_id: string;
}
/**
 * AssetReportCreateRequest defines the request schema for `/asset_report/create`
 * @export
 * @interface AssetReportCreateRequest
 */
export interface AssetReportCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportCreateRequest
     */
    secret?: string;
    /**
     * An array of access tokens corresponding to the Items that will be included in the report. The `assets` product must have been initialized for the Items during link; the Assets product cannot be added after initialization.
     * @type {Array<string>}
     * @memberof AssetReportCreateRequest
     */
    access_tokens?: Array<string>;
    /**
     * The maximum integer number of days of history to include in the Asset Report. If using Fannie Mae Day 1 Certainty, `days_requested` must be at least 61 for new originations or at least 31 for refinancings.  An Asset Report requested with \"Additional History\" (that is, with more than 61 days of transaction history) will incur an Additional History fee.
     * @type {number}
     * @memberof AssetReportCreateRequest
     */
    days_requested: number;
    /**
     *
     * @type {AssetReportCreateRequestOptions}
     * @memberof AssetReportCreateRequest
     */
    options?: AssetReportCreateRequestOptions;
}
/**
 * An optional object to filter `/asset_report/create` results. If provided, must be non-`null`. The optional `user` object is required for the report to be eligible for Fannie Mae\'s Day 1 Certainty program.
 * @export
 * @interface AssetReportCreateRequestOptions
 */
export interface AssetReportCreateRequestOptions {
    /**
     * Client-generated identifier, which can be used by lenders to track loan applications.
     * @type {string}
     * @memberof AssetReportCreateRequestOptions
     */
    client_report_id?: string | null;
    /**
     * URL to which Plaid will send Assets webhooks, for example when the requested Asset Report is ready.
     * @type {string}
     * @memberof AssetReportCreateRequestOptions
     */
    webhook?: string | null;
    /**
     * true to return balance and identity earlier as a fast report. Defaults to false if omitted.
     * @type {boolean}
     * @memberof AssetReportCreateRequestOptions
     * @deprecated
     */
    include_fast_report?: boolean | null;
    /**
     * Additional information that can be included in the asset report. Possible values: `\"investments\"`
     * @type {Array<string>}
     * @memberof AssetReportCreateRequestOptions
     * @deprecated
     */
    products?: Array<string>;
    /**
     * This field can be used to add additional options for the Asset Report. To fetch `investments` data (transactions, holdings, etc.) in the Asset Report, `investments` must be specified in `add_ons`. For Fast Assets, `fast_assets` must be specified in `add_ons`.
     * @type {Array<AssetReportAddOns>}
     * @memberof AssetReportCreateRequestOptions
     */
    add_ons?: Array<AssetReportAddOns>;
    /**
     *
     * @type {AssetReportUser}
     * @memberof AssetReportCreateRequestOptions
     */
    user?: AssetReportUser;
    /**
     * If set to false, only 1 item must be healthy at the time of report creation. The default value is true, which would require all items to be healthy at the time of report creation.
     * @type {boolean}
     * @memberof AssetReportCreateRequestOptions
     */
    require_all_items?: boolean | null;
}
/**
 * AssetReportCreateResponse defines the response schema for `/asset_report/create`
 * @export
 * @interface AssetReportCreateResponse
 */
export interface AssetReportCreateResponse {
    /**
     * A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update an Asset Report.
     * @type {string}
     * @memberof AssetReportCreateResponse
     */
    asset_report_token: string;
    /**
     * A unique ID identifying an Asset Report. Like all Plaid identifiers, this ID is case sensitive.
     * @type {string}
     * @memberof AssetReportCreateResponse
     */
    asset_report_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof AssetReportCreateResponse
     */
    request_id: string;
}
/**
 * AssetReportFilterRequest defines the request schema for `/asset_report/filter`
 * @export
 * @interface AssetReportFilterRequest
 */
export interface AssetReportFilterRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportFilterRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportFilterRequest
     */
    secret?: string;
    /**
     * A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update an Asset Report.
     * @type {string}
     * @memberof AssetReportFilterRequest
     */
    asset_report_token: string;
    /**
     * The accounts to exclude from the Asset Report, identified by `account_id`.
     * @type {Array<string>}
     * @memberof AssetReportFilterRequest
     */
    account_ids_to_exclude: Array<string>;
}
/**
 * AssetReportFilterResponse defines the response schema for `/asset_report/filter`
 * @export
 * @interface AssetReportFilterResponse
 */
export interface AssetReportFilterResponse {
    /**
     * A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update an Asset Report.
     * @type {string}
     * @memberof AssetReportFilterResponse
     */
    asset_report_token: string;
    /**
     * A unique ID identifying an Asset Report. Like all Plaid identifiers, this ID is case sensitive.
     * @type {string}
     * @memberof AssetReportFilterResponse
     */
    asset_report_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof AssetReportFilterResponse
     */
    request_id: string;
}
/**
 * An object representing an Asset Report with Freddie Mac schema.
 * @export
 * @interface AssetReportFreddie
 */
export interface AssetReportFreddie {
    /**
     *
     * @type {Loans}
     * @memberof AssetReportFreddie
     */
    LOANS: Loans;
    /**
     *
     * @type {Parties}
     * @memberof AssetReportFreddie
     */
    PARTIES: Parties;
    /**
     *
     * @type {Services}
     * @memberof AssetReportFreddie
     */
    SERVICES: Services;
}
/**
 * AssetReportFreddieGetRequest defines the request schema for `credit/asset_report/freddie_mac/get`
 * @export
 * @interface AssetReportFreddieGetRequest
 */
export interface AssetReportFreddieGetRequest {
    /**
     * A token that can be shared with a third party auditor to allow them to obtain access to the Asset Report. This token should be stored securely.
     * @type {string}
     * @memberof AssetReportFreddieGetRequest
     */
    audit_copy_token: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportFreddieGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportFreddieGetRequest
     */
    secret?: string;
}
/**
 * AssetReportFreddieGetResponse defines the response schema for `/asset_report/get`
 * @export
 * @interface AssetReportFreddieGetResponse
 */
export interface AssetReportFreddieGetResponse {
    /**
     *
     * @type {AssetReportFreddie}
     * @memberof AssetReportFreddieGetResponse
     */
    DEAL: AssetReportFreddie;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof AssetReportFreddieGetResponse
     */
    request_id: string;
    /**
     * The Verification Of Assets (aka VOA or Freddie Mac Schema) schema version.
     * @type {number}
     * @memberof AssetReportFreddieGetResponse
     */
    SchemaVersion: number;
}
/**
 * AssetReportGetRequest defines the request schema for `/asset_report/get`
 * @export
 * @interface AssetReportGetRequest
 */
export interface AssetReportGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportGetRequest
     */
    secret?: string;
    /**
     * A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update an Asset Report.
     * @type {string}
     * @memberof AssetReportGetRequest
     */
    asset_report_token?: string;
    /**
     * The user token associated with the User for which to create an asset report for. The latest asset report associated with the User will be returned
     * @type {string}
     * @memberof AssetReportGetRequest
     */
    user_token?: string;
    /**
     * `true` if you would like to retrieve the Asset Report with Insights, `false` otherwise. This field defaults to `false` if omitted.
     * @type {boolean}
     * @memberof AssetReportGetRequest
     */
    include_insights?: boolean;
    /**
     * `true` to fetch \"fast\" version of asset report. Defaults to false if omitted. Can only be used if `/asset_report/create` was called with `options.add_ons` set to `[\"fast_assets\"]`.
     * @type {boolean}
     * @memberof AssetReportGetRequest
     */
    fast_report?: boolean;
    /**
     *
     * @type {AssetReportGetRequestOptions}
     * @memberof AssetReportGetRequest
     */
    options?: AssetReportGetRequestOptions;
}
/**
 * An optional object to filter or add data to `/asset_report/get` results. If provided, must be non-`null`.
 * @export
 * @interface AssetReportGetRequestOptions
 */
export interface AssetReportGetRequestOptions {
    /**
     * The maximum number of days of history to include in the Asset Report.
     * @type {number}
     * @memberof AssetReportGetRequestOptions
     */
    days_to_include?: number | null;
}
/**
 * AssetReportGetResponse defines the response schema for `/asset_report/get`
 * @export
 * @interface AssetReportGetResponse
 */
export interface AssetReportGetResponse {
    /**
     *
     * @type {AssetReport}
     * @memberof AssetReportGetResponse
     */
    report: AssetReport;
    /**
     * If the Asset Report generation was successful but identity information cannot be returned, this array will contain information about the errors causing identity information to be missing
     * @type {Array<Warning>}
     * @memberof AssetReportGetResponse
     */
    warnings: Array<Warning>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof AssetReportGetResponse
     */
    request_id: string;
}
/**
 * A securities holding at an institution.
 * @export
 * @interface AssetReportInvestmentHolding
 */
export interface AssetReportInvestmentHolding {
    /**
     * The Plaid `account_id` associated with the holding.
     * @type {string}
     * @memberof AssetReportInvestmentHolding
     */
    account_id: string;
    /**
     * The Plaid `security_id` associated with the holding. Security data is not specific to a user\'s account; any user who held the same security at the same financial institution at the same time would have identical security data. The `security_id` for the same security will typically be the same across different institutions, but this is not guaranteed. The `security_id` does not typically change, but may change if inherent details of the security change due to a corporate action, for example, in the event of a ticker symbol change or CUSIP change.
     * @type {string}
     * @memberof AssetReportInvestmentHolding
     */
    security_id: string;
    /**
     * The holding\'s trading symbol for publicly traded holdings, and otherwise a short identifier if available.
     * @type {string}
     * @memberof AssetReportInvestmentHolding
     */
    ticker_symbol: string | null;
    /**
     * The last price given by the institution for this security.
     * @type {number}
     * @memberof AssetReportInvestmentHolding
     */
    institution_price: number;
    /**
     * The date at which `institution_price` was current.
     * @type {string}
     * @memberof AssetReportInvestmentHolding
     */
    institution_price_as_of?: string | null;
    /**
     * The value of the holding, as reported by the institution.
     * @type {number}
     * @memberof AssetReportInvestmentHolding
     */
    institution_value: number;
    /**
     * The original total value of the holding. This field is calculated by Plaid as the sum of the purchase price of all of the shares in the holding.
     * @type {number}
     * @memberof AssetReportInvestmentHolding
     */
    cost_basis: number | null;
    /**
     * The total quantity of the asset held, as reported by the financial institution. If the security is an option, `quantity` will reflect the total number of options (typically the number of contracts multiplied by 100), not the number of contracts.
     * @type {number}
     * @memberof AssetReportInvestmentHolding
     */
    quantity: number;
    /**
     * The ISO-4217 currency code of the holding. Always `null` if `unofficial_currency_code` is non-`null`.
     * @type {string}
     * @memberof AssetReportInvestmentHolding
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the holding. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof AssetReportInvestmentHolding
     */
    unofficial_currency_code: string | null;
}
/**
 * Investment security associated with the account.
 * @export
 * @interface AssetReportInvestmentSecurity
 */
export interface AssetReportInvestmentSecurity {
    /**
     * A unique, Plaid-specific identifier for the security, used to associate securities with holdings. Like all Plaid identifiers, the `security_id` is case sensitive. The `security_id` may change if inherent details of the security change due to a corporate action, for example, in the event of a ticker symbol change or CUSIP change.
     * @type {string}
     * @memberof AssetReportInvestmentSecurity
     */
    security_id: string;
    /**
     * A descriptive name for the security, suitable for display.
     * @type {string}
     * @memberof AssetReportInvestmentSecurity
     */
    name: string | null;
    /**
     * The security’s trading symbol for publicly traded securities, and otherwise a short identifier if available.
     * @type {string}
     * @memberof AssetReportInvestmentSecurity
     */
    ticker_symbol: string | null;
    /**
     * The security type of the holding. Valid security types are:  `cash`: Cash, currency, and money market funds  `cryptocurrency`: Digital or virtual currencies  `derivative`: Options, warrants, and other derivative instruments  `equity`: Domestic and foreign equities  `etf`: Multi-asset exchange-traded investment funds  `fixed income`: Bonds and certificates of deposit (CDs)  `loan`: Loans and loan receivables  `mutual fund`: Open- and closed-end vehicles pooling funds of multiple investors  `other`: Unknown or other investment types
     * @type {string}
     * @memberof AssetReportInvestmentSecurity
     */
    type: string | null;
}
/**
 * A transaction within an investment account.
 * @export
 * @interface AssetReportInvestments
 */
export interface AssetReportInvestments {
    /**
     * The ID of the Investment transaction, unique across all Plaid transactions. Like all Plaid identifiers, the `investment_transaction_id` is case sensitive.
     * @type {string}
     * @memberof AssetReportInvestments
     */
    investment_transaction_id: string;
    /**
     * The `account_id` of the account against which this transaction posted.
     * @type {string}
     * @memberof AssetReportInvestments
     */
    account_id: string;
    /**
     * The `security_id` to which this transaction is related.
     * @type {string}
     * @memberof AssetReportInvestments
     */
    security_id: string | null;
    /**
     * The [ISO 8601](https://wikipedia.org/wiki/ISO_8601) posting date for the transaction.
     * @type {string}
     * @memberof AssetReportInvestments
     */
    date: string;
    /**
     * The institution’s description of the transaction.
     * @type {string}
     * @memberof AssetReportInvestments
     */
    name: string;
    /**
     * The number of units of the security involved in this transaction. Positive for buy transactions; negative for sell transactions.
     * @type {number}
     * @memberof AssetReportInvestments
     */
    quantity: number;
    /**
     * The total quantity of vested assets held, as reported by the financial institution. Vested assets are only associated with [equities](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-type).
     * @type {number}
     * @memberof AssetReportInvestments
     */
    vested_quantity: number;
    /**
     * The value of the vested holdings as reported by the institution.
     * @type {number}
     * @memberof AssetReportInvestments
     */
    vested_value: number;
    /**
     * The complete value of the transaction. Positive values when cash is debited, e.g. purchases of stock; negative values when cash is credited, e.g. sales of stock. Treatment remains the same for cash-only movements unassociated with securities.
     * @type {number}
     * @memberof AssetReportInvestments
     */
    amount: number;
    /**
     * The price of the security at which this transaction occurred.
     * @type {number}
     * @memberof AssetReportInvestments
     */
    price: number;
    /**
     * The combined value of all fees applied to this transaction
     * @type {number}
     * @memberof AssetReportInvestments
     */
    fees: number | null;
    /**
     *
     * @type {InvestmentTransactionType}
     * @memberof AssetReportInvestments
     */
    type: InvestmentTransactionType;
    /**
     *
     * @type {InvestmentTransactionSubtype}
     * @memberof AssetReportInvestments
     */
    subtype: InvestmentTransactionSubtype;
    /**
     * The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-`null`.
     * @type {string}
     * @memberof AssetReportInvestments
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the holding. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof AssetReportInvestments
     */
    unofficial_currency_code: string | null;
}
/**
 * A representation of an Item within an Asset Report.
 * @export
 * @interface AssetReportItem
 */
export interface AssetReportItem {
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof AssetReportItem
     */
    item_id: string;
    /**
     * The full financial institution name associated with the Item.
     * @type {string}
     * @memberof AssetReportItem
     */
    institution_name: string;
    /**
     * The id of the financial institution associated with the Item.
     * @type {string}
     * @memberof AssetReportItem
     */
    institution_id: string;
    /**
     * The date and time when this Item’s data was last retrieved from the financial institution, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof AssetReportItem
     */
    date_last_updated: string;
    /**
     * Data about each of the accounts open on the Item.
     * @type {Array<AccountAssets>}
     * @memberof AssetReportItem
     */
    accounts: Array<AccountAssets>;
}
/**
 * AssetReportPDFGetRequest defines the request schema for `/asset_report/pdf/get`
 * @export
 * @interface AssetReportPDFGetRequest
 */
export interface AssetReportPDFGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportPDFGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportPDFGetRequest
     */
    secret?: string;
    /**
     * A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update an Asset Report.
     * @type {string}
     * @memberof AssetReportPDFGetRequest
     */
    asset_report_token: string;
    /**
     *
     * @type {AssetReportPDFGetRequestOptions}
     * @memberof AssetReportPDFGetRequest
     */
    options?: AssetReportPDFGetRequestOptions;
}
/**
 * An optional object to filter or add data to `/asset_report/get` results. If provided, must be non-`null`.
 * @export
 * @interface AssetReportPDFGetRequestOptions
 */
export interface AssetReportPDFGetRequestOptions {
    /**
     * The maximum integer number of days of history to include in the Asset Report.
     * @type {number}
     * @memberof AssetReportPDFGetRequestOptions
     */
    days_to_include?: number | null;
}
/**
 * AssetReportRefreshRequest defines the request schema for `/asset_report/refresh`
 * @export
 * @interface AssetReportRefreshRequest
 */
export interface AssetReportRefreshRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportRefreshRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportRefreshRequest
     */
    secret?: string;
    /**
     * The `asset_report_token` returned by the original call to `/asset_report/create`
     * @type {string}
     * @memberof AssetReportRefreshRequest
     */
    asset_report_token: string;
    /**
     * The maximum number of days of history to include in the Asset Report. Must be an integer. If not specified, the value from the original call to `/asset_report/create` will be used.
     * @type {number}
     * @memberof AssetReportRefreshRequest
     */
    days_requested?: number | null;
    /**
     *
     * @type {AssetReportRefreshRequestOptions}
     * @memberof AssetReportRefreshRequest
     */
    options?: AssetReportRefreshRequestOptions;
}
/**
 * An optional object to filter `/asset_report/refresh` results. If provided, cannot be `null`. If not specified, the `options` from the original call to `/asset_report/create` will be used.
 * @export
 * @interface AssetReportRefreshRequestOptions
 */
export interface AssetReportRefreshRequestOptions {
    /**
     * Client-generated identifier, which can be used by lenders to track loan applications.
     * @type {string}
     * @memberof AssetReportRefreshRequestOptions
     */
    client_report_id?: string | null;
    /**
     * URL to which Plaid will send Assets webhooks, for example when the requested Asset Report is ready.
     * @type {string}
     * @memberof AssetReportRefreshRequestOptions
     */
    webhook?: string | null;
    /**
     *
     * @type {AssetReportUser}
     * @memberof AssetReportRefreshRequestOptions
     */
    user?: AssetReportUser;
}
/**
 * AssetReportRefreshResponse defines the response schema for `/asset_report/refresh`
 * @export
 * @interface AssetReportRefreshResponse
 */
export interface AssetReportRefreshResponse {
    /**
     * A unique ID identifying an Asset Report. Like all Plaid identifiers, this ID is case sensitive.
     * @type {string}
     * @memberof AssetReportRefreshResponse
     */
    asset_report_id: string;
    /**
     * A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update an Asset Report.
     * @type {string}
     * @memberof AssetReportRefreshResponse
     */
    asset_report_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof AssetReportRefreshResponse
     */
    request_id: string;
}
/**
 * AssetReportRemoveRequest defines the request schema for `/asset_report/remove`
 * @export
 * @interface AssetReportRemoveRequest
 */
export interface AssetReportRemoveRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportRemoveRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AssetReportRemoveRequest
     */
    secret?: string;
    /**
     * A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update an Asset Report.
     * @type {string}
     * @memberof AssetReportRemoveRequest
     */
    asset_report_token: string;
}
/**
 * AssetReportRemoveResponse defines the response schema for `/asset_report/remove`
 * @export
 * @interface AssetReportRemoveResponse
 */
export interface AssetReportRemoveResponse {
    /**
     * `true` if the Asset Report was successfully removed.
     * @type {boolean}
     * @memberof AssetReportRemoveResponse
     */
    removed: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof AssetReportRemoveResponse
     */
    request_id: string;
}
/**
 * A transaction on the asset report
 * @export
 * @interface AssetReportTransaction
 */
export interface AssetReportTransaction {
    /**
     * The ID of the account in which this transaction occurred.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    account_id: string;
    /**
     * The settled value of the transaction, denominated in the transaction\'s currency, as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative.
     * @type {number}
     * @memberof AssetReportTransaction
     */
    amount: number;
    /**
     * The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the transaction. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    unofficial_currency_code: string | null;
    /**
     * The string returned by the financial institution to describe the transaction.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    original_description: string | null;
    /**
     * A hierarchical array of the categories to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).  This field will only appear in an Asset Report with Insights.
     * @type {Array<string>}
     * @memberof AssetReportTransaction
     */
    category?: Array<string> | null;
    /**
     * The ID of the category to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).  This field will only appear in an Asset Report with Insights.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    category_id?: string | null;
    /**
     *
     * @type {CreditCategory}
     * @memberof AssetReportTransaction
     */
    credit_category?: CreditCategory | null;
    /**
     * The check number of the transaction. This field is only populated for check transactions.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    check_number?: string | null;
    /**
     * For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` ).
     * @type {string}
     * @memberof AssetReportTransaction
     */
    date: string;
    /**
     * The date on which the transaction took place, in IS0 8601 format.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    date_transacted?: string | null;
    /**
     *
     * @type {Location}
     * @memberof AssetReportTransaction
     */
    location?: Location;
    /**
     * The merchant name or transaction description.  This field will only appear in an Asset Report with Insights.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    name?: string;
    /**
     * The merchant name, as enriched by Plaid from the `name` field. This is typically a more human-readable version of the merchant counterparty in the transaction. For some bank transactions (such as checks or account transfers) where there is no meaningful merchant name, this value will be `null`.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    merchant_name?: string | null;
    /**
     *
     * @type {PaymentMeta}
     * @memberof AssetReportTransaction
     */
    payment_meta?: PaymentMeta;
    /**
     * When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
     * @type {boolean}
     * @memberof AssetReportTransaction
     */
    pending: boolean;
    /**
     * The ID of a posted transaction\'s associated pending transaction, where applicable.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    pending_transaction_id?: string | null;
    /**
     * The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    account_owner?: string | null;
    /**
     * The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    transaction_id: string;
    /**
     *
     * @type {AssetReportTransactionType}
     * @memberof AssetReportTransaction
     */
    transaction_type?: AssetReportTransactionType;
    /**
     * A unique identifier for an income source.
     * @type {string}
     * @memberof AssetReportTransaction
     */
    income_source_id?: string;
}
/**
 * `digital:` transactions that took place online.  `place:` transactions that were made at a physical location.  `special:` transactions that relate to banks, e.g. fees or deposits.  `unresolved:` transactions that do not fit into the other three types.
 * @export
 * @enum {string}
 */
export declare enum AssetReportTransactionType {
    Digital = "digital",
    Place = "place",
    Special = "special",
    Unresolved = "unresolved"
}
/**
 * Indicates either a Fast Asset Report, which will contain only current identity and balance information, or a Full Asset Report, which will also contain historical balance information and transaction data.
 * @export
 * @enum {string}
 */
export declare enum AssetReportType {
    Full = "FULL",
    Fast = "FAST"
}
/**
 * The user object allows you to provide additional information about the user to be appended to the Asset Report. All fields are optional. The `first_name`, `last_name`, and `ssn` fields are required if you would like the Report to be eligible for Fannie Mae’s Day 1 Certainty™ program.
 * @export
 * @interface AssetReportUser
 */
export interface AssetReportUser {
    /**
     * An identifier you determine and submit for the user. If using the Credit Dashboard, Customers should pass in the `user_token` created in `/user/create`.
     * @type {string}
     * @memberof AssetReportUser
     */
    client_user_id?: string | null;
    /**
     * The user\'s first name. Required for the Fannie Mae Day 1 Certainty™ program.
     * @type {string}
     * @memberof AssetReportUser
     */
    first_name?: string | null;
    /**
     * The user\'s middle name
     * @type {string}
     * @memberof AssetReportUser
     */
    middle_name?: string | null;
    /**
     * The user\'s last name.  Required for the Fannie Mae Day 1 Certainty™ program.
     * @type {string}
     * @memberof AssetReportUser
     */
    last_name?: string | null;
    /**
     * The user\'s Social Security Number. Required for the Fannie Mae Day 1 Certainty™ program.  Format: \"ddd-dd-dddd\"
     * @type {string}
     * @memberof AssetReportUser
     */
    ssn?: string | null;
    /**
     * The user\'s phone number, in E.164 format: +{countrycode}{number}. For example: \"+14151234567\". Phone numbers provided in other formats will be parsed on a best-effort basis.
     * @type {string}
     * @memberof AssetReportUser
     */
    phone_number?: string | null;
    /**
     * The user\'s email address.
     * @type {string}
     * @memberof AssetReportUser
     */
    email?: string | null;
}
/**
 * An object representing...
 * @export
 * @interface AssetTransaction
 */
export interface AssetTransaction {
    /**
     *
     * @type {AssetTransactionDetail}
     * @memberof AssetTransaction
     */
    ASSET_TRANSACTION_DETAIL: AssetTransactionDetail;
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
     * @type {Array<AssetTransactionDescription>}
     * @memberof AssetTransaction
     */
    ASSET_TRANSACTION_DESCRIPTON: Array<AssetTransactionDescription>;
}
/**
 * Asset Transaction Category Type Enumerated derived by Vendor.
 * @export
 * @enum {string}
 */
export declare enum AssetTransactionCategoryType {
    AtmFee = "ATMFee",
    Advertising = "Advertising",
    AirTravel = "AirTravel",
    AlcoholBars = "AlcoholBars",
    Allowance = "Allowance",
    Amusement = "Amusement",
    Arts = "Arts",
    AutoTransport = "AutoTransport",
    AutoInsurance = "AutoInsurance",
    AutoPayment = "AutoPayment",
    BabySupplies = "BabySupplies",
    BabysitterDaycare = "BabysitterDaycare",
    BankFee = "BankFee",
    BillsUtilities = "BillsUtilities",
    Bonus = "Bonus",
    BooksSupplies = "BooksSupplies",
    BusinessServices = "Business Services",
    Buy = "Buy",
    CashAtm = "CashATM",
    Charity = "Charity",
    Check = "Check",
    ChildSupport = "ChildSupport",
    Clothing = "Clothing",
    CoffeeShops = "CoffeeShops",
    CreditCardPayment = "CreditCardPayment",
    Dentist = "Dentist",
    Doctor = "Doctor",
    Education = "Education",
    ElectronicsSoftware = "ElectronicsSoftware",
    Entertainment = "Entertainment",
    Eyecare = "Eyecare",
    FastFood = "FastFood",
    FederalTax = "FederalTax",
    FeesCharges = "FeesCharges",
    FinanceCharge = "FinanceCharge",
    Financial = "Financial",
    FinancialAdvisor = "FinancialAdvisor",
    FoodDining = "FoodDining",
    Furnishings = "Furnishings",
    GasFuel = "GasFuel",
    GiftsDonations = "GiftsDonations",
    Groceries = "Groceries",
    Gym = "Gym",
    Hair = "Hair",
    HealthFitness = "HealthFitness",
    HealthInsurance = "HealthInsurance",
    Hobbies = "Hobbies",
    Home = "Home",
    HomeImprovement = "HomeImprovement",
    HomeInsurance = "HomeInsurance",
    HomePhone = "HomePhone",
    HomeServices = "HomeServices",
    HomeSupplies = "HomeSupplies",
    Hotel = "Hotel",
    Income = "Income",
    InterestIncome = "InterestIncome",
    Internet = "Internet",
    Investments = "Investments",
    Kids = "Kids",
    KidsActivities = "KidsActivities",
    LateFee = "LateFee",
    Laundry = "Laundry",
    LawnGarden = "LawnGarden",
    Legal = "Legal",
    LifeInsurance = "LifeInsurance",
    LoanInsurance = "LoanInsurance",
    LoanPayment = "LoanPayment",
    Loans = "Loans",
    MobilePhone = "MobilePhone",
    MortgageRent = "MortgageRent",
    MoviesDvds = "MoviesDVDs",
    Music = "Music",
    NewspapersMagazines = "NewspapersMagazines",
    OfficeSupplies = "OfficeSupplies",
    Parking = "Parking",
    Paycheck = "Paycheck",
    PersonalCare = "PersonalCare",
    PetFoodSupplies = "PetFoodSupplies",
    PetGrooming = "PetGrooming",
    Pets = "Pets",
    Pharmacy = "Pharmacy",
    Printing = "Printing",
    PropertyTax = "Property Tax",
    PublicTransportation = "Public Transportation",
    Reimbursement = "Reimbursement",
    RentalCarTaxi = "RentalCarTaxi",
    Restaurants = "Restaurants",
    SalesTax = "SalesTax",
    ServiceParts = "ServiceParts",
    ServiceFee = "ServiceFee",
    Shipping = "Shipping",
    Shopping = "Shopping",
    SpaMassage = "SpaMassage",
    SportingGoods = "SportingGoods",
    Sports = "Sports",
    StateTax = "StateTax",
    StudentLoan = "Student Loan",
    Taxes = "Taxes",
    Television = "Television",
    Toys = "Toys",
    Transfer = "Transfer",
    Travel = "Travel",
    Tuition = "Tuition",
    Uncategorized = "Uncategorized",
    Utilities = "Utilities",
    Vacation = "Vacation",
    Veterinary = "Veterinary"
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface AssetTransactionDescription
 */
export interface AssetTransactionDescription {
    /**
     * Asset Transaction Description String up to 3 occurances 1 required.
     * @type {string}
     * @memberof AssetTransactionDescription
     */
    AssetTransactionDescription: string;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface AssetTransactionDetail
 */
export interface AssetTransactionDetail {
    /**
     * A vendor created unique Identifier.
     * @type {string}
     * @memberof AssetTransactionDetail
     */
    AssetTransactionUniqueIdentifier: string;
    /**
     * Asset Transaction Amount.
     * @type {number}
     * @memberof AssetTransactionDetail
     */
    AssetTransactionAmount: number;
    /**
     * Asset Transaction Date.
     * @type {string}
     * @memberof AssetTransactionDetail
     */
    AssetTransactionDate: string;
    /**
     * Asset Transaction Post Date.
     * @type {string}
     * @memberof AssetTransactionDetail
     */
    AssetTransactionPostDate: string;
    /**
     *
     * @type {AssetTransactionType}
     * @memberof AssetTransactionDetail
     */
    AssetTransactionType: AssetTransactionType;
    /**
     * Populate with who did the transaction.
     * @type {string}
     * @memberof AssetTransactionDetail
     */
    AssetTransactionPaidByName: string | null;
    /**
     * FI Provided - examples are atm, cash, check, credit, debit, deposit, directDebit, directDeposit, dividend, fee, interest, other, payment, pointOfSale, repeatPayment, serviceCharge, transfer.
     * @type {string}
     * @memberof AssetTransactionDetail
     */
    AssetTransactionTypeAdditionalDescription: string | null;
    /**
     *
     * @type {AssetTransactionCategoryType}
     * @memberof AssetTransactionDetail
     */
    AssetTransactionCategoryType: AssetTransactionCategoryType | null;
    /**
     * FI provided Transaction Identifier.
     * @type {string}
     * @memberof AssetTransactionDetail
     */
    FinancialInstitutionTransactionIdentifier: string | null;
}
/**
 * Asset Transaction Type.
 * @export
 * @enum {string}
 */
export declare enum AssetTransactionType {
    Credit = "Credit",
    Debit = "Debit"
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface AssetTransactions
 */
export interface AssetTransactions {
    /**
     *
     * @type {Array<AssetTransaction>}
     * @memberof AssetTransactions
     */
    ASSET_TRANSACTION: Array<AssetTransaction>;
}
/**
 * A value from a MISMO prescribed list that specifies financial assets in a mortgage loan transaction. Assets may be either liquid or fixed and are associated with a corresponding asset amount.
 * @export
 * @enum {string}
 */
export declare enum AssetType {
    CheckingAccount = "CheckingAccount",
    SavingsAccount = "SavingsAccount",
    Investment = "Investment",
    MoneyMarketFund = "MoneyMarketFund",
    Other = "Other"
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface Assets
 */
export interface Assets {
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
     * @type {Array<Asset>}
     * @memberof Assets
     */
    ASSET: Array<Asset>;
}
/**
 * Fired when Asset Report generation has failed. The resulting `error` will have an `error_type` of `ASSET_REPORT_ERROR`.
 * @export
 * @interface AssetsErrorWebhook
 */
export interface AssetsErrorWebhook {
    /**
     * `ASSETS`
     * @type {string}
     * @memberof AssetsErrorWebhook
     */
    webhook_type: string;
    /**
     * `ERROR`
     * @type {string}
     * @memberof AssetsErrorWebhook
     */
    webhook_code: string;
    /**
     *
     * @type {PlaidError}
     * @memberof AssetsErrorWebhook
     */
    error: PlaidError | null;
    /**
     * The ID associated with the Asset Report.
     * @type {string}
     * @memberof AssetsErrorWebhook
     */
    asset_report_id: string;
    /**
     * The `user_id` corresponding to the User ID the webhook has fired for.
     * @type {string}
     * @memberof AssetsErrorWebhook
     */
    user_id?: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof AssetsErrorWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Fired when the Asset Report has been generated and `/asset_report/get` is ready to be called.  If you attempt to retrieve an Asset Report before this webhook has fired, you’ll receive a response with the HTTP status code 400 and a Plaid error code of `PRODUCT_NOT_READY`.
 * @export
 * @interface AssetsProductReadyWebhook
 */
export interface AssetsProductReadyWebhook {
    /**
     * `ASSETS`
     * @type {string}
     * @memberof AssetsProductReadyWebhook
     */
    webhook_type: string;
    /**
     * `PRODUCT_READY`
     * @type {string}
     * @memberof AssetsProductReadyWebhook
     */
    webhook_code: string;
    /**
     * The `asset_report_id` corresponding to the Asset Report the webhook has fired for.
     * @type {string}
     * @memberof AssetsProductReadyWebhook
     */
    asset_report_id: string;
    /**
     * The `user_id` corresponding to the User ID the webhook has fired for.
     * @type {string}
     * @memberof AssetsProductReadyWebhook
     */
    user_id?: string;
    /**
     *
     * @type {AssetReportType}
     * @memberof AssetsProductReadyWebhook
     */
    report_type?: AssetReportType;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof AssetsProductReadyWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Plaid will trigger a `DEFAULT_UPDATE` webhook for Items that undergo a change in Auth data. This is generally caused by data partners notifying Plaid of a change in their account numbering system or to their routing numbers. To avoid returned transactions, customers that receive a `DEFAULT_UPDATE` webhook with the `account_ids_with_updated_auth` object populated should immediately discontinue all usages of existing Auth data for those accounts and call `/auth/get` or `/processor/auth/get` to obtain updated account and routing numbers.
 * @export
 * @interface AuthDefaultUpdateWebhook
 */
export interface AuthDefaultUpdateWebhook {
    /**
     * `AUTH`
     * @type {string}
     * @memberof AuthDefaultUpdateWebhook
     */
    webhook_type: string;
    /**
     * `DEFAULT_UPDATE`
     * @type {string}
     * @memberof AuthDefaultUpdateWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof AuthDefaultUpdateWebhook
     */
    item_id: string;
    /**
     * An array of `account_id`\'s for accounts that contain new auth.
     * @type {Array<string>}
     * @memberof AuthDefaultUpdateWebhook
     */
    account_ids_with_new_auth: Array<string>;
    /**
     * An object with keys of `account_id`\'s that are mapped to their respective auth attributes that changed. `ACCOUNT_NUMBER` and `ROUTING_NUMBER` are the two potential values that can be flagged as updated.  Example: `{ \"XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58\": [\"ACCOUNT_NUMBER\"] }`
     * @type {{ [key: string]: Array<AuthUpdateTypes>; }}
     * @memberof AuthDefaultUpdateWebhook
     */
    account_ids_with_updated_auth: {
        [key: string]: Array<AuthUpdateTypes>;
    };
    /**
     *
     * @type {PlaidError}
     * @memberof AuthDefaultUpdateWebhook
     */
    error: PlaidError | null;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof AuthDefaultUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * An object containing identifying numbers used for making electronic transfers to and from the `accounts`. The identifying number type (ACH, EFT, IBAN, or BACS) used will depend on the country of the account. An account may have more than one number type. If a particular identifying number type is not used by any `accounts` for which data has been requested, the array for that type will be empty.
 * @export
 * @interface AuthGetNumbers
 */
export interface AuthGetNumbers {
    /**
     * An array of ACH numbers identifying accounts.
     * @type {Array<NumbersACH>}
     * @memberof AuthGetNumbers
     */
    ach: Array<NumbersACH>;
    /**
     * An array of EFT numbers identifying accounts.
     * @type {Array<NumbersEFT>}
     * @memberof AuthGetNumbers
     */
    eft: Array<NumbersEFT>;
    /**
     * An array of IBAN numbers identifying accounts.
     * @type {Array<NumbersInternational>}
     * @memberof AuthGetNumbers
     */
    international: Array<NumbersInternational>;
    /**
     * An array of BACS numbers identifying accounts.
     * @type {Array<NumbersBACS>}
     * @memberof AuthGetNumbers
     */
    bacs: Array<NumbersBACS>;
}
/**
 * AuthGetRequest defines the request schema for `/auth/get`
 * @export
 * @interface AuthGetRequest
 */
export interface AuthGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof AuthGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof AuthGetRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof AuthGetRequest
     */
    access_token: string;
    /**
     *
     * @type {AuthGetRequestOptions}
     * @memberof AuthGetRequest
     */
    options?: AuthGetRequestOptions;
}
/**
 * An optional object to filter `/auth/get` results.
 * @export
 * @interface AuthGetRequestOptions
 */
export interface AuthGetRequestOptions {
    /**
     * A list of `account_ids` to retrieve for the Item. Note: An error will be returned if a provided `account_id` is not associated with the Item.
     * @type {Array<string>}
     * @memberof AuthGetRequestOptions
     */
    account_ids?: Array<string>;
}
/**
 * AuthGetResponse defines the response schema for `/auth/get`
 * @export
 * @interface AuthGetResponse
 */
export interface AuthGetResponse {
    /**
     * The `accounts` for which numbers are being retrieved.
     * @type {Array<AccountBase>}
     * @memberof AuthGetResponse
     */
    accounts: Array<AccountBase>;
    /**
     *
     * @type {AuthGetNumbers}
     * @memberof AuthGetResponse
     */
    numbers: AuthGetNumbers;
    /**
     *
     * @type {Item}
     * @memberof AuthGetResponse
     */
    item: Item;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof AuthGetResponse
     */
    request_id: string;
}
/**
 * Metadata that captures information about the Auth features of an institution.
 * @export
 * @interface AuthMetadata
 */
export interface AuthMetadata {
    /**
     *
     * @type {AuthSupportedMethods}
     * @memberof AuthMetadata
     */
    supported_methods: AuthSupportedMethods | null;
}
/**
 * Metadata specifically related to which auth methods an institution supports.
 * @export
 * @interface AuthSupportedMethods
 */
export interface AuthSupportedMethods {
    /**
     * Indicates if instant auth is supported.
     * @type {boolean}
     * @memberof AuthSupportedMethods
     */
    instant_auth: boolean;
    /**
     * Indicates if instant match is supported.
     * @type {boolean}
     * @memberof AuthSupportedMethods
     */
    instant_match: boolean;
    /**
     * Indicates if automated microdeposits are supported.
     * @type {boolean}
     * @memberof AuthSupportedMethods
     */
    automated_micro_deposits: boolean;
    /**
     * Indicates if instant microdeposits are supported.
     * @type {boolean}
     * @memberof AuthSupportedMethods
     */
    instant_micro_deposits: boolean;
}
/**
 * The possible types of auth data that may have changed.
 * @export
 * @enum {string}
 */
export declare enum AuthUpdateTypes {
    AccountNumber = "ACCOUNT_NUMBER",
    RoutingNumber = "ROUTING_NUMBER"
}
/**
 * Fired when an Item is verified via automated micro-deposits. We recommend communicating to your users when this event is received to notify them that their account is verified and ready for use.
 * @export
 * @interface AutomaticallyVerifiedWebhook
 */
export interface AutomaticallyVerifiedWebhook {
    /**
     * `AUTH`
     * @type {string}
     * @memberof AutomaticallyVerifiedWebhook
     */
    webhook_type: string;
    /**
     * `AUTOMATICALLY_VERIFIED`
     * @type {string}
     * @memberof AutomaticallyVerifiedWebhook
     */
    webhook_code: string;
    /**
     * The `account_id` of the account associated with the webhook
     * @type {string}
     * @memberof AutomaticallyVerifiedWebhook
     */
    account_id: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof AutomaticallyVerifiedWebhook
     */
    item_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof AutomaticallyVerifiedWebhook
     */
    environment: WebhookEnvironmentValues;
    /**
     *
     * @type {PlaidError}
     * @memberof AutomaticallyVerifiedWebhook
     */
    error?: PlaidError | null;
}
/**
 * Contains additional data that can be used to assess the ACH return risk
 * @export
 * @interface BalancePlusAttributes
 */
export interface BalancePlusAttributes {
    /**
     * The number of possible past returns due to unauthorized transactions over the past 7 days from the account that will be debited
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    unauthorized_transactions_count_7d: number | null;
    /**
     * The number of possible past returns due to unauthorized transactions over the past 30 days from the account that will be debited
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    unauthorized_transactions_count_30d: number | null;
    /**
     * The number of possible past returns due to unauthorized transactions over the past 60 days from the account that will be debited
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    unauthorized_transactions_count_60d: number | null;
    /**
     * The number of possible past returns due to unauthorized transactions over the past 90 days from the account that will be debited
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    unauthorized_transactions_count_90d: number | null;
    /**
     * The number of possible past returns due to non-sufficient funds/overdrafts over the past 7 days from the account that will be debited
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    nsf_overdraft_transactions_count_7d: number | null;
    /**
     * The number of possible past returns due to non-sufficient funds/overdrafts over the past 30 days from the account that will be debited
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    nsf_overdraft_transactions_count_30d: number | null;
    /**
     * The number of possible past returns due to non-sufficient funds/overdrafts over the past 60 days from the account that will be debited
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    nsf_overdraft_transactions_count_60d: number | null;
    /**
     * The number of possible past returns due to non-sufficient funds/overdrafts over the past 90 days from the account that will be debited
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    nsf_overdraft_transactions_count_90d: number | null;
    /**
     * The number of days since the first time the Item was connected to an application via Plaid
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    days_since_first_plaid_connection: number | null;
    /**
     * The number of times the Item has been connected to applications via Plaid over the past 7 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    plaid_connections_count_7d: number | null;
    /**
     * The number of times the Item has been connected to applications via Plaid over the past 30 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    plaid_connections_count_30d: number | null;
    /**
     * The total number of times the Item has been connected to applications via Plaid
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    total_plaid_connections_count: number | null;
    /**
     * Indicates if the ACH transaction funding account is a savings/money market account
     * @type {boolean}
     * @memberof BalancePlusAttributes
     */
    is_savings_or_money_market_account: boolean | null;
    /**
     * The number of times the account\'s phone numbers on file have changed over the past 28 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    phone_change_count_28d: number | null;
    /**
     * The number of times the account\'s phone numbers on file have changed over the past 90 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    phone_change_count_90d: number | null;
    /**
     * The number of times the account\'s email addresses on file have changed over the past 28 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    email_change_count_28d: number | null;
    /**
     * The number of times the account\'s email addresses on file have changed over the past 90 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    email_change_count_90d: number | null;
    /**
     * The number of times the account\'s addresses on file have changed over the past 28 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    address_change_count_28d: number | null;
    /**
     * The number of times the account\'s addresses on file have changed over the past 90 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    address_change_count_90d: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    plaid_non_oauth_authentication_attempts_count_3d: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    plaid_non_oauth_authentication_attempts_count_7d: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    plaid_non_oauth_authentication_attempts_count_30d: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_3d: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_7d: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
     * @type {number}
     * @memberof BalancePlusAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_30d: number | null;
    /**
     * Indicates if the receiver bank account is closed
     * @type {boolean}
     * @memberof BalancePlusAttributes
     */
    is_account_closed: boolean | null;
    /**
     * Indicates if the receiver bank account is either frozen or restricted
     * @type {boolean}
     * @memberof BalancePlusAttributes
     */
    is_account_frozen_or_restricted: boolean | null;
}
/**
 * A five-tier risk assessment for the transaction, based on the probability distribution of ACH returns, measured by the incident rate.   Each tier corresponds to a distribution with a different mean (average) probability.   `HIGH`: The mean probability of ACH return risk is above 40%. `MEDIUM_HIGH`: The mean probability of ACH return risk is 15%-40%.  `MEDIUM`: The mean probability of ACH return risk is 5-10%. `MEDIUM_LOW`: The mean probability of ACH return risk is 1%-2%. `LOW`: The mean probability of ACH return risk is below 1%.   Note that these tiers correspond to probability *distributions* and not to discrete probabilities.   These tier definitions are specific to Balance Plus and do not apply to risk tiers generated by other Plaid endpoints.
 * @export
 * @enum {string}
 */
export declare enum BalancePlusRiskLevel {
    High = "HIGH",
    MediumHigh = "MEDIUM_HIGH",
    Medium = "MEDIUM",
    MediumLow = "MEDIUM_LOW",
    Low = "LOW"
}
/**
 * The result of the bank income report generation  `SUCCESS`: The bank income report was successfully generated and can be retrieved via `/credit/bank_income/get`.  `FAILURE`: The bank income report failed to be generated
 * @export
 * @enum {string}
 */
export declare enum BankIncomeCompleteResult {
    Success = "SUCCESS",
    Failure = "FAILURE"
}
/**
 * Fired when a bank income report has finished generating or failed to generate, triggered by calling `/credit/bank_income/get` in CRA enabled client.
 * @export
 * @interface BankIncomeCompleteWebhook
 */
export interface BankIncomeCompleteWebhook {
    /**
     * `INCOME`
     * @type {string}
     * @memberof BankIncomeCompleteWebhook
     */
    webhook_type: string;
    /**
     * `BANK_INCOME_COMPLETE`
     * @type {string}
     * @memberof BankIncomeCompleteWebhook
     */
    webhook_code: string;
    /**
     * The `user_id` corresponding to the user the webhook has fired for.
     * @type {string}
     * @memberof BankIncomeCompleteWebhook
     */
    user_id: string;
    /**
     *
     * @type {BankIncomeCompleteResult}
     * @memberof BankIncomeCompleteWebhook
     */
    result: BankIncomeCompleteResult;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof BankIncomeCompleteWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * The result of the bank income refresh report generation  `SUCCESS`: The refreshed report was successfully generated and can be retrieved via `/credit/bank_income/get`.  `FAILURE`: The refreshed report failed to be generated
 * @export
 * @enum {string}
 */
export declare enum BankIncomeRefreshCompleteResult {
    Success = "SUCCESS",
    Failure = "FAILURE"
}
/**
 * Fired when a refreshed bank income report has finished generating or failed to generate, triggered by calling `/credit/bank_income/refresh`. To get this webhook, subscribe via the [Dashboard](https://dashboard.plaid.com/developers/webhooks).
 * @export
 * @interface BankIncomeRefreshCompleteWebhook
 */
export interface BankIncomeRefreshCompleteWebhook {
    /**
     * `INCOME`
     * @type {string}
     * @memberof BankIncomeRefreshCompleteWebhook
     */
    webhook_type: string;
    /**
     * `BANK_INCOME_REFRESH_COMPLETE`
     * @type {string}
     * @memberof BankIncomeRefreshCompleteWebhook
     */
    webhook_code: string;
    /**
     * The `user_id` corresponding to the user the webhook has fired for.
     * @type {string}
     * @memberof BankIncomeRefreshCompleteWebhook
     */
    user_id: string;
    /**
     *
     * @type {BankIncomeRefreshCompleteResult}
     * @memberof BankIncomeRefreshCompleteWebhook
     */
    result: BankIncomeRefreshCompleteResult;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof BankIncomeRefreshCompleteWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Fired when a change to the user\'s income is detected. You should call `/credit/bank_income/refresh` to get updated income data for the user. To receive this webhook, subscribe in the [Dashboard](https://dashboard.plaid.com/developers/webhooks).
 * @export
 * @interface BankIncomeRefreshUpdateWebhook
 */
export interface BankIncomeRefreshUpdateWebhook {
    /**
     * `INCOME`
     * @type {string}
     * @memberof BankIncomeRefreshUpdateWebhook
     */
    webhook_type: string;
    /**
     * `BANK_INCOME_REFRESH_UPDATE`
     * @type {string}
     * @memberof BankIncomeRefreshUpdateWebhook
     */
    webhook_code: string;
    /**
     * The `user_id` corresponding to the user the webhook has fired for.
     * @type {string}
     * @memberof BankIncomeRefreshUpdateWebhook
     */
    user_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof BankIncomeRefreshUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * The object contains a risk score and a risk tier that evaluate the transaction return risk because an account is overdrawn or because an ineligible account is used. Common return codes in this category include: \"R01\", \"R02\", \"R03\", \"R04\", \"R06\", \"R08\",  \"R09\", \"R13\", \"R16\", \"R17\", \"R20\", \"R23\". These returns have a turnaround time of 2 banking days.
 * @export
 * @interface BankInitiatedReturnRisk
 */
export interface BankInitiatedReturnRisk {
    /**
     * A score from 1-99 that indicates the transaction return risk: a higher risk score suggests a higher return likelihood.
     * @type {number}
     * @memberof BankInitiatedReturnRisk
     */
    score: number;
    /**
     * In the `bank_initiated_return_risk` object, there are eight risk tiers corresponding to the scores:   1: Predicted bank-initiated return incidence rate between 0.0% - 0.5%   2: Predicted bank-initiated return incidence rate between 0.5% - 1.5%   3: Predicted bank-initiated return incidence rate between 1.5% - 3%   4: Predicted bank-initiated return incidence rate between 3% - 5%   5: Predicted bank-initiated return incidence rate between 5% - 10%   6: Predicted bank-initiated return incidence rate between 10% - 15%   7: Predicted bank-initiated return incidence rate between 15% and 50%   8: Predicted bank-initiated return incidence rate greater than 50%
     * @type {number}
     * @memberof BankInitiatedReturnRisk
     */
    risk_tier: number;
}
/**
 * Represents a bank transfer within the Bank Transfers API.
 * @export
 * @interface BankTransfer
 */
export interface BankTransfer {
    /**
     * Plaid’s unique identifier for a bank transfer.
     * @type {string}
     * @memberof BankTransfer
     */
    id: string;
    /**
     *
     * @type {ACHClass}
     * @memberof BankTransfer
     */
    ach_class: ACHClass;
    /**
     * The account ID that should be credited/debited for this bank transfer.
     * @type {string}
     * @memberof BankTransfer
     */
    account_id: string;
    /**
     *
     * @type {BankTransferType}
     * @memberof BankTransfer
     */
    type: BankTransferType;
    /**
     *
     * @type {BankTransferUser}
     * @memberof BankTransfer
     */
    user: BankTransferUser;
    /**
     * The amount of the bank transfer (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof BankTransfer
     */
    amount: string;
    /**
     * The currency of the transfer amount, e.g. \"USD\"
     * @type {string}
     * @memberof BankTransfer
     */
    iso_currency_code: string;
    /**
     * The description of the transfer.
     * @type {string}
     * @memberof BankTransfer
     */
    description: string;
    /**
     * The datetime when this bank transfer was created. This will be of the form `2006-01-02T15:04:05Z`
     * @type {string}
     * @memberof BankTransfer
     */
    created: string;
    /**
     *
     * @type {BankTransferStatus}
     * @memberof BankTransfer
     */
    status: BankTransferStatus;
    /**
     *
     * @type {BankTransferNetwork}
     * @memberof BankTransfer
     */
    network: BankTransferNetwork;
    /**
     * When `true`, you can still cancel this bank transfer.
     * @type {boolean}
     * @memberof BankTransfer
     */
    cancellable: boolean;
    /**
     *
     * @type {BankTransferFailure}
     * @memberof BankTransfer
     */
    failure_reason: BankTransferFailure | null;
    /**
     * A string containing the custom tag provided by the client in the create request. Will be null if not provided.
     * @type {string}
     * @memberof BankTransfer
     */
    custom_tag: string | null;
    /**
     * The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply: The JSON values must be Strings (no nested JSON objects allowed) Only ASCII characters may be used Maximum of 50 key/value pairs Maximum key length of 40 characters Maximum value length of 500 characters
     * @type {{ [key: string]: string; }}
     * @memberof BankTransfer
     */
    metadata: {
        [key: string]: string;
    } | null;
    /**
     * Plaid’s unique identifier for the origination account that was used for this transfer.
     * @type {string}
     * @memberof BankTransfer
     */
    origination_account_id: string;
    /**
     *
     * @type {BankTransferDirection}
     * @memberof BankTransfer
     */
    direction: BankTransferDirection | null;
}
/**
 * Information about the balance of a bank transfer
 * @export
 * @interface BankTransferBalance
 */
export interface BankTransferBalance {
    /**
     * The total available balance - the sum of all successful debit transfer amounts minus all credit transfer amounts.
     * @type {string}
     * @memberof BankTransferBalance
     */
    available: string;
    /**
     * The transactable balance shows the amount in your account that you are able to use for transfers, and is essentially your available balance minus your minimum balance.
     * @type {string}
     * @memberof BankTransferBalance
     */
    transactable: string;
}
/**
 * Defines the request schema for `/bank_transfer/balance/get`
 * @export
 * @interface BankTransferBalanceGetRequest
 */
export interface BankTransferBalanceGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferBalanceGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferBalanceGetRequest
     */
    secret?: string;
    /**
     * If multiple origination accounts are available, `origination_account_id` must be used to specify the account for which balance will be returned.
     * @type {string}
     * @memberof BankTransferBalanceGetRequest
     */
    origination_account_id?: string | null;
}
/**
 * Defines the response schema for `/bank_transfer/balance/get`
 * @export
 * @interface BankTransferBalanceGetResponse
 */
export interface BankTransferBalanceGetResponse {
    /**
     *
     * @type {BankTransferBalance}
     * @memberof BankTransferBalanceGetResponse
     */
    balance: BankTransferBalance;
    /**
     * The ID of the origination account that this balance belongs to.
     * @type {string}
     * @memberof BankTransferBalanceGetResponse
     */
    origination_account_id: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BankTransferBalanceGetResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/bank_transfer/cancel`
 * @export
 * @interface BankTransferCancelRequest
 */
export interface BankTransferCancelRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferCancelRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferCancelRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a bank transfer.
     * @type {string}
     * @memberof BankTransferCancelRequest
     */
    bank_transfer_id: string;
}
/**
 * Defines the response schema for `/bank_transfer/cancel`
 * @export
 * @interface BankTransferCancelResponse
 */
export interface BankTransferCancelResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BankTransferCancelResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/bank_transfer/create`
 * @export
 * @interface BankTransferCreateRequest
 */
export interface BankTransferCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferCreateRequest
     */
    secret?: string;
    /**
     * A random key provided by the client, per unique bank transfer. Maximum of 50 characters.  The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a bank transfer fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single bank transfer is created.
     * @type {string}
     * @memberof BankTransferCreateRequest
     */
    idempotency_key: string;
    /**
     * The Plaid `access_token` for the account that will be debited or credited.
     * @type {string}
     * @memberof BankTransferCreateRequest
     */
    access_token: string;
    /**
     * The Plaid `account_id` for the account that will be debited or credited.
     * @type {string}
     * @memberof BankTransferCreateRequest
     */
    account_id: string;
    /**
     *
     * @type {BankTransferType}
     * @memberof BankTransferCreateRequest
     */
    type: BankTransferType;
    /**
     *
     * @type {BankTransferNetwork}
     * @memberof BankTransferCreateRequest
     */
    network: BankTransferNetwork;
    /**
     * The amount of the bank transfer (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof BankTransferCreateRequest
     */
    amount: string;
    /**
     * The currency of the transfer amount – should be set to \"USD\".
     * @type {string}
     * @memberof BankTransferCreateRequest
     */
    iso_currency_code: string;
    /**
     * The transfer description. Maximum of 10 characters.
     * @type {string}
     * @memberof BankTransferCreateRequest
     */
    description: string;
    /**
     *
     * @type {ACHClass}
     * @memberof BankTransferCreateRequest
     */
    ach_class?: ACHClass;
    /**
     *
     * @type {BankTransferUser}
     * @memberof BankTransferCreateRequest
     */
    user: BankTransferUser;
    /**
     * An arbitrary string provided by the client for storage with the bank transfer. May be up to 100 characters.
     * @type {string}
     * @memberof BankTransferCreateRequest
     */
    custom_tag?: string | null;
    /**
     * The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply: The JSON values must be Strings (no nested JSON objects allowed) Only ASCII characters may be used Maximum of 50 key/value pairs Maximum key length of 40 characters Maximum value length of 500 characters
     * @type {{ [key: string]: string; }}
     * @memberof BankTransferCreateRequest
     */
    metadata?: {
        [key: string]: string;
    } | null;
    /**
     * Plaid’s unique identifier for the origination account for this transfer. If you have more than one origination account, this value must be specified. Otherwise, this field should be left blank.
     * @type {string}
     * @memberof BankTransferCreateRequest
     */
    origination_account_id?: string | null;
}
/**
 * Defines the response schema for `/bank_transfer/create`
 * @export
 * @interface BankTransferCreateResponse
 */
export interface BankTransferCreateResponse {
    /**
     *
     * @type {BankTransfer}
     * @memberof BankTransferCreateResponse
     */
    bank_transfer: BankTransfer;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BankTransferCreateResponse
     */
    request_id: string;
}
/**
 * Indicates the direction of the transfer: `outbound` for API-initiated transfers, or `inbound` for payments received by the FBO account.
 * @export
 * @enum {string}
 */
export declare enum BankTransferDirection {
    Outbound = "outbound",
    Inbound = "inbound",
    Null = "null"
}
/**
 * Represents an event in the Bank Transfers API.
 * @export
 * @interface BankTransferEvent
 */
export interface BankTransferEvent {
    /**
     * Plaid’s unique identifier for this event. IDs are sequential unsigned 64-bit integers.
     * @type {number}
     * @memberof BankTransferEvent
     */
    event_id: number;
    /**
     * The datetime when this event occurred. This will be of the form `2006-01-02T15:04:05Z`.
     * @type {string}
     * @memberof BankTransferEvent
     */
    timestamp: string;
    /**
     *
     * @type {BankTransferEventType}
     * @memberof BankTransferEvent
     */
    event_type: BankTransferEventType;
    /**
     * The account ID associated with the bank transfer.
     * @type {string}
     * @memberof BankTransferEvent
     */
    account_id: string;
    /**
     * Plaid’s unique identifier for a bank transfer.
     * @type {string}
     * @memberof BankTransferEvent
     */
    bank_transfer_id: string;
    /**
     * The ID of the origination account that this balance belongs to.
     * @type {string}
     * @memberof BankTransferEvent
     */
    origination_account_id: string | null;
    /**
     *
     * @type {BankTransferType}
     * @memberof BankTransferEvent
     */
    bank_transfer_type: BankTransferType;
    /**
     * The bank transfer amount.
     * @type {string}
     * @memberof BankTransferEvent
     */
    bank_transfer_amount: string;
    /**
     * The currency of the bank transfer amount.
     * @type {string}
     * @memberof BankTransferEvent
     */
    bank_transfer_iso_currency_code: string;
    /**
     *
     * @type {BankTransferFailure}
     * @memberof BankTransferEvent
     */
    failure_reason: BankTransferFailure | null;
    /**
     *
     * @type {BankTransferDirection}
     * @memberof BankTransferEvent
     */
    direction: BankTransferDirection | null;
}
/**
 * The type of bank transfer. This will be either `debit` or `credit`.  A `debit` indicates a transfer of money into your origination account; a `credit` indicates a transfer of money out of your origination account.
 * @export
 * @enum {string}
 */
export declare enum BankTransferEventListBankTransferType {
    Debit = "debit",
    Credit = "credit",
    Null = "null"
}
/**
 * Indicates the direction of the transfer: `outbound`: for API-initiated transfers `inbound`: for payments received by the FBO account.
 * @export
 * @enum {string}
 */
export declare enum BankTransferEventListDirection {
    Inbound = "inbound",
    Outbound = "outbound",
    Null = "null"
}
/**
 * Defines the request schema for `/bank_transfer/event/list`
 * @export
 * @interface BankTransferEventListRequest
 */
export interface BankTransferEventListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferEventListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferEventListRequest
     */
    secret?: string;
    /**
     * The start datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof BankTransferEventListRequest
     */
    start_date?: string | null;
    /**
     * The end datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof BankTransferEventListRequest
     */
    end_date?: string | null;
    /**
     * Plaid’s unique identifier for a bank transfer.
     * @type {string}
     * @memberof BankTransferEventListRequest
     */
    bank_transfer_id?: string | null;
    /**
     * The account ID to get events for all transactions to/from an account.
     * @type {string}
     * @memberof BankTransferEventListRequest
     */
    account_id?: string | null;
    /**
     *
     * @type {BankTransferEventListBankTransferType}
     * @memberof BankTransferEventListRequest
     */
    bank_transfer_type?: BankTransferEventListBankTransferType | null;
    /**
     * Filter events by event type.
     * @type {Array<BankTransferEventType>}
     * @memberof BankTransferEventListRequest
     */
    event_types?: Array<BankTransferEventType>;
    /**
     * The maximum number of bank transfer events to return. If the number of events matching the above parameters is greater than `count`, the most recent events will be returned.
     * @type {number}
     * @memberof BankTransferEventListRequest
     */
    count?: number | null;
    /**
     * The offset into the list of bank transfer events. When `count`=25 and `offset`=0, the first 25 events will be returned. When `count`=25 and `offset`=25, the next 25 bank transfer events will be returned.
     * @type {number}
     * @memberof BankTransferEventListRequest
     */
    offset?: number | null;
    /**
     * The origination account ID to get events for transfers from a specific origination account.
     * @type {string}
     * @memberof BankTransferEventListRequest
     */
    origination_account_id?: string | null;
    /**
     *
     * @type {BankTransferEventListDirection}
     * @memberof BankTransferEventListRequest
     */
    direction?: BankTransferEventListDirection | null;
}
/**
 * Defines the response schema for `/bank_transfer/event/list`
 * @export
 * @interface BankTransferEventListResponse
 */
export interface BankTransferEventListResponse {
    /**
     *
     * @type {Array<BankTransferEvent>}
     * @memberof BankTransferEventListResponse
     */
    bank_transfer_events: Array<BankTransferEvent>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BankTransferEventListResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/bank_transfer/event/sync`
 * @export
 * @interface BankTransferEventSyncRequest
 */
export interface BankTransferEventSyncRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferEventSyncRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferEventSyncRequest
     */
    secret?: string;
    /**
     * The latest (largest) `event_id` fetched via the sync endpoint, or 0 initially.
     * @type {number}
     * @memberof BankTransferEventSyncRequest
     */
    after_id: number;
    /**
     * The maximum number of bank transfer events to return.
     * @type {number}
     * @memberof BankTransferEventSyncRequest
     */
    count?: number | null;
}
/**
 * Defines the response schema for `/bank_transfer/event/sync`
 * @export
 * @interface BankTransferEventSyncResponse
 */
export interface BankTransferEventSyncResponse {
    /**
     *
     * @type {Array<BankTransferEvent>}
     * @memberof BankTransferEventSyncResponse
     */
    bank_transfer_events: Array<BankTransferEvent>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BankTransferEventSyncResponse
     */
    request_id: string;
}
/**
 * The type of event that this bank transfer represents.  `pending`: A new transfer was created; it is in the pending state.  `cancelled`: The transfer was cancelled by the client.  `failed`: The transfer failed, no funds were moved.  `posted`: The transfer has been successfully submitted to the payment network.  `reversed`: A posted transfer was reversed.
 * @export
 * @enum {string}
 */
export declare enum BankTransferEventType {
    Pending = "pending",
    Cancelled = "cancelled",
    Failed = "failed",
    Posted = "posted",
    Reversed = "reversed"
}
/**
 * The failure reason if the type of this transfer is `\"failed\"` or `\"reversed\"`. Null value otherwise.
 * @export
 * @interface BankTransferFailure
 */
export interface BankTransferFailure {
    /**
     * The ACH return code, e.g. `R01`.  A return code will be provided if and only if the transfer status is `reversed`. For a full listing of ACH return codes, see [Bank Transfers errors](https://plaid.com/docs/errors/bank-transfers/#ach-return-codes).
     * @type {string}
     * @memberof BankTransferFailure
     */
    ach_return_code?: string | null;
    /**
     * A human-readable description of the reason for the failure or reversal.
     * @type {string}
     * @memberof BankTransferFailure
     */
    description?: string;
}
/**
 * Defines the request schema for `/bank_transfer/get`
 * @export
 * @interface BankTransferGetRequest
 */
export interface BankTransferGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferGetRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a bank transfer.
     * @type {string}
     * @memberof BankTransferGetRequest
     */
    bank_transfer_id: string;
}
/**
 * Defines the response schema for `/bank_transfer/get`
 * @export
 * @interface BankTransferGetResponse
 */
export interface BankTransferGetResponse {
    /**
     *
     * @type {BankTransfer}
     * @memberof BankTransferGetResponse
     */
    bank_transfer: BankTransfer;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BankTransferGetResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/bank_transfer/list`
 * @export
 * @interface BankTransferListRequest
 */
export interface BankTransferListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferListRequest
     */
    secret?: string;
    /**
     * The start datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof BankTransferListRequest
     */
    start_date?: string | null;
    /**
     * The end datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof BankTransferListRequest
     */
    end_date?: string | null;
    /**
     * The maximum number of bank transfers to return.
     * @type {number}
     * @memberof BankTransferListRequest
     */
    count?: number;
    /**
     * The number of bank transfers to skip before returning results.
     * @type {number}
     * @memberof BankTransferListRequest
     */
    offset?: number;
    /**
     * Filter bank transfers to only those originated through the specified origination account.
     * @type {string}
     * @memberof BankTransferListRequest
     */
    origination_account_id?: string | null;
    /**
     *
     * @type {BankTransferDirection}
     * @memberof BankTransferListRequest
     */
    direction?: BankTransferDirection | null;
}
/**
 * Defines the response schema for `/bank_transfer/list`
 * @export
 * @interface BankTransferListResponse
 */
export interface BankTransferListResponse {
    /**
     *
     * @type {Array<BankTransfer>}
     * @memberof BankTransferListResponse
     */
    bank_transfers: Array<BankTransfer>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BankTransferListResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/bank_transfer/migrate_account`
 * @export
 * @interface BankTransferMigrateAccountRequest
 */
export interface BankTransferMigrateAccountRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferMigrateAccountRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferMigrateAccountRequest
     */
    secret?: string;
    /**
     * The user\'s account number.
     * @type {string}
     * @memberof BankTransferMigrateAccountRequest
     */
    account_number: string;
    /**
     * The user\'s routing number.
     * @type {string}
     * @memberof BankTransferMigrateAccountRequest
     */
    routing_number: string;
    /**
     * The user\'s wire transfer routing number. This is the ABA number; for some institutions, this may differ from the ACH number used in `routing_number`.
     * @type {string}
     * @memberof BankTransferMigrateAccountRequest
     */
    wire_routing_number?: string;
    /**
     * The type of the bank account (`checking` or `savings`).
     * @type {string}
     * @memberof BankTransferMigrateAccountRequest
     */
    account_type: string;
}
/**
 * Defines the response schema for `/bank_transfer/migrate_account`
 * @export
 * @interface BankTransferMigrateAccountResponse
 */
export interface BankTransferMigrateAccountResponse {
    /**
     * The Plaid `access_token` for the newly created Item.
     * @type {string}
     * @memberof BankTransferMigrateAccountResponse
     */
    access_token: string;
    /**
     * The Plaid `account_id` for the newly created Item.
     * @type {string}
     * @memberof BankTransferMigrateAccountResponse
     */
    account_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BankTransferMigrateAccountResponse
     */
    request_id: string;
}
/**
 * The network or rails used for the transfer. Valid options are `ach`, `same-day-ach`, or `wire`.
 * @export
 * @enum {string}
 */
export declare enum BankTransferNetwork {
    Ach = "ach",
    SameDayAch = "same-day-ach",
    Wire = "wire"
}
/**
 * The status of the transfer.
 * @export
 * @enum {string}
 */
export declare enum BankTransferStatus {
    Pending = "pending",
    Posted = "posted",
    Cancelled = "cancelled",
    Failed = "failed",
    Reversed = "reversed"
}
/**
 * BankTransferSweep describes a sweep transfer.
 * @export
 * @interface BankTransferSweep
 */
export interface BankTransferSweep {
    /**
     * Identifier of the sweep.
     * @type {string}
     * @memberof BankTransferSweep
     */
    id: string;
    /**
     * The datetime when the sweep occurred, in RFC 3339 format.
     * @type {string}
     * @memberof BankTransferSweep
     */
    created_at: string;
    /**
     * The amount of the sweep.
     * @type {string}
     * @memberof BankTransferSweep
     */
    amount: string;
    /**
     * The currency of the sweep, e.g. \"USD\".
     * @type {string}
     * @memberof BankTransferSweep
     */
    iso_currency_code: string;
}
/**
 * Defines the request schema for `/bank_transfer/sweep/get`
 * @export
 * @interface BankTransferSweepGetRequest
 */
export interface BankTransferSweepGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferSweepGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferSweepGetRequest
     */
    secret?: string;
    /**
     * Identifier of the sweep.
     * @type {string}
     * @memberof BankTransferSweepGetRequest
     */
    sweep_id: string;
}
/**
 * BankTransferSweepGetResponse defines the response schema for `/bank_transfer/sweep/get`
 * @export
 * @interface BankTransferSweepGetResponse
 */
export interface BankTransferSweepGetResponse {
    /**
     *
     * @type {BankTransferSweep}
     * @memberof BankTransferSweepGetResponse
     */
    sweep: BankTransferSweep;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BankTransferSweepGetResponse
     */
    request_id: string;
}
/**
 * BankTransferSweepListRequest defines the request schema for `/bank_transfer/sweep/list`
 * @export
 * @interface BankTransferSweepListRequest
 */
export interface BankTransferSweepListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferSweepListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BankTransferSweepListRequest
     */
    secret?: string;
    /**
     * If multiple origination accounts are available, `origination_account_id` must be used to specify the account that the sweeps belong to.
     * @type {string}
     * @memberof BankTransferSweepListRequest
     */
    origination_account_id?: string | null;
    /**
     * The start datetime of sweeps to return (RFC 3339 format).
     * @type {string}
     * @memberof BankTransferSweepListRequest
     */
    start_time?: string | null;
    /**
     * The end datetime of sweeps to return (RFC 3339 format).
     * @type {string}
     * @memberof BankTransferSweepListRequest
     */
    end_time?: string | null;
    /**
     * The maximum number of sweeps to return.
     * @type {number}
     * @memberof BankTransferSweepListRequest
     */
    count?: number | null;
}
/**
 * BankTransferSweepListResponse defines the response schema for `/bank_transfer/sweep/list`
 * @export
 * @interface BankTransferSweepListResponse
 */
export interface BankTransferSweepListResponse {
    /**
     *
     * @type {Array<BankTransferSweep>}
     * @memberof BankTransferSweepListResponse
     */
    sweeps: Array<BankTransferSweep>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BankTransferSweepListResponse
     */
    request_id: string;
}
/**
 * The type of bank transfer. This will be either `debit` or `credit`.  A `debit` indicates a transfer of money into the origination account; a `credit` indicates a transfer of money out of the origination account.
 * @export
 * @enum {string}
 */
export declare enum BankTransferType {
    Debit = "debit",
    Credit = "credit"
}
/**
 * The legal name and other information for the account holder.
 * @export
 * @interface BankTransferUser
 */
export interface BankTransferUser {
    /**
     * The account holder’s full legal name. If the transfer `ach_class` is `ccd`, this should be the business name of the account holder.
     * @type {string}
     * @memberof BankTransferUser
     */
    legal_name: string;
    /**
     * The account holder’s email.
     * @type {string}
     * @memberof BankTransferUser
     */
    email_address?: string | null;
    /**
     * The account holder\'s routing number. This field is only used in response data. Do not provide this field when making requests.
     * @type {string}
     * @memberof BankTransferUser
     */
    routing_number?: string;
}
/**
 * Fired when new bank transfer events are available. Receiving this webhook indicates you should fetch the new events from `/bank_transfer/event/sync`.
 * @export
 * @interface BankTransfersEventsUpdateWebhook
 */
export interface BankTransfersEventsUpdateWebhook {
    /**
     * `BANK_TRANSFERS`
     * @type {string}
     * @memberof BankTransfersEventsUpdateWebhook
     */
    webhook_type: string;
    /**
     * `BANK_TRANSFERS_EVENTS_UPDATE`
     * @type {string}
     * @memberof BankTransfersEventsUpdateWebhook
     */
    webhook_code: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof BankTransfersEventsUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Fired when new ACH events are available. To begin receiving this webhook, you must first register your webhook listener endpoint via the [webhooks page in the Dashboard](https://dashboard.plaid.com/team/webhooks). The `BANK_TRANSFERS_EVENTS_UPDATE` webhook can be used to track the progress of ACH transfers used in [micro-deposit verification](/docs/auth/coverage/microdeposit-events/). Receiving this webhook indicates you should fetch the new events from `/bank_transfer/event/sync`. Note that [Transfer](https://plaid.com/docs/transfer) customers should use Transfer webhooks instead of using `BANK_TRANSFERS_EVENTS_UPDATE`; see [micro-deposit events documentation](https://plaid.com/docs/auth/coverage/microdeposit-events/) for more details.
 * @export
 * @interface BankTransfersEventsUpdateWebhookForAuth
 */
export interface BankTransfersEventsUpdateWebhookForAuth {
    /**
     * `BANK_TRANSFERS`
     * @type {string}
     * @memberof BankTransfersEventsUpdateWebhookForAuth
     */
    webhook_type: string;
    /**
     * `BANK_TRANSFERS_EVENTS_UPDATE`
     * @type {string}
     * @memberof BankTransfersEventsUpdateWebhookForAuth
     */
    webhook_code: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof BankTransfersEventsUpdateWebhookForAuth
     */
    environment: WebhookEnvironmentValues;
}
/**
 * An object representing a Base Report
 * @export
 * @interface BaseReport
 */
export interface BaseReport {
    /**
     * A unique ID identifying an Base Report. Like all Plaid identifiers, this ID is case sensitive.
     * @type {string}
     * @memberof BaseReport
     */
    report_id: string;
    /**
     * The date and time when the Base Report was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (e.g. \"2018-04-12T03:32:11Z\").
     * @type {string}
     * @memberof BaseReport
     */
    date_generated: string;
    /**
     * The number of days of transaction history requested.
     * @type {number}
     * @memberof BaseReport
     */
    days_requested: number;
    /**
     * Client-generated identifier, which can be used by lenders to track loan applications.
     * @type {string}
     * @memberof BaseReport
     */
    client_report_id?: string | null;
    /**
     * Data returned by Plaid about each of the Items included in the Base Report.
     * @type {Array<BaseReportItem>}
     * @memberof BaseReport
     */
    items: Array<BaseReportItem>;
}
/**
 * Base Report information about an account
 * @export
 * @interface BaseReportAccount
 */
export interface BaseReportAccount {
    /**
     * Plaid’s unique identifier for the account. This value will not change unless Plaid can\'t reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new `account_id` will be assigned to the account.  If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.  Like all Plaid identifiers, the `account_id` is case sensitive.
     * @type {string}
     * @memberof BaseReportAccount
     */
    account_id: string;
    /**
     *
     * @type {BaseReportAccountBalances}
     * @memberof BaseReportAccount
     */
    balances: BaseReportAccountBalances;
    /**
     * The information about previously submitted valid dispute statements by the consumer
     * @type {Array<ConsumerDispute>}
     * @memberof BaseReportAccount
     */
    consumer_disputes: Array<ConsumerDispute>;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number. Note that the mask may be non-unique between an Item\'s accounts, and it may also not match the mask that the bank displays to the user.
     * @type {string}
     * @memberof BaseReportAccount
     */
    mask: string | null;
    /**
     *
     * @type {BaseReportAccountMetadata}
     * @memberof BaseReportAccount
     */
    metadata: BaseReportAccountMetadata;
    /**
     * The name of the account, either assigned by the user or by the financial institution itself
     * @type {string}
     * @memberof BaseReportAccount
     */
    name: string;
    /**
     * The official name of the account as given by the financial institution
     * @type {string}
     * @memberof BaseReportAccount
     */
    official_name: string | null;
    /**
     *
     * @type {AccountType}
     * @memberof BaseReportAccount
     */
    type: AccountType;
    /**
     *
     * @type {AccountSubtype}
     * @memberof BaseReportAccount
     */
    subtype: AccountSubtype | null;
    /**
     * The duration of transaction history available within this report for this Item, typically defined as the time since the date of the earliest transaction in that account. Only returned by Base Report endpoints.
     * @type {number}
     * @memberof BaseReportAccount
     */
    days_available: number;
    /**
     * Transaction history associated with the account. Only returned by Base Report endpoints. Transaction history returned by endpoints such as `/transactions/get` or `/investments/transactions/get` will be returned in the top-level `transactions` field instead.
     * @type {Array<BaseReportTransaction>}
     * @memberof BaseReportAccount
     */
    transactions: Array<BaseReportTransaction>;
    /**
     * Data returned by the financial institution about the account owner or owners. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution. Multiple owners on a single account will be represented in the same `owner` object, not in multiple owner objects within the array. This array can also be empty if no owners are found.
     * @type {Array<Owner>}
     * @memberof BaseReportAccount
     */
    owners: Array<Owner>;
    /**
     *
     * @type {OwnershipType}
     * @memberof BaseReportAccount
     */
    ownership_type: OwnershipType | null;
    /**
     * Calculated data about the historical balances on the account. Only returned by Base Report endpoints and currently not supported by `brokerage` or `investment` accounts.
     * @type {Array<BaseReportHistoricalBalance>}
     * @memberof BaseReportAccount
     */
    historical_balances?: Array<BaseReportHistoricalBalance>;
    /**
     *
     * @type {BaseReportAccountInsights}
     * @memberof BaseReportAccount
     */
    account_insights?: BaseReportAccountInsights;
    /**
     *
     * @type {BaseReportAttributes}
     * @memberof BaseReportAccount
     */
    attributes?: BaseReportAttributes;
}
/**
 * Base Report information about an account\'s balances
 * @export
 * @interface BaseReportAccountBalances
 */
export interface BaseReportAccountBalances {
    /**
     * The amount of funds available to be withdrawn from the account, as determined by the financial institution.  For `credit`-type accounts, the `available` balance typically equals the `limit` less the `current` balance, less any pending outflows plus any pending inflows.  For `depository`-type accounts, the `available` balance typically equals the `current` balance less any pending outflows plus any pending inflows. For `depository`-type accounts, the `available` balance does not include the overdraft limit.  For `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier), the `available` balance is the total cash available to withdraw as presented by the institution.  Note that not all institutions calculate the `available`  balance. In the event that `available` balance is unavailable, Plaid will return an `available` balance value of `null`.  Available balance may be cached and is not guaranteed to be up-to-date in realtime unless the value was returned by `/accounts/balance/get`.  If `current` is `null` this field is guaranteed not to be `null`.
     * @type {number}
     * @memberof BaseReportAccountBalances
     */
    available: number | null;
    /**
     * The total amount of funds in or owed by the account.  For `credit`-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.  For `loan`-type accounts, the current balance is the principal remaining on the loan, except in the case of student loan accounts at Sallie Mae (`ins_116944`). For Sallie Mae student loans, the account\'s balance includes both principal and any outstanding interest.  For `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier), the current balance is the total value of assets as presented by the institution.  Note that balance information may be cached unless the value was returned by `/accounts/balance/get`; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require realtime balance information, use the `available` balance as provided by `/accounts/balance/get`.  When returned by `/accounts/balance/get`, this field may be `null`. When this happens, `available` is guaranteed not to be `null`.
     * @type {number}
     * @memberof BaseReportAccountBalances
     */
    current: number | null;
    /**
     * For `credit`-type accounts, this represents the credit limit.  For `depository`-type accounts, this represents the pre-arranged overdraft limit, which is common for current (checking) accounts in Europe.  In North America, this field is typically only available for `credit`-type accounts.
     * @type {number}
     * @memberof BaseReportAccountBalances
     */
    limit: number | null;
    /**
     * The ISO-4217 currency code of the balance. Always null if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof BaseReportAccountBalances
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the balance. Always null if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
     * @type {string}
     * @memberof BaseReportAccountBalances
     */
    unofficial_currency_code: string | null;
    /**
     * Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the oldest acceptable balance when making a request to `/accounts/balance/get`.  This field is only used and expected when the institution is `ins_128026` (Capital One) and the Item contains one or more accounts with a non-depository account type, in which case a value must be provided or an `INVALID_REQUEST` error with the code of `INVALID_FIELD` will be returned. For Capital One depository accounts as well as all other account types on all other institutions, this field is ignored. See [account type schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of account types.  If the balance that is pulled is older than the given timestamp for Items with this field required, an `INVALID_REQUEST` error with the code of `LAST_UPDATED_DATETIME_OUT_OF_RANGE` will be returned with the most recent timestamp for the requested account contained in the response.
     * @type {string}
     * @memberof BaseReportAccountBalances
     */
    last_updated_datetime?: string | null;
    /**
     * The average historical balance for the entire report
     * @type {number}
     * @memberof BaseReportAccountBalances
     */
    average_balance?: number | null;
    /**
     * The average historical balance of each calendar month
     * @type {Array<BaseReportAverageMonthlyBalances>}
     * @memberof BaseReportAccountBalances
     */
    average_monthly_balances?: Array<BaseReportAverageMonthlyBalances>;
    /**
     * The average historical balance from the most recent 30 days
     * @type {number}
     * @memberof BaseReportAccountBalances
     */
    most_recent_thirty_day_average_balance?: number | null;
}
/**
 * Calculated insights derived from transaction-level data.
 * @export
 * @interface BaseReportAccountInsights
 */
export interface BaseReportAccountInsights {
    /**
     * Date of the earliest transaction in the base report for the account.
     * @type {string}
     * @memberof BaseReportAccountInsights
     */
    oldest_transaction_date?: string | null;
    /**
     * Date of the most recent transaction in the base report for the account.
     * @type {string}
     * @memberof BaseReportAccountInsights
     */
    most_recent_transaction_date?: string | null;
    /**
     * Number of days days available in the base report for the account.
     * @type {number}
     * @memberof BaseReportAccountInsights
     */
    days_available?: number;
    /**
     * Average number of days between sequential transactions
     * @type {number}
     * @memberof BaseReportAccountInsights
     */
    average_days_between_transactions?: number;
    /**
     * Longest gap between sequential transactions in a time period. This array can include multiple time periods.
     * @type {Array<BaseReportLongestGapInsights>}
     * @memberof BaseReportAccountInsights
     */
    longest_gaps_between_transactions?: Array<BaseReportLongestGapInsights>;
    /**
     * The number of debits into the account. This array will be empty for non-depository accounts.
     * @type {Array<BaseReportNumberFlowInsights>}
     * @memberof BaseReportAccountInsights
     */
    number_of_inflows?: Array<BaseReportNumberFlowInsights>;
    /**
     * Average amount of debit transactions into the account in a time period. This array will be empty for non-depository accounts. This field only takes into account USD transactions from the account.
     * @type {Array<BaseReportAverageFlowInsights>}
     * @memberof BaseReportAccountInsights
     */
    average_inflow_amounts?: Array<BaseReportAverageFlowInsights>;
    /**
     * The number of outflows from the account. This array will be empty for non-depository accounts.
     * @type {Array<BaseReportNumberFlowInsights>}
     * @memberof BaseReportAccountInsights
     */
    number_of_outflows?: Array<BaseReportNumberFlowInsights>;
    /**
     * Average amount of transactions out of the account in a time period. This array will be empty for non-depository accounts. This field only takes into account USD transactions from the account.
     * @type {Array<BaseReportAverageFlowInsights>}
     * @memberof BaseReportAccountInsights
     */
    average_outflow_amounts?: Array<BaseReportAverageFlowInsights>;
    /**
     * Number of days with no transactions
     * @type {number}
     * @memberof BaseReportAccountInsights
     */
    number_of_days_no_transactions?: number;
}
/**
 * Base Report metadata about the extracted account.
 * @export
 * @interface BaseReportAccountMetadata
 */
export interface BaseReportAccountMetadata {
    /**
     * The date of the earliest extracted transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof BaseReportAccountMetadata
     */
    start_date: string | null;
    /**
     * The date of the most recent extracted transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof BaseReportAccountMetadata
     */
    end_date: string | null;
}
/**
 * Calculated attributes derived from transaction-level data.
 * @export
 * @interface BaseReportAttributes
 */
export interface BaseReportAttributes {
    /**
     * The number of NSF and overdraft fee transactions in the time range for the report in the given account.
     * @type {number}
     * @memberof BaseReportAttributes
     */
    nsf_overdraft_transactions_count?: number;
    /**
     * The number of NSF and overdraft fee transactions in the last 30 days for a given account.
     * @type {number}
     * @memberof BaseReportAttributes
     */
    nsf_overdraft_transactions_count_30d?: number;
    /**
     * The number of NSF and overdraft fee transactions in the last 60 days for a given account.
     * @type {number}
     * @memberof BaseReportAttributes
     */
    nsf_overdraft_transactions_count_60d?: number;
    /**
     * The number of NSF and overdraft fee transactions in the last 90 days for a given account.
     * @type {number}
     * @memberof BaseReportAttributes
     */
    nsf_overdraft_transactions_count_90d?: number;
    /**
     * Prediction indicator of whether the account is a primary account. Only one account per account type across the items connected will have a value of true.
     * @type {boolean}
     * @memberof BaseReportAttributes
     */
    is_primary_account?: boolean | null;
    /**
     * Value ranging from 0-1. The higher the score, the more confident we are of the account being the primary account.
     * @type {number}
     * @memberof BaseReportAttributes
     */
    primary_account_score?: number | null;
    /**
     *
     * @type {TotalInflowAmount}
     * @memberof BaseReportAttributes
     */
    total_inflow_amount?: TotalInflowAmount | null;
    /**
     *
     * @type {TotalInflowAmount30d}
     * @memberof BaseReportAttributes
     */
    total_inflow_amount_30d?: TotalInflowAmount30d | null;
    /**
     *
     * @type {TotalInflowAmount60d}
     * @memberof BaseReportAttributes
     */
    total_inflow_amount_60d?: TotalInflowAmount60d | null;
    /**
     *
     * @type {TotalInflowAmount90d}
     * @memberof BaseReportAttributes
     */
    total_inflow_amount_90d?: TotalInflowAmount90d | null;
    /**
     *
     * @type {TotalOutflowAmount}
     * @memberof BaseReportAttributes
     */
    total_outflow_amount?: TotalOutflowAmount | null;
    /**
     *
     * @type {TotalOutflowAmount30d}
     * @memberof BaseReportAttributes
     */
    total_outflow_amount_30d?: TotalOutflowAmount30d | null;
    /**
     *
     * @type {TotalOutflowAmount60d}
     * @memberof BaseReportAttributes
     */
    total_outflow_amount_60d?: TotalOutflowAmount60d | null;
    /**
     *
     * @type {TotalOutflowAmount90d}
     * @memberof BaseReportAttributes
     */
    total_outflow_amount_90d?: TotalOutflowAmount90d | null;
}
/**
 * Average dollar amount of credit or debit transactions out of the account. This field will only be included for depository accounts.
 * @export
 * @interface BaseReportAverageFlowInsights
 */
export interface BaseReportAverageFlowInsights {
    /**
     * The start date of this time period. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof BaseReportAverageFlowInsights
     */
    start_date: string;
    /**
     * The end date of this time period. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof BaseReportAverageFlowInsights
     */
    end_date: string;
    /**
     *
     * @type {CreditAmountWithCurrency}
     * @memberof BaseReportAverageFlowInsights
     */
    total_amount: CreditAmountWithCurrency;
}
/**
 * Average balance in dollar amount per month
 * @export
 * @interface BaseReportAverageMonthlyBalances
 */
export interface BaseReportAverageMonthlyBalances {
    /**
     * The start date of this time period. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof BaseReportAverageMonthlyBalances
     */
    start_date: string;
    /**
     * The end date of this time period. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof BaseReportAverageMonthlyBalances
     */
    end_date: string;
    /**
     *
     * @type {CreditAmountWithCurrency}
     * @memberof BaseReportAverageMonthlyBalances
     */
    average_balance: CreditAmountWithCurrency;
}
/**
 * An object representing a balance held by an account in the past
 * @export
 * @interface BaseReportHistoricalBalance
 */
export interface BaseReportHistoricalBalance {
    /**
     * The date of the calculated historical balance, in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)
     * @type {string}
     * @memberof BaseReportHistoricalBalance
     */
    date: string;
    /**
     * The total amount of funds in the account, calculated from the `current` balance in the `balance` object by subtracting inflows and adding back outflows according to the posted date of each transaction.  If the account has any pending transactions, historical balance amounts on or after the date of the earliest pending transaction may differ if retrieved in subsequent Asset Reports as a result of those pending transactions posting.
     * @type {number}
     * @memberof BaseReportHistoricalBalance
     */
    current: number;
    /**
     * The ISO-4217 currency code of the balance. Always `null` if `unofficial_currency_code` is non-`null`.
     * @type {string}
     * @memberof BaseReportHistoricalBalance
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the balance. Always `null` if `iso_currency_code` is non-`null`.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
     * @type {string}
     * @memberof BaseReportHistoricalBalance
     */
    unofficial_currency_code: string | null;
}
/**
 * A representation of an Item within a Base Report.
 * @export
 * @interface BaseReportItem
 */
export interface BaseReportItem {
    /**
     * The full financial institution name associated with the Item.
     * @type {string}
     * @memberof BaseReportItem
     */
    institution_name: string;
    /**
     * The id of the financial institution associated with the Item.
     * @type {string}
     * @memberof BaseReportItem
     */
    institution_id: string;
    /**
     * The date and time when this Item’s data was last retrieved from the financial institution, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof BaseReportItem
     */
    date_last_updated: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof BaseReportItem
     */
    item_id: string;
    /**
     * Data about each of the accounts open on the Item.
     * @type {Array<BaseReportAccount>}
     * @memberof BaseReportItem
     */
    accounts: Array<BaseReportAccount>;
}
/**
 * Largest number of days between sequential transactions per calendar month
 * @export
 * @interface BaseReportLongestGapInsights
 */
export interface BaseReportLongestGapInsights {
    /**
     * The start date of this time period. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof BaseReportLongestGapInsights
     */
    start_date?: string;
    /**
     * The end date of this time period. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof BaseReportLongestGapInsights
     */
    end_date?: string;
    /**
     * Largest number of days between sequential transactions for this time period.
     * @type {number}
     * @memberof BaseReportLongestGapInsights
     */
    days?: number | null;
}
/**
 * The number of credits or debits out of the account. This field will only be included for depository accounts.
 * @export
 * @interface BaseReportNumberFlowInsights
 */
export interface BaseReportNumberFlowInsights {
    /**
     * The start date of this time period. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof BaseReportNumberFlowInsights
     */
    start_date: string;
    /**
     * The end date of this time period. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof BaseReportNumberFlowInsights
     */
    end_date: string;
    /**
     * The number of credits or debits out of the account for this time period.
     * @type {number}
     * @memberof BaseReportNumberFlowInsights
     */
    count: number;
}
/**
 * A transaction on the Base Report
 * @export
 * @interface BaseReportTransaction
 */
export interface BaseReportTransaction {
    /**
     * The ID of the account in which this transaction occurred.
     * @type {string}
     * @memberof BaseReportTransaction
     */
    account_id: string;
    /**
     * The settled value of the transaction, denominated in the transaction\'s currency, as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative.
     * @type {number}
     * @memberof BaseReportTransaction
     */
    amount: number;
    /**
     * The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof BaseReportTransaction
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the transaction. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
     * @type {string}
     * @memberof BaseReportTransaction
     */
    unofficial_currency_code: string | null;
    /**
     * The string returned by the financial institution to describe the transaction.
     * @type {string}
     * @memberof BaseReportTransaction
     */
    original_description: string | null;
    /**
     *
     * @type {CreditCategory}
     * @memberof BaseReportTransaction
     */
    credit_category?: CreditCategory | null;
    /**
     * The check number of the transaction. This field is only populated for check transactions.
     * @type {string}
     * @memberof BaseReportTransaction
     */
    check_number?: string | null;
    /**
     * For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` ).
     * @type {string}
     * @memberof BaseReportTransaction
     */
    date: string;
    /**
     * The date on which the transaction took place, in IS0 8601 format.
     * @type {string}
     * @memberof BaseReportTransaction
     */
    date_transacted?: string | null;
    /**
     *
     * @type {Location}
     * @memberof BaseReportTransaction
     */
    location?: Location;
    /**
     * The merchant name, as enriched by Plaid from the `name` field. This is typically a more human-readable version of the merchant counterparty in the transaction. For some bank transactions (such as checks or account transfers) where there is no meaningful merchant name, this value will be `null`.
     * @type {string}
     * @memberof BaseReportTransaction
     */
    merchant_name?: string | null;
    /**
     * When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
     * @type {boolean}
     * @memberof BaseReportTransaction
     */
    pending: boolean;
    /**
     * The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts.
     * @type {string}
     * @memberof BaseReportTransaction
     */
    account_owner?: string | null;
    /**
     * The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
     * @type {string}
     * @memberof BaseReportTransaction
     */
    transaction_id: string;
    /**
     *
     * @type {BaseReportTransactionType}
     * @memberof BaseReportTransaction
     */
    transaction_type?: BaseReportTransactionType | null;
    /**
     * A hierarchical array of the categories to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).
     * @type {Array<string>}
     * @memberof BaseReportTransaction
     */
    category?: Array<string> | null;
    /**
     * The ID of the category to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).
     * @type {string}
     * @memberof BaseReportTransaction
     */
    category_id?: string | null;
}
/**
 * `digital:` transactions that took place online.  `place:` transactions that were made at a physical location.  `special:` transactions that relate to banks, e.g. fees or deposits.  `unresolved:` transactions that do not fit into the other types.
 * @export
 * @enum {string}
 */
export declare enum BaseReportTransactionType {
    Digital = "digital",
    Place = "place",
    Special = "special",
    Unresolved = "unresolved"
}
/**
 * It is possible for a Base Report to be returned with missing account owner information. In such cases, the Base Report will contain warning data in the response, indicating why obtaining the owner information failed.
 * @export
 * @interface BaseReportWarning
 */
export interface BaseReportWarning {
    /**
     * The warning type, which will always be `BASE_REPORT_WARNING`
     * @type {string}
     * @memberof BaseReportWarning
     */
    warning_type: string;
    /**
     *
     * @type {BaseReportWarningCode}
     * @memberof BaseReportWarning
     */
    warning_code: BaseReportWarningCode;
    /**
     *
     * @type {Cause}
     * @memberof BaseReportWarning
     */
    cause: Cause | null;
}
/**
 * The warning code identifies a specific kind of warning. `OWNERS_UNAVAILABLE` indicates that account-owner information is not available. `TRANSACTIONS_UNAVAILABLE` indicates that transactions information associated with Credit and Depository accounts are unavailable. `USER_FRAUD_ALERT` indicates that the User has placed a fraud alert on their Plaid Check consumer report due to suspected fraud.
 * @export
 * @enum {string}
 */
export declare enum BaseReportWarningCode {
    OwnersUnavailable = "OWNERS_UNAVAILABLE",
    TransactionsUnavailable = "TRANSACTIONS_UNAVAILABLE",
    UserFraudAlert = "USER_FRAUD_ALERT"
}
/**
 * Fired when Base Report generation has failed. The resulting `error` will have an `error_type` of `BASE_REPORT_ERROR`.
 * @export
 * @interface BaseReportsErrorWebhook
 */
export interface BaseReportsErrorWebhook {
    /**
     * `BASE_REPORT`
     * @type {string}
     * @memberof BaseReportsErrorWebhook
     */
    webhook_type: string;
    /**
     * `ERROR`
     * @type {string}
     * @memberof BaseReportsErrorWebhook
     */
    webhook_code: string;
    /**
     *
     * @type {PlaidError}
     * @memberof BaseReportsErrorWebhook
     */
    error: PlaidError | null;
    /**
     * The `user_id` corresponding to the User ID the webhook has fired for.
     * @type {string}
     * @memberof BaseReportsErrorWebhook
     */
    user_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof BaseReportsErrorWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * The attributes object contains data that can be used to assess account risk. Examples of data include: `days_since_first_plaid_connection`: The number of days since the first time the Item was connected to an application via Plaid `plaid_connections_count_7d`: The number of times the Item has been connected to applications via Plaid over the past 7 days `plaid_connections_count_30d`: The number of times the Item has been connected to applications via Plaid over the past 30 days `total_plaid_connections_count`: The number of times the Item has been connected to applications via Plaid For the full list and detailed documentation of core attributes available, or to request that core attributes not be returned, contact Sales or your Plaid account manager
 * @export
 * @interface BeaconAccountRiskAttributes
 */
export interface BeaconAccountRiskAttributes {
    /**
     * The number of days since the first time the Item was connected to an application via Plaid
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    days_since_first_plaid_connection: number | null;
    /**
     * Indicates if the account has been closed by the financial institution or the consumer, or is at risk of being closed
     * @type {boolean}
     * @memberof BeaconAccountRiskAttributes
     */
    is_account_closed: boolean | null;
    /**
     * Indicates whether the account has withdrawals and transfers disabled or if access to the account is restricted. This could be due to a freeze by the credit issuer, legal restrictions (e.g., sanctions), or regulatory requirements limiting monthly withdrawals, among other reasons
     * @type {boolean}
     * @memberof BeaconAccountRiskAttributes
     */
    is_account_frozen_or_restricted: boolean | null;
    /**
     * The total number of times the item has been connected to applications via Plaid
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    total_plaid_connections_count: number | null;
    /**
     * The number of times the Item has been connected to applications via Plaid over the past 7 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    plaid_connections_count_7d: number | null;
    /**
     * The number of times the Item has been connected to applications via Plaid over the past 30 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    plaid_connections_count_30d: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_3d: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    plaid_non_oauth_authentication_attempts_count_3d: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_7d: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    plaid_non_oauth_authentication_attempts_count_7d: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_30d: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    plaid_non_oauth_authentication_attempts_count_30d: number | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 3 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    distinct_ip_addresses_count_3d: number | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 7 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    distinct_ip_addresses_count_7d: number | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 30 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    distinct_ip_addresses_count_30d: number | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 90 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    distinct_ip_addresses_count_90d: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 3 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    distinct_user_agents_count_3d: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 7 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    distinct_user_agents_count_7d: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 30 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    distinct_user_agents_count_30d: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 90 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    distinct_user_agents_count_90d: number | null;
    /**
     * The number of times the account\'s addresses on file have changed over the past 28 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    address_change_count_28d: number | null;
    /**
     * The number of times the account\'s email addresses on file have changed over the past 28 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    email_change_count_28d: number | null;
    /**
     * The number of times the account\'s phone numbers on file have changed over the past 28 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    phone_change_count_28d: number | null;
    /**
     * The number of times the account\'s addresses on file have changed over the past 90 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    address_change_count_90d: number | null;
    /**
     * The number of times the account\'s email addresses on file have changed over the past 90 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    email_change_count_90d: number | null;
    /**
     * The number of times the account\'s phone numbers on file have changed over the past 90 days
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    phone_change_count_90d: number | null;
    /**
     * The number of days since the bank account was opened, as reported by the financial institution
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    days_since_account_opening: number | null;
    /**
     * The number of days since the oldest transaction available to Plaid for this account. This measure, combined with Plaid connection history, can be used to infer the age of the account
     * @type {number}
     * @memberof BeaconAccountRiskAttributes
     */
    days_since_first_observed_transaction: number | null;
}
/**
 * An account in the `/beacon/account_risk/v1/evaluate` response.
 * @export
 * @interface BeaconAccountRiskEvaluateAccount
 */
export interface BeaconAccountRiskEvaluateAccount {
    /**
     * The account ID.
     * @type {string}
     * @memberof BeaconAccountRiskEvaluateAccount
     */
    account_id?: string;
    /**
     *
     * @type {AccountType}
     * @memberof BeaconAccountRiskEvaluateAccount
     */
    type?: AccountType;
    /**
     *
     * @type {AccountSubtype}
     * @memberof BeaconAccountRiskEvaluateAccount
     */
    subtype?: AccountSubtype | null;
    /**
     *
     * @type {BeaconAccountRiskEvaluateAccountAttributes}
     * @memberof BeaconAccountRiskEvaluateAccount
     */
    attributes?: BeaconAccountRiskEvaluateAccountAttributes;
}
/**
 * The attributes object contains data that can be used to assess account risk. Examples of data include: `days_since_first_plaid_connection`: The number of days since the first time the Item was connected to an application via Plaid `plaid_connections_count_7d`: The number of times the Item has been connected to applications via Plaid over the past 7 days `plaid_connections_count_30d`: The number of times the Item has been connected to applications via Plaid over the past 30 days `total_plaid_connections_count`: The number of times the Item has been connected to applications via Plaid For the full list and detailed documentation of core attributes available, or to request that core attributes not be returned, contact Sales or your Plaid account manager
 * @export
 * @interface BeaconAccountRiskEvaluateAccountAttributes
 */
export interface BeaconAccountRiskEvaluateAccountAttributes {
    /**
     * The number of days since the first time the Item was connected to an application via Plaid
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    days_since_first_plaid_connection?: number | null;
    /**
     * Indicates if the account has been closed by the financial institution or the consumer, or is at risk of being closed
     * @type {boolean}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    is_account_closed?: boolean | null;
    /**
     * Indicates whether the account has withdrawals and transfers disabled or if access to the account is restricted. This could be due to a freeze by the credit issuer, legal restrictions (e.g., sanctions), or regulatory requirements limiting monthly withdrawals, among other reasons
     * @type {boolean}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    is_account_frozen_or_restricted?: boolean | null;
    /**
     * The total number of times the item has been connected to applications via Plaid
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    total_plaid_connections_count?: number | null;
    /**
     * The number of times the Item has been connected to applications via Plaid over the past 7 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    plaid_connections_count_7d?: number | null;
    /**
     * The number of times the Item has been connected to applications via Plaid over the past 30 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    plaid_connections_count_30d?: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_3d?: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    plaid_non_oauth_authentication_attempts_count_3d?: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_7d?: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    plaid_non_oauth_authentication_attempts_count_7d?: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_30d?: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    plaid_non_oauth_authentication_attempts_count_30d?: number | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 3 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    distinct_ip_addresses_count_3d?: number | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 7 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    distinct_ip_addresses_count_7d?: number | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 30 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    distinct_ip_addresses_count_30d?: number | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 90 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    distinct_ip_addresses_count_90d?: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 3 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    distinct_user_agents_count_3d?: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 7 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    distinct_user_agents_count_7d?: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 30 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    distinct_user_agents_count_30d?: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 90 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    distinct_user_agents_count_90d?: number | null;
    /**
     * The number of times the account\'s addresses on file have changed over the past 28 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    address_change_count_28d?: number | null;
    /**
     * The number of times the account\'s email addresses on file have changed over the past 28 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    email_change_count_28d?: number | null;
    /**
     * The number of times the account\'s phone numbers on file have changed over the past 28 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    phone_change_count_28d?: number | null;
    /**
     * The number of times the account\'s addresses on file have changed over the past 90 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    address_change_count_90d?: number | null;
    /**
     * The number of times the account\'s email addresses on file have changed over the past 90 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    email_change_count_90d?: number | null;
    /**
     * The number of times the account\'s phone numbers on file have changed over the past 90 days
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    phone_change_count_90d?: number | null;
    /**
     * The number of days since the bank account was opened, as reported by the financial institution
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    days_since_account_opening?: number | null;
    /**
     * The number of days since the oldest transaction available to Plaid for this account. This measure, combined with Plaid connection history, can be used to infer the age of the account
     * @type {number}
     * @memberof BeaconAccountRiskEvaluateAccountAttributes
     */
    days_since_first_observed_transaction?: number | null;
}
/**
 * Description of the reason you want to evaluate risk. `ONBOARDING`: user links a first bank account as part of the onboarding flow of your platform. `NEW_ACCOUNT`: user links another bank account or replaces the currently linked bank account on your platform. `INFORMATION_CHANGE`: user changes their information on your platform, e.g., updating their phone number. `DORMANT_USER`:  you decide to re-evaluate a user that becomes active after a period of inactivity.   `OTHER`: any other reasons not listed here Possible values:  `ONBOARDING`, `NEW_ACCOUNT`, `INFORMATION_CHANGE`, `DORMANT_USER`, `OTHER`
 * @export
 * @enum {string}
 */
export declare enum BeaconAccountRiskEvaluateEvaluationReason {
    Onboarding = "ONBOARDING",
    NewAccount = "NEW_ACCOUNT",
    InformationChange = "INFORMATION_CHANGE",
    DormantUser = "DORMANT_USER",
    Other = "OTHER"
}
/**
 * BeaconAccountRiskEvaluateRequest defines the request schema for `/v1/beacon/account_risk/risk/evaluate`
 * @export
 * @interface BeaconAccountRiskEvaluateRequest
 */
export interface BeaconAccountRiskEvaluateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconAccountRiskEvaluateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconAccountRiskEvaluateRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof BeaconAccountRiskEvaluateRequest
     */
    access_token?: string;
    /**
     *
     * @type {BeaconAccountRiskEvaluateRequestOptions}
     * @memberof BeaconAccountRiskEvaluateRequest
     */
    options?: BeaconAccountRiskEvaluateRequestOptions;
    /**
     * A unique ID that identifies the end user in your system. This ID is used to correlate requests by a user with multiple evaluations and/or multiple linked accounts. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.
     * @type {string}
     * @memberof BeaconAccountRiskEvaluateRequest
     */
    client_user_id?: string;
    /**
     * Unique identifier of what you are looking to evaluate (account add, information change, etc.) to allow us to tie the activity to the decisions and possible fraud outcome sent via our feedback endpoints. You can use your internal request ID or similar.
     * @type {string}
     * @memberof BeaconAccountRiskEvaluateRequest
     */
    client_evaluation_id?: string;
    /**
     *
     * @type {BeaconAccountRiskEvaluateEvaluationReason}
     * @memberof BeaconAccountRiskEvaluateRequest
     */
    evaluation_reason?: BeaconAccountRiskEvaluateEvaluationReason;
    /**
     *
     * @type {SignalDevice}
     * @memberof BeaconAccountRiskEvaluateRequest
     */
    device?: SignalDevice;
    /**
     * The time the event for evaluation has occurred. Populate this field for backfilling data. If you don’t populate this field, we’ll use the timestamp at the time of receipt. Use ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ).
     * @type {string}
     * @memberof BeaconAccountRiskEvaluateRequest
     */
    evaluate_time?: string;
}
/**
 * An optional object to filter `/beacon/account_risk/v1/evaluate` results to a subset of the accounts on the linked Item.
 * @export
 * @interface BeaconAccountRiskEvaluateRequestOptions
 */
export interface BeaconAccountRiskEvaluateRequestOptions {
    /**
     * An array of `account_ids` for the specific accounts to evaluate.
     * @type {Array<string>}
     * @memberof BeaconAccountRiskEvaluateRequestOptions
     */
    account_ids?: Array<string>;
}
/**
 * BeaconAccountRiskEvaluateResponse defines the response schema for `/beacon/account_risk/v1/evaluate`
 * @export
 * @interface BeaconAccountRiskEvaluateResponse
 */
export interface BeaconAccountRiskEvaluateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconAccountRiskEvaluateResponse
     */
    request_id: string;
    /**
     * The accounts for which a risk evaluation has been requested.
     * @type {Array<BeaconAccountRiskEvaluateAccount>}
     * @memberof BeaconAccountRiskEvaluateResponse
     */
    accounts: Array<BeaconAccountRiskEvaluateAccount>;
}
/**
 * Information about the last change made to the parent object specifying what caused the change as well as when it occurred.
 * @export
 * @interface BeaconAuditTrail
 */
export interface BeaconAuditTrail {
    /**
     *
     * @type {BeaconAuditTrailSource}
     * @memberof BeaconAuditTrail
     */
    source: BeaconAuditTrailSource;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof BeaconAuditTrail
     */
    dashboard_user_id: string | null;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof BeaconAuditTrail
     */
    timestamp: string;
}
/**
 * A type indicating what caused a resource to be changed or updated.   `dashboard` - The resource was created or updated by a member of your team via the Plaid dashboard.  `api` - The resource was created or updated via the Plaid API.  `system` - The resource was created or updated automatically by a part of the Plaid Beacon system. For example, if another business using Plaid Beacon created a fraud report that matched one of your users, your matching user\'s status would automatically be updated and the audit trail source would be `system`.  `bulk_import` - The resource was created or updated as part of a bulk import process. For example, if your company provided a CSV of user data as part of your initial onboarding, the audit trail source would be `bulk_import`.
 * @export
 * @enum {string}
 */
export declare enum BeaconAuditTrailSource {
    Dashboard = "dashboard",
    Api = "api",
    System = "system",
    BulkImport = "bulk_import"
}
/**
 * Bank Account Insights encapsulate the risk insights for a single Bank Account linked to an Item that is assocaited with a Beacon User.
 * @export
 * @interface BeaconBankAccountInsights
 */
export interface BeaconBankAccountInsights {
    /**
     * The Plaid `account_id`
     * @type {string}
     * @memberof BeaconBankAccountInsights
     */
    account_id: string;
    /**
     *
     * @type {AccountType}
     * @memberof BeaconBankAccountInsights
     */
    type: AccountType;
    /**
     *
     * @type {AccountSubtype}
     * @memberof BeaconBankAccountInsights
     */
    subtype: AccountSubtype | null;
    /**
     *
     * @type {BeaconAccountRiskAttributes}
     * @memberof BeaconBankAccountInsights
     */
    attributes: BeaconAccountRiskAttributes;
}
/**
 * A collection of Bank Accounts linked to an Item that is associated with this Beacon User.
 * @export
 * @interface BeaconBankAccounts
 */
export interface BeaconBankAccounts {
    /**
     * The Plaid Item ID the Bank Accounts belong to.
     * @type {string}
     * @memberof BeaconBankAccounts
     */
    item_id: string;
    /**
     *
     * @type {Array<BeaconBankAccountInsights>}
     * @memberof BeaconBankAccounts
     */
    accounts: Array<BeaconBankAccountInsights>;
}
/**
 * Fired when a Beacon User created within your organization matches one of your existing users.
 * @export
 * @interface BeaconDuplicateDetectedWebhook
 */
export interface BeaconDuplicateDetectedWebhook {
    /**
     * `BEACON`
     * @type {string}
     * @memberof BeaconDuplicateDetectedWebhook
     */
    webhook_type: string;
    /**
     * `DUPLICATE_DETECTED`
     * @type {string}
     * @memberof BeaconDuplicateDetectedWebhook
     */
    webhook_code: string;
    /**
     * The ID of the associated Beacon Duplicate.
     * @type {string}
     * @memberof BeaconDuplicateDetectedWebhook
     */
    beacon_duplicate_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof BeaconDuplicateDetectedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Request input for getting a Beacon Duplicate
 * @export
 * @interface BeaconDuplicateGetRequest
 */
export interface BeaconDuplicateGetRequest {
    /**
     * ID of the associated Beacon Duplicate.
     * @type {string}
     * @memberof BeaconDuplicateGetRequest
     */
    beacon_duplicate_id: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconDuplicateGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconDuplicateGetRequest
     */
    secret?: string;
}
/**
 * A Beacon Duplicate represents a pair of matching Beacon Users and an analysis of the fields they matched on.
 * @export
 * @interface BeaconDuplicateGetResponse
 */
export interface BeaconDuplicateGetResponse {
    /**
     * ID of the associated Beacon Duplicate.
     * @type {string}
     * @memberof BeaconDuplicateGetResponse
     */
    id: string;
    /**
     *
     * @type {BeaconUserRevision}
     * @memberof BeaconDuplicateGetResponse
     */
    beacon_user1: BeaconUserRevision;
    /**
     *
     * @type {BeaconUserRevision}
     * @memberof BeaconDuplicateGetResponse
     */
    beacon_user2: BeaconUserRevision;
    /**
     *
     * @type {BeaconMatchSummaryAnalysis}
     * @memberof BeaconDuplicateGetResponse
     */
    analysis: BeaconMatchSummaryAnalysis;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconDuplicateGetResponse
     */
    request_id: string;
}
/**
 * Analysis of which fields matched between one Beacon User and another.
 * @export
 * @interface BeaconMatchSummaryAnalysis
 */
export interface BeaconMatchSummaryAnalysis {
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconMatchSummaryAnalysis
     */
    address: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconMatchSummaryAnalysis
     */
    date_of_birth: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconMatchSummaryAnalysis
     */
    email_address: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconMatchSummaryAnalysis
     */
    name: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconMatchSummaryAnalysis
     */
    id_number: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconMatchSummaryAnalysis
     */
    ip_address: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconMatchSummaryAnalysis
     */
    phone_number: BeaconMatchSummaryCode;
}
/**
 * An enum indicating the match type between two Beacon Users.   `match` indicates that the provided input data was a strong match against the other Beacon User.  `partial_match` indicates the data approximately matched the other Beacon User. For example, \"Knope\" vs. \"Knope-Wyatt\" for last name.  `no_match` indicates that Plaid was able to compare this field against the other Beacon User and it did not match the provided input data.  `no_data` indicates that Plaid was unable to compare this field against the original Beacon User because the field was not present in one of the Beacon Users.
 * @export
 * @enum {string}
 */
export declare enum BeaconMatchSummaryCode {
    Match = "match",
    PartialMatch = "partial_match",
    NoMatch = "no_match",
    NoData = "no_data"
}
/**
 * A Beacon Report describes the type of fraud committed by a user as well as the date the fraud was committed and the total amount of money lost due to the fraud incident.  This information is used to block similar fraud attempts on your platform as well as alert other companies who screen a user with matching identity information. Other companies will not receive any new identity information, just what matched, plus information such as industry, type of fraud, and date of fraud.  You can manage your fraud reports by adding, deleting, or editing reports as you get additional information on fraudulent users.
 * @export
 * @interface BeaconReport
 */
export interface BeaconReport {
    /**
     * ID of the associated Beacon Report.
     * @type {string}
     * @memberof BeaconReport
     */
    id: string;
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconReport
     */
    beacon_user_id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof BeaconReport
     */
    created_at: string;
    /**
     *
     * @type {BeaconReportType}
     * @memberof BeaconReport
     */
    type: BeaconReportType;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconReport
     */
    fraud_date: string | null;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconReport
     */
    event_date: string;
    /**
     *
     * @type {FraudAmount}
     * @memberof BeaconReport
     */
    fraud_amount: FraudAmount | null;
    /**
     *
     * @type {BeaconAuditTrail}
     * @memberof BeaconReport
     */
    audit_trail: BeaconAuditTrail;
}
/**
 * Request input for creating a Beacon Report
 * @export
 * @interface BeaconReportCreateRequest
 */
export interface BeaconReportCreateRequest {
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconReportCreateRequest
     */
    beacon_user_id: string;
    /**
     *
     * @type {BeaconReportCreateType}
     * @memberof BeaconReportCreateRequest
     */
    type: BeaconReportCreateType;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconReportCreateRequest
     */
    fraud_date: string;
    /**
     *
     * @type {FraudAmount}
     * @memberof BeaconReportCreateRequest
     */
    fraud_amount?: FraudAmount | null;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconReportCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconReportCreateRequest
     */
    secret?: string;
}
/**
 * A Beacon Report describes the type of fraud committed by a user as well as the date the fraud was committed and the total amount of money lost due to the fraud incident.  This information is used to block similar fraud attempts on your platform as well as alert other companies who screen a user with matching identity information. Other companies will not receive any new identity information, just what matched, plus information such as industry, type of fraud, and date of fraud.  You can manage your fraud reports by adding, deleting, or editing reports as you get additional information on fraudulent users.
 * @export
 * @interface BeaconReportCreateResponse
 */
export interface BeaconReportCreateResponse {
    /**
     * ID of the associated Beacon Report.
     * @type {string}
     * @memberof BeaconReportCreateResponse
     */
    id: string;
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconReportCreateResponse
     */
    beacon_user_id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof BeaconReportCreateResponse
     */
    created_at: string;
    /**
     *
     * @type {BeaconReportType}
     * @memberof BeaconReportCreateResponse
     */
    type: BeaconReportType;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconReportCreateResponse
     */
    fraud_date: string | null;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconReportCreateResponse
     */
    event_date: string;
    /**
     *
     * @type {FraudAmount}
     * @memberof BeaconReportCreateResponse
     */
    fraud_amount: FraudAmount | null;
    /**
     *
     * @type {BeaconAuditTrail}
     * @memberof BeaconReportCreateResponse
     */
    audit_trail: BeaconAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconReportCreateResponse
     */
    request_id: string;
}
/**
 * The type of Beacon Report.  `first_party`: If this is the same individual as the one who submitted the KYC.  `stolen`: If this is a different individual from the one who submitted the KYC.  `synthetic`: If this is an individual using fabricated information.  `account_takeover`: If this individual\'s account was compromised.  `unknown`: If you aren\'t sure who committed the fraud.
 * @export
 * @enum {string}
 */
export declare enum BeaconReportCreateType {
    FirstParty = "first_party",
    Stolen = "stolen",
    Synthetic = "synthetic",
    AccountTakeover = "account_takeover",
    DataBreach = "data_breach",
    Unknown = "unknown"
}
/**
 * Fired when one of your Beacon Users is first reported to the Beacon network.
 * @export
 * @interface BeaconReportCreatedWebhook
 */
export interface BeaconReportCreatedWebhook {
    /**
     * `BEACON`
     * @type {string}
     * @memberof BeaconReportCreatedWebhook
     */
    webhook_type: string;
    /**
     * `REPORT_CREATED`
     * @type {string}
     * @memberof BeaconReportCreatedWebhook
     */
    webhook_code: string;
    /**
     * The ID of the associated Beacon Report.
     * @type {string}
     * @memberof BeaconReportCreatedWebhook
     */
    beacon_report_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof BeaconReportCreatedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Request input for getting a Beacon Report
 * @export
 * @interface BeaconReportGetRequest
 */
export interface BeaconReportGetRequest {
    /**
     * ID of the associated Beacon Report.
     * @type {string}
     * @memberof BeaconReportGetRequest
     */
    beacon_report_id: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconReportGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconReportGetRequest
     */
    secret?: string;
}
/**
 * A Beacon Report describes the type of fraud committed by a user as well as the date the fraud was committed and the total amount of money lost due to the fraud incident.  This information is used to block similar fraud attempts on your platform as well as alert other companies who screen a user with matching identity information. Other companies will not receive any new identity information, just what matched, plus information such as industry, type of fraud, and date of fraud.  You can manage your fraud reports by adding, deleting, or editing reports as you get additional information on fraudulent users.
 * @export
 * @interface BeaconReportGetResponse
 */
export interface BeaconReportGetResponse {
    /**
     * ID of the associated Beacon Report.
     * @type {string}
     * @memberof BeaconReportGetResponse
     */
    id: string;
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconReportGetResponse
     */
    beacon_user_id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof BeaconReportGetResponse
     */
    created_at: string;
    /**
     *
     * @type {BeaconReportType}
     * @memberof BeaconReportGetResponse
     */
    type: BeaconReportType;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconReportGetResponse
     */
    fraud_date: string | null;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconReportGetResponse
     */
    event_date: string;
    /**
     *
     * @type {FraudAmount}
     * @memberof BeaconReportGetResponse
     */
    fraud_amount: FraudAmount | null;
    /**
     *
     * @type {BeaconAuditTrail}
     * @memberof BeaconReportGetResponse
     */
    audit_trail: BeaconAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconReportGetResponse
     */
    request_id: string;
}
/**
 * Request input for listing Beacon Reports
 * @export
 * @interface BeaconReportListRequest
 */
export interface BeaconReportListRequest {
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconReportListRequest
     */
    beacon_user_id: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof BeaconReportListRequest
     */
    cursor?: string | null;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconReportListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconReportListRequest
     */
    secret?: string;
}
/**
 * The response schema for `/beacon/report/list`
 * @export
 * @interface BeaconReportListResponse
 */
export interface BeaconReportListResponse {
    /**
     *
     * @type {Array<BeaconReport>}
     * @memberof BeaconReportListResponse
     */
    beacon_reports: Array<BeaconReport>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof BeaconReportListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconReportListResponse
     */
    request_id: string;
}
/**
 * A Beacon Report Syndication represents a Beacon Report created either by your organization or another Beacon customer that matches a specific Beacon User you\'ve created.  The `analysis` field in the response indicates which fields matched between the originally reported Beacon User and the Beacon User that the report was syndicated to.  The `report` field in the response contains a subset of information from the original report.
 * @export
 * @interface BeaconReportSyndication
 */
export interface BeaconReportSyndication {
    /**
     * ID of the associated Beacon Report Syndication.
     * @type {string}
     * @memberof BeaconReportSyndication
     */
    id: string;
    /**
     *
     * @type {BeaconReportSyndicationOriginalReport}
     * @memberof BeaconReportSyndication
     */
    report: BeaconReportSyndicationOriginalReport;
    /**
     *
     * @type {BeaconReportSyndicationAnalysis}
     * @memberof BeaconReportSyndication
     */
    analysis: BeaconReportSyndicationAnalysis;
}
/**
 * Analysis of which fields matched between the originally reported Beacon User and the Beacon User that the report was syndicated to.
 * @export
 * @interface BeaconReportSyndicationAnalysis
 */
export interface BeaconReportSyndicationAnalysis {
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconReportSyndicationAnalysis
     */
    address: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconReportSyndicationAnalysis
     */
    date_of_birth: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconReportSyndicationAnalysis
     */
    email_address: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconReportSyndicationAnalysis
     */
    name: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconReportSyndicationAnalysis
     */
    id_number: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconReportSyndicationAnalysis
     */
    ip_address: BeaconMatchSummaryCode;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconReportSyndicationAnalysis
     */
    phone_number: BeaconMatchSummaryCode;
    /**
     *
     * @type {Array<BeaconSyndicatedReportDepositoryAccountMatchAnalysis>}
     * @memberof BeaconReportSyndicationAnalysis
     */
    depository_accounts: Array<BeaconSyndicatedReportDepositoryAccountMatchAnalysis>;
}
/**
 * Fired when a report created on the Beacon Network matches with one of your Beacon Users.
 * @export
 * @interface BeaconReportSyndicationCreatedWebhook
 */
export interface BeaconReportSyndicationCreatedWebhook {
    /**
     * `BEACON`
     * @type {string}
     * @memberof BeaconReportSyndicationCreatedWebhook
     */
    webhook_type: string;
    /**
     * `REPORT_SYNDICATION_CREATED`
     * @type {string}
     * @memberof BeaconReportSyndicationCreatedWebhook
     */
    webhook_code: string;
    /**
     * The ID of the associated Beacon Report Syndication.
     * @type {string}
     * @memberof BeaconReportSyndicationCreatedWebhook
     */
    beacon_report_syndication_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof BeaconReportSyndicationCreatedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Request input for getting a Beacon Report Syndication
 * @export
 * @interface BeaconReportSyndicationGetRequest
 */
export interface BeaconReportSyndicationGetRequest {
    /**
     * ID of the associated Beacon Report Syndication.
     * @type {string}
     * @memberof BeaconReportSyndicationGetRequest
     */
    beacon_report_syndication_id: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconReportSyndicationGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconReportSyndicationGetRequest
     */
    secret?: string;
}
/**
 * A Beacon Report Syndication represents a Beacon Report created either by your organization or another Beacon customer that matches a specific Beacon User you\'ve created.  The `analysis` field in the response indicates which fields matched between the originally reported Beacon User and the Beacon User that the report was syndicated to.  The `report` field in the response contains a subset of information from the original report.
 * @export
 * @interface BeaconReportSyndicationGetResponse
 */
export interface BeaconReportSyndicationGetResponse {
    /**
     * ID of the associated Beacon Report Syndication.
     * @type {string}
     * @memberof BeaconReportSyndicationGetResponse
     */
    id: string;
    /**
     *
     * @type {BeaconReportSyndicationOriginalReport}
     * @memberof BeaconReportSyndicationGetResponse
     */
    report: BeaconReportSyndicationOriginalReport;
    /**
     *
     * @type {BeaconReportSyndicationAnalysis}
     * @memberof BeaconReportSyndicationGetResponse
     */
    analysis: BeaconReportSyndicationAnalysis;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconReportSyndicationGetResponse
     */
    request_id: string;
}
/**
 * Request input for listing Beacon Report Syndications
 * @export
 * @interface BeaconReportSyndicationListRequest
 */
export interface BeaconReportSyndicationListRequest {
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconReportSyndicationListRequest
     */
    beacon_user_id: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof BeaconReportSyndicationListRequest
     */
    cursor?: string | null;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconReportSyndicationListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconReportSyndicationListRequest
     */
    secret?: string;
}
/**
 * The response schema for `/beacon/report_syndication/list`
 * @export
 * @interface BeaconReportSyndicationListResponse
 */
export interface BeaconReportSyndicationListResponse {
    /**
     *
     * @type {Array<BeaconReportSyndication>}
     * @memberof BeaconReportSyndicationListResponse
     */
    beacon_report_syndications: Array<BeaconReportSyndication>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof BeaconReportSyndicationListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconReportSyndicationListResponse
     */
    request_id: string;
}
/**
 * A subset of information from a Beacon Report that has been syndicated to a matching Beacon User in your program.  The `id` field in the response is the ID of the original report that was syndicated. If the original report was created by your organization, the field will be filled with the ID of the report. Otherwise, the field will be `null` indicating that the original report was created by another Beacon customer.
 * @export
 * @interface BeaconReportSyndicationOriginalReport
 */
export interface BeaconReportSyndicationOriginalReport {
    /**
     * ID of the associated Beacon Report.
     * @type {string}
     * @memberof BeaconReportSyndicationOriginalReport
     */
    id: string | null;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof BeaconReportSyndicationOriginalReport
     */
    created_at: string;
    /**
     *
     * @type {BeaconReportType}
     * @memberof BeaconReportSyndicationOriginalReport
     */
    type: BeaconReportType;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconReportSyndicationOriginalReport
     */
    fraud_date: string | null;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconReportSyndicationOriginalReport
     */
    event_date: string;
}
/**
 * The type of Beacon Report.  `first_party`: If this is the same individual as the one who submitted the KYC.  `stolen`: If this is a different individual from the one who submitted the KYC.  `synthetic`: If this is an individual using fabricated information.  `account_takeover`: If this individual\'s account was compromised.  `data_breach`: If this individual\'s data was compromised in a breach.  `unknown`: If you aren\'t sure who committed the fraud.
 * @export
 * @enum {string}
 */
export declare enum BeaconReportType {
    FirstParty = "first_party",
    Stolen = "stolen",
    Synthetic = "synthetic",
    AccountTakeover = "account_takeover",
    DataBreach = "data_breach",
    Unknown = "unknown"
}
/**
 * Fired when one of your existing Beacon Reports has been modified or removed from the Beacon Network.
 * @export
 * @interface BeaconReportUpdatedWebhook
 */
export interface BeaconReportUpdatedWebhook {
    /**
     * `BEACON`
     * @type {string}
     * @memberof BeaconReportUpdatedWebhook
     */
    webhook_type: string;
    /**
     * `REPORT_UPDATED`
     * @type {string}
     * @memberof BeaconReportUpdatedWebhook
     */
    webhook_code: string;
    /**
     * The ID of the associated Beacon Report.
     * @type {string}
     * @memberof BeaconReportUpdatedWebhook
     */
    beacon_report_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof BeaconReportUpdatedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Analysis of whether this account matched between the originally reported Beacon User and the Beacon User that the report syndicated to.
 * @export
 * @interface BeaconSyndicatedReportDepositoryAccountMatchAnalysis
 */
export interface BeaconSyndicatedReportDepositoryAccountMatchAnalysis {
    /**
     * The last 2-4 numeric characters of this account’s account number.
     * @type {string}
     * @memberof BeaconSyndicatedReportDepositoryAccountMatchAnalysis
     */
    account_mask: string;
    /**
     * The routing number of the account.
     * @type {string}
     * @memberof BeaconSyndicatedReportDepositoryAccountMatchAnalysis
     */
    routing_number: string;
    /**
     *
     * @type {BeaconMatchSummaryCode}
     * @memberof BeaconSyndicatedReportDepositoryAccountMatchAnalysis
     */
    match_status: BeaconMatchSummaryCode;
}
/**
 * A Beacon User represents an end user that has been scanned against the Beacon Network.
 * @export
 * @interface BeaconUser
 */
export interface BeaconUser {
    /**
     * An array of Plaid Item IDs corresponding to the Accounts associated with this Beacon User.
     * @type {Set<string>}
     * @memberof BeaconUser
     */
    item_ids: Set<string>;
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconUser
     */
    id: string;
    /**
     * The `version` field begins with 1 and increments each time the user is updated.
     * @type {number}
     * @memberof BeaconUser
     */
    version: number;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof BeaconUser
     */
    created_at: string;
    /**
     * An ISO8601 formatted timestamp. This field indicates the last time the resource was modified.
     * @type {string}
     * @memberof BeaconUser
     */
    updated_at: string;
    /**
     *
     * @type {BeaconUserStatus}
     * @memberof BeaconUser
     */
    status: BeaconUserStatus;
    /**
     * ID of the associated Beacon Program.
     * @type {string}
     * @memberof BeaconUser
     */
    program_id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof BeaconUser
     */
    client_user_id: string;
    /**
     *
     * @type {BeaconUserData}
     * @memberof BeaconUser
     */
    user: BeaconUserData;
    /**
     *
     * @type {BeaconAuditTrail}
     * @memberof BeaconUser
     */
    audit_trail: BeaconAuditTrail;
}
/**
 * Request input for fetching the risk insights for a Beacon User\'s Bank Accounts
 * @export
 * @interface BeaconUserAccountInsightsGetRequest
 */
export interface BeaconUserAccountInsightsGetRequest {
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconUserAccountInsightsGetRequest
     */
    beacon_user_id: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof BeaconUserAccountInsightsGetRequest
     */
    access_token: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserAccountInsightsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserAccountInsightsGetRequest
     */
    secret?: string;
}
/**
 * The response schema for `/beacon/user/account/insights/get`
 * @export
 * @interface BeaconUserAccountInsightsGetResponse
 */
export interface BeaconUserAccountInsightsGetResponse {
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconUserAccountInsightsGetResponse
     */
    beacon_user_id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof BeaconUserAccountInsightsGetResponse
     */
    created_at: string;
    /**
     * An ISO8601 formatted timestamp. This field indicates the last time the resource was modified.
     * @type {string}
     * @memberof BeaconUserAccountInsightsGetResponse
     */
    updated_at: string;
    /**
     *
     * @type {BeaconBankAccounts}
     * @memberof BeaconUserAccountInsightsGetResponse
     */
    bank_account_insights: BeaconBankAccounts;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconUserAccountInsightsGetResponse
     */
    request_id: string;
}
/**
 * Even if an address has been collected, some fields may be null depending on the region\'s addressing system. For example:   Addresses from the United Kingdom will not include a region   Addresses from Hong Kong will not include a postal code
 * @export
 * @interface BeaconUserAddress
 */
export interface BeaconUserAddress {
    /**
     * The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
     * @type {string}
     * @memberof BeaconUserAddress
     */
    street: string;
    /**
     * Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
     * @type {string}
     * @memberof BeaconUserAddress
     */
    street2: string | null;
    /**
     * City from the end user\'s address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters.\"
     * @type {string}
     * @memberof BeaconUserAddress
     */
    city: string;
    /**
     * An ISO 3166-2 subdivision code. Related terms would be \"state\", \"province\", \"prefecture\", \"zone\", \"subdivision\", etc.
     * @type {string}
     * @memberof BeaconUserAddress
     */
    region: string | null;
    /**
     * The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
     * @type {string}
     * @memberof BeaconUserAddress
     */
    postal_code: string | null;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof BeaconUserAddress
     */
    country: string;
}
/**
 * Request input for creating a Beacon User.  The primary use for this endpoint is to add a new end user to Beacon for fraud and duplicate scanning.  Some fields are optional, but it is recommended to provide as much information as possible to improve the accuracy of the fraud and duplicate scanning.
 * @export
 * @interface BeaconUserCreateRequest
 */
export interface BeaconUserCreateRequest {
    /**
     * ID of the associated Beacon Program.
     * @type {string}
     * @memberof BeaconUserCreateRequest
     */
    program_id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof BeaconUserCreateRequest
     */
    client_user_id: string;
    /**
     *
     * @type {BeaconUserRequestData}
     * @memberof BeaconUserCreateRequest
     */
    user: BeaconUserRequestData;
    /**
     * Send this array of access tokens to link accounts to the Beacon User and have them evaluated for Account Insights. A maximum of 50 accounts total can be added to a single Beacon User.
     * @type {Array<string>}
     * @memberof BeaconUserCreateRequest
     */
    access_tokens?: Array<string> | null;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserCreateRequest
     */
    secret?: string;
}
/**
 * A Beacon User represents an end user that has been scanned against the Beacon Network.
 * @export
 * @interface BeaconUserCreateResponse
 */
export interface BeaconUserCreateResponse {
    /**
     * An array of Plaid Item IDs corresponding to the Accounts associated with this Beacon User.
     * @type {Set<string>}
     * @memberof BeaconUserCreateResponse
     */
    item_ids: Set<string>;
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconUserCreateResponse
     */
    id: string;
    /**
     * The `version` field begins with 1 and increments each time the user is updated.
     * @type {number}
     * @memberof BeaconUserCreateResponse
     */
    version: number;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof BeaconUserCreateResponse
     */
    created_at: string;
    /**
     * An ISO8601 formatted timestamp. This field indicates the last time the resource was modified.
     * @type {string}
     * @memberof BeaconUserCreateResponse
     */
    updated_at: string;
    /**
     *
     * @type {BeaconUserStatus}
     * @memberof BeaconUserCreateResponse
     */
    status: BeaconUserStatus;
    /**
     * ID of the associated Beacon Program.
     * @type {string}
     * @memberof BeaconUserCreateResponse
     */
    program_id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof BeaconUserCreateResponse
     */
    client_user_id: string;
    /**
     *
     * @type {BeaconUserData}
     * @memberof BeaconUserCreateResponse
     */
    user: BeaconUserData;
    /**
     *
     * @type {BeaconAuditTrail}
     * @memberof BeaconUserCreateResponse
     */
    audit_trail: BeaconAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconUserCreateResponse
     */
    request_id: string;
}
/**
 * A Beacon User\'s data and resulting analysis when checked against duplicate records and the Beacon Fraud Network.
 * @export
 * @interface BeaconUserData
 */
export interface BeaconUserData {
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconUserData
     */
    date_of_birth: string;
    /**
     *
     * @type {BeaconUserName}
     * @memberof BeaconUserData
     */
    name: BeaconUserName;
    /**
     *
     * @type {BeaconUserAddress}
     * @memberof BeaconUserData
     */
    address: BeaconUserAddress;
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof BeaconUserData
     */
    email_address: string | null;
    /**
     * A phone number in E.164 format.
     * @type {string}
     * @memberof BeaconUserData
     */
    phone_number: string | null;
    /**
     *
     * @type {BeaconUserIDNumber}
     * @memberof BeaconUserData
     */
    id_number: BeaconUserIDNumber | null;
    /**
     * An IPv4 or IPV6 address.
     * @type {string}
     * @memberof BeaconUserData
     */
    ip_address: string | null;
    /**
     *
     * @type {Array<BeaconUserDepositoryAccount>}
     * @memberof BeaconUserData
     */
    depository_accounts: Array<BeaconUserDepositoryAccount>;
}
/**
 * Depository account information for the associated user.
 * @export
 * @interface BeaconUserDepositoryAccount
 */
export interface BeaconUserDepositoryAccount {
    /**
     * The last 2-4 numeric characters of this account’s account number.
     * @type {string}
     * @memberof BeaconUserDepositoryAccount
     */
    account_mask: string;
    /**
     * The routing number of the account.
     * @type {string}
     * @memberof BeaconUserDepositoryAccount
     */
    routing_number: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof BeaconUserDepositoryAccount
     */
    added_at: string;
}
/**
 * Request input for fetching a Beacon User
 * @export
 * @interface BeaconUserGetRequest
 */
export interface BeaconUserGetRequest {
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconUserGetRequest
     */
    beacon_user_id: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserGetRequest
     */
    secret?: string;
}
/**
 * A Beacon User represents an end user that has been scanned against the Beacon Network.
 * @export
 * @interface BeaconUserGetResponse
 */
export interface BeaconUserGetResponse {
    /**
     * An array of Plaid Item IDs corresponding to the Accounts associated with this Beacon User.
     * @type {Set<string>}
     * @memberof BeaconUserGetResponse
     */
    item_ids: Set<string>;
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconUserGetResponse
     */
    id: string;
    /**
     * The `version` field begins with 1 and increments each time the user is updated.
     * @type {number}
     * @memberof BeaconUserGetResponse
     */
    version: number;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof BeaconUserGetResponse
     */
    created_at: string;
    /**
     * An ISO8601 formatted timestamp. This field indicates the last time the resource was modified.
     * @type {string}
     * @memberof BeaconUserGetResponse
     */
    updated_at: string;
    /**
     *
     * @type {BeaconUserStatus}
     * @memberof BeaconUserGetResponse
     */
    status: BeaconUserStatus;
    /**
     * ID of the associated Beacon Program.
     * @type {string}
     * @memberof BeaconUserGetResponse
     */
    program_id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof BeaconUserGetResponse
     */
    client_user_id: string;
    /**
     *
     * @type {BeaconUserData}
     * @memberof BeaconUserGetResponse
     */
    user: BeaconUserData;
    /**
     *
     * @type {BeaconAuditTrail}
     * @memberof BeaconUserGetResponse
     */
    audit_trail: BeaconAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconUserGetResponse
     */
    request_id: string;
}
/**
 * Request input for listing the history of a Beacon User
 * @export
 * @interface BeaconUserHistoryListRequest
 */
export interface BeaconUserHistoryListRequest {
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconUserHistoryListRequest
     */
    beacon_user_id: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof BeaconUserHistoryListRequest
     */
    cursor?: string | null;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserHistoryListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserHistoryListRequest
     */
    secret?: string;
}
/**
 * The response schema for `/beacon/user/history/list`
 * @export
 * @interface BeaconUserHistoryListResponse
 */
export interface BeaconUserHistoryListResponse {
    /**
     *
     * @type {Array<BeaconUser>}
     * @memberof BeaconUserHistoryListResponse
     */
    beacon_users: Array<BeaconUser>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof BeaconUserHistoryListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconUserHistoryListResponse
     */
    request_id: string;
}
/**
 * The ID number associated with a Beacon User.
 * @export
 * @interface BeaconUserIDNumber
 */
export interface BeaconUserIDNumber {
    /**
     * Value of identity document value typed in by user. Alpha-numeric, with all formatting characters stripped. For specific format requirements by ID type, see [Hybrid Input Validation](https://plaid.com/docs/identity-verification/hybrid-input-validation/).
     * @type {string}
     * @memberof BeaconUserIDNumber
     */
    value: string;
    /**
     *
     * @type {IDNumberType}
     * @memberof BeaconUserIDNumber
     */
    type: IDNumberType;
}
/**
 * The full name for a given Beacon User.
 * @export
 * @interface BeaconUserName
 */
export interface BeaconUserName {
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof BeaconUserName
     */
    given_name: string;
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof BeaconUserName
     */
    family_name: string;
}
/**
 * The full name for a given Beacon User.
 * @export
 * @interface BeaconUserNameNullable
 */
export interface BeaconUserNameNullable {
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof BeaconUserNameNullable
     */
    given_name: string;
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof BeaconUserNameNullable
     */
    family_name: string;
}
/**
 * Home address for the associated user. For more context on this field, see [Input Validation by Country](https://plaid.com/docs/identity-verification/hybrid-input-validation/#input-validation-by-country).
 * @export
 * @interface BeaconUserRequestAddress
 */
export interface BeaconUserRequestAddress {
    /**
     * The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
     * @type {string}
     * @memberof BeaconUserRequestAddress
     */
    street: string;
    /**
     * Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
     * @type {string}
     * @memberof BeaconUserRequestAddress
     */
    street2?: string | null;
    /**
     * City from the end user\'s address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters.\"
     * @type {string}
     * @memberof BeaconUserRequestAddress
     */
    city: string;
    /**
     * An ISO 3166-2 subdivision code. Related terms would be \"state\", \"province\", \"prefecture\", \"zone\", \"subdivision\", etc.
     * @type {string}
     * @memberof BeaconUserRequestAddress
     */
    region?: string | null;
    /**
     * The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
     * @type {string}
     * @memberof BeaconUserRequestAddress
     */
    postal_code?: string | null;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof BeaconUserRequestAddress
     */
    country: string;
}
/**
 * Home address for the associated user. For more context on this field, see [Input Validation by Country](https://plaid.com/docs/identity-verification/hybrid-input-validation/#input-validation-by-country).
 * @export
 * @interface BeaconUserRequestAddressNullable
 */
export interface BeaconUserRequestAddressNullable {
    /**
     * The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
     * @type {string}
     * @memberof BeaconUserRequestAddressNullable
     */
    street: string;
    /**
     * Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
     * @type {string}
     * @memberof BeaconUserRequestAddressNullable
     */
    street2?: string | null;
    /**
     * City from the end user\'s address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters.\"
     * @type {string}
     * @memberof BeaconUserRequestAddressNullable
     */
    city: string;
    /**
     * An ISO 3166-2 subdivision code. Related terms would be \"state\", \"province\", \"prefecture\", \"zone\", \"subdivision\", etc.
     * @type {string}
     * @memberof BeaconUserRequestAddressNullable
     */
    region?: string | null;
    /**
     * The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
     * @type {string}
     * @memberof BeaconUserRequestAddressNullable
     */
    postal_code?: string | null;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof BeaconUserRequestAddressNullable
     */
    country: string;
}
/**
 * A Beacon User\'s data which is used to check against duplicate records and the Beacon Fraud Network.  In order to create a Beacon User, in addition to the `name`, _either_ the `date_of_birth` _or_ the `depository_accounts` field must be provided.
 * @export
 * @interface BeaconUserRequestData
 */
export interface BeaconUserRequestData {
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconUserRequestData
     */
    date_of_birth?: string;
    /**
     *
     * @type {BeaconUserName}
     * @memberof BeaconUserRequestData
     */
    name: BeaconUserName;
    /**
     *
     * @type {BeaconUserRequestAddress}
     * @memberof BeaconUserRequestData
     */
    address?: BeaconUserRequestAddress | null;
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof BeaconUserRequestData
     */
    email_address?: string;
    /**
     * A phone number in E.164 format.
     * @type {string}
     * @memberof BeaconUserRequestData
     */
    phone_number?: string | null;
    /**
     *
     * @type {BeaconUserIDNumber}
     * @memberof BeaconUserRequestData
     */
    id_number?: BeaconUserIDNumber | null;
    /**
     * An IPv4 or IPV6 address.
     * @type {string}
     * @memberof BeaconUserRequestData
     */
    ip_address?: string | null;
    /**
     * Provide a list of bank accounts that are associated with this Beacon User. These accounts will be scanned across the Beacon Network and used to find duplicate records.  Note: These accounts will not have Bank Account Insights. To receive Bank Account Insights please supply `access_tokens`.
     * @type {Array<BeaconUserRequestDepositoryAccount>}
     * @memberof BeaconUserRequestData
     */
    depository_accounts?: Array<BeaconUserRequestDepositoryAccount>;
}
/**
 * Depository account information for the associated user.
 * @export
 * @interface BeaconUserRequestDepositoryAccount
 */
export interface BeaconUserRequestDepositoryAccount {
    /**
     * Must be a valid US Bank Account Number
     * @type {string}
     * @memberof BeaconUserRequestDepositoryAccount
     */
    account_number: string;
    /**
     * The routing number of the account.
     * @type {string}
     * @memberof BeaconUserRequestDepositoryAccount
     */
    routing_number: string;
}
/**
 * Request input for updating the status of a Beacon User
 * @export
 * @interface BeaconUserReviewRequest
 */
export interface BeaconUserReviewRequest {
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconUserReviewRequest
     */
    beacon_user_id: string;
    /**
     *
     * @type {BeaconUserStatus}
     * @memberof BeaconUserReviewRequest
     */
    status: BeaconUserStatus;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserReviewRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserReviewRequest
     */
    secret?: string;
}
/**
 * A Beacon User Revision identifies a Beacon User at some point in its revision history.
 * @export
 * @interface BeaconUserRevision
 */
export interface BeaconUserRevision {
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconUserRevision
     */
    id: string;
    /**
     * The `version` field begins with 1 and increments with each subsequent revision.
     * @type {number}
     * @memberof BeaconUserRevision
     */
    version: number;
}
/**
 * A status of a Beacon User.  `rejected`: The Beacon User has been rejected for fraud. Users can be automatically or manually rejected.  `pending_review`: The Beacon User has been marked for review.  `cleared`: The Beacon User has been cleared of fraud.
 * @export
 * @enum {string}
 */
export declare enum BeaconUserStatus {
    Rejected = "rejected",
    PendingReview = "pending_review",
    Cleared = "cleared"
}
/**
 * Fired when a Beacon User status has changed, which can occur manually via the dashboard or when information is reported to the Beacon network.
 * @export
 * @interface BeaconUserStatusUpdatedWebhook
 */
export interface BeaconUserStatusUpdatedWebhook {
    /**
     * `BEACON`
     * @type {string}
     * @memberof BeaconUserStatusUpdatedWebhook
     */
    webhook_type: string;
    /**
     * `USER_STATUS_UPDATED`
     * @type {string}
     * @memberof BeaconUserStatusUpdatedWebhook
     */
    webhook_code: string;
    /**
     * The ID of the associated Beacon user.
     * @type {string}
     * @memberof BeaconUserStatusUpdatedWebhook
     */
    beacon_user_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof BeaconUserStatusUpdatedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Request input for updating the identity data of a Beacon User.
 * @export
 * @interface BeaconUserUpdateRequest
 */
export interface BeaconUserUpdateRequest {
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconUserUpdateRequest
     */
    beacon_user_id: string;
    /**
     *
     * @type {BeaconUserUpdateRequestData}
     * @memberof BeaconUserUpdateRequest
     */
    user?: BeaconUserUpdateRequestData | null;
    /**
     * Send this array of access tokens to add accounts to this user for evaluation. This will add accounts to this Beacon User. If left null only existing accounts will be returned in response. A maximum of 50 accounts total can be added to a Beacon User.
     * @type {Array<string>}
     * @memberof BeaconUserUpdateRequest
     */
    access_tokens?: Array<string> | null;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof BeaconUserUpdateRequest
     */
    secret?: string;
}
/**
 * A subset of a Beacon User\'s data which is used to patch the existing identity data associated with a Beacon User. At least one field must be provided. If left unset or null, user data will not be patched.
 * @export
 * @interface BeaconUserUpdateRequestData
 */
export interface BeaconUserUpdateRequestData {
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof BeaconUserUpdateRequestData
     */
    date_of_birth?: string;
    /**
     *
     * @type {BeaconUserNameNullable}
     * @memberof BeaconUserUpdateRequestData
     */
    name?: BeaconUserNameNullable | null;
    /**
     *
     * @type {BeaconUserRequestAddressNullable}
     * @memberof BeaconUserUpdateRequestData
     */
    address?: BeaconUserRequestAddressNullable | null;
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof BeaconUserUpdateRequestData
     */
    email_address?: string;
    /**
     * A phone number in E.164 format.
     * @type {string}
     * @memberof BeaconUserUpdateRequestData
     */
    phone_number?: string | null;
    /**
     *
     * @type {BeaconUserIDNumber}
     * @memberof BeaconUserUpdateRequestData
     */
    id_number?: BeaconUserIDNumber | null;
    /**
     * An IPv4 or IPV6 address.
     * @type {string}
     * @memberof BeaconUserUpdateRequestData
     */
    ip_address?: string | null;
    /**
     *
     * @type {Array<BeaconUserRequestDepositoryAccount>}
     * @memberof BeaconUserUpdateRequestData
     */
    depository_accounts?: Array<BeaconUserRequestDepositoryAccount>;
}
/**
 * A Beacon User represents an end user that has been scanned against the Beacon Network.
 * @export
 * @interface BeaconUserUpdateResponse
 */
export interface BeaconUserUpdateResponse {
    /**
     * An array of Plaid Item IDs corresponding to the Accounts associated with this Beacon User.
     * @type {Set<string>}
     * @memberof BeaconUserUpdateResponse
     */
    item_ids: Set<string>;
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof BeaconUserUpdateResponse
     */
    id: string;
    /**
     * The `version` field begins with 1 and increments each time the user is updated.
     * @type {number}
     * @memberof BeaconUserUpdateResponse
     */
    version: number;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof BeaconUserUpdateResponse
     */
    created_at: string;
    /**
     * An ISO8601 formatted timestamp. This field indicates the last time the resource was modified.
     * @type {string}
     * @memberof BeaconUserUpdateResponse
     */
    updated_at: string;
    /**
     *
     * @type {BeaconUserStatus}
     * @memberof BeaconUserUpdateResponse
     */
    status: BeaconUserStatus;
    /**
     * ID of the associated Beacon Program.
     * @type {string}
     * @memberof BeaconUserUpdateResponse
     */
    program_id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof BeaconUserUpdateResponse
     */
    client_user_id: string;
    /**
     *
     * @type {BeaconUserData}
     * @memberof BeaconUserUpdateResponse
     */
    user: BeaconUserData;
    /**
     *
     * @type {BeaconAuditTrail}
     * @memberof BeaconUserUpdateResponse
     */
    audit_trail: BeaconAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof BeaconUserUpdateResponse
     */
    request_id: string;
}
/**
 * CraLoansRegisterRequest defines the request schema for `/cra/loans/register`
 * @export
 * @interface CRALoansRegisterRequest
 */
export interface CRALoansRegisterRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CRALoansRegisterRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CRALoansRegisterRequest
     */
    secret?: string;
    /**
     * A list of loans to register.
     * @type {Array<CraLoanRegister>}
     * @memberof CRALoansRegisterRequest
     */
    loans: Array<CraLoanRegister>;
}
/**
 * The versions of cashflow attributes
 * @export
 * @enum {string}
 */
export declare enum CashflowAttributesVersion {
    V10 = "v1.0"
}
/**
 * CategoriesGetResponse defines the response schema for `/categories/get`
 * @export
 * @interface CategoriesGetResponse
 */
export interface CategoriesGetResponse {
    /**
     * An array of all of the transaction categories used by Plaid.
     * @type {Array<Category>}
     * @memberof CategoriesGetResponse
     */
    categories: Array<Category>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CategoriesGetResponse
     */
    request_id: string;
}
/**
 * Information describing a transaction category
 * @export
 * @interface Category
 */
export interface Category {
    /**
     * An identifying number for the category. `category_id` is a Plaid-specific identifier and does not necessarily correspond to merchant category codes.
     * @type {string}
     * @memberof Category
     */
    category_id: string;
    /**
     * `place` for physical transactions or `special` for other transactions such as bank charges.
     * @type {string}
     * @memberof Category
     */
    group: string;
    /**
     * A hierarchical array of the categories to which this `category_id` belongs.
     * @type {Array<string>}
     * @memberof Category
     */
    hierarchy: Array<string>;
}
/**
 * Insights object for categories.
 * @export
 * @interface CategoryInsightDetails
 */
export interface CategoryInsightDetails {
    /**
     * Category name.
     * @type {string}
     * @memberof CategoryInsightDetails
     */
    name: string;
    /**
     * The number of transactions associated with this category.
     * @type {number}
     * @memberof CategoryInsightDetails
     */
    transaction_count: number;
    /**
     * Sum of outflow amounts.
     * @type {number}
     * @memberof CategoryInsightDetails
     */
    total_outflows: number;
    /**
     * Sum of inflow amounts.
     * @type {number}
     * @memberof CategoryInsightDetails
     */
    total_inflows: number;
    /**
     * The most common counterparties associated with this category sorted by outflow.
     * @type {Array<string>}
     * @memberof CategoryInsightDetails
     */
    top_counterparties?: Array<string>;
}
/**
 * Insights on a user\'s top personal finance categories.
 * @export
 * @interface CategoryInsights
 */
export interface CategoryInsights {
    /**
     * List of insights of top primary personal finance categories ranked by outflow.
     * @type {Array<CategoryInsightDetails>}
     * @memberof CategoryInsights
     */
    primary_category_insights?: Array<CategoryInsightDetails>;
    /**
     * List of insights of top detailed personal finance categories ranked by outflow.
     * @type {Array<CategoryInsightDetails>}
     * @memberof CategoryInsights
     */
    detailed_category_insights?: Array<CategoryInsightDetails>;
}
/**
 * An error object and associated `item_id` used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.
 * @export
 * @interface Cause
 */
export interface Cause {
    /**
     *
     * @type {PlaidErrorType}
     * @memberof Cause
     */
    error_type: PlaidErrorType;
    /**
     * The particular error code. Safe for programmatic use.
     * @type {string}
     * @memberof Cause
     */
    error_code: string;
    /**
     * The specific reason for the error code. Currently, reasons are only supported OAuth-based item errors; `null` will be returned otherwise. Safe for programmatic use.  Possible values: `OAUTH_INVALID_TOKEN`: The user’s OAuth connection to this institution has been invalidated.  `OAUTH_CONSENT_EXPIRED`: The user\'s access consent for this OAuth connection to this institution has expired.  `OAUTH_USER_REVOKED`: The user’s OAuth connection to this institution is invalid because the user revoked their connection.
     * @type {string}
     * @memberof Cause
     */
    error_code_reason?: string | null;
    /**
     * A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
     * @type {string}
     * @memberof Cause
     */
    error_message: string;
    /**
     * A user-friendly representation of the error code. `null` if the error is not related to user action.  This may change over time and is not safe for programmatic use.
     * @type {string}
     * @memberof Cause
     */
    display_message: string | null;
    /**
     * A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks.
     * @type {string}
     * @memberof Cause
     */
    request_id?: string;
    /**
     * In this product, a request can pertain to more than one Item. If an error is returned for such a request, `causes` will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.  `causes` will only be provided for the `error_type` `ASSET_REPORT_ERROR`. `causes` will also not be populated inside an error nested within a `warning` object.
     * @type {Array<any>}
     * @memberof Cause
     */
    causes?: Array<any>;
    /**
     * The HTTP status code associated with the error. This will only be returned in the response body when the error information is provided via a webhook.
     * @type {number}
     * @memberof Cause
     */
    status?: number | null;
    /**
     * The URL of a Plaid documentation page with more information about the error
     * @type {string}
     * @memberof Cause
     */
    documentation_url?: string;
    /**
     * Suggested steps for resolving the error
     * @type {string}
     * @memberof Cause
     */
    suggested_action?: string | null;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof Cause
     */
    item_id: string;
}
/**
 *
 * @export
 * @interface CauseAllOf
 */
export interface CauseAllOf {
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof CauseAllOf
     */
    item_id?: string;
}
/**
 * A client-provided transaction that Plaid has enhanced.
 * @export
 * @interface ClientProvidedEnhancedTransaction
 */
export interface ClientProvidedEnhancedTransaction {
    /**
     * Unique transaction identifier to tie transactions back to clients\' systems.
     * @type {string}
     * @memberof ClientProvidedEnhancedTransaction
     */
    id: string;
    /**
     * The raw description of the transaction.
     * @type {string}
     * @memberof ClientProvidedEnhancedTransaction
     */
    description: string;
    /**
     * The value of the transaction, denominated in the account\'s currency, as stated in `iso_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative.
     * @type {number}
     * @memberof ClientProvidedEnhancedTransaction
     */
    amount: number;
    /**
     * The ISO-4217 currency code of the transaction.
     * @type {string}
     * @memberof ClientProvidedEnhancedTransaction
     */
    iso_currency_code: string;
    /**
     *
     * @type {Enhancements}
     * @memberof ClientProvidedEnhancedTransaction
     */
    enhancements: Enhancements;
}
/**
 * A client-provided transaction that Plaid has enriched.
 * @export
 * @interface ClientProvidedEnrichedTransaction
 */
export interface ClientProvidedEnrichedTransaction {
    /**
     * The unique ID for the transaction as provided by you in the request.
     * @type {string}
     * @memberof ClientProvidedEnrichedTransaction
     */
    id: string;
    /**
     * A unique user id used to group transactions for a given user, as a unique identifier from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.
     * @type {string}
     * @memberof ClientProvidedEnrichedTransaction
     */
    client_user_id?: string;
    /**
     * A unique account id used to group transactions for a given account, as a unique identifier from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_account_id.
     * @type {string}
     * @memberof ClientProvidedEnrichedTransaction
     */
    client_account_id?: string;
    /**
     * The account type associated with the transaction. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {string}
     * @memberof ClientProvidedEnrichedTransaction
     */
    account_type?: string;
    /**
     * The account subtype associated with the transaction. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {string}
     * @memberof ClientProvidedEnrichedTransaction
     */
    account_subtype?: string;
    /**
     * The raw description of the transaction.
     * @type {string}
     * @memberof ClientProvidedEnrichedTransaction
     */
    description: string;
    /**
     * The absolute value of the transaction (>= 0)
     * @type {number}
     * @memberof ClientProvidedEnrichedTransaction
     */
    amount: number;
    /**
     *
     * @type {EnrichTransactionDirection}
     * @memberof ClientProvidedEnrichedTransaction
     */
    direction?: EnrichTransactionDirection;
    /**
     * The ISO-4217 currency code of the transaction e.g. USD.
     * @type {string}
     * @memberof ClientProvidedEnrichedTransaction
     */
    iso_currency_code: string;
    /**
     *
     * @type {Enrichments}
     * @memberof ClientProvidedEnrichedTransaction
     */
    enrichments: Enrichments;
}
/**
 * A client-provided transaction for Plaid to enhance.
 * @export
 * @interface ClientProvidedRawTransaction
 */
export interface ClientProvidedRawTransaction {
    /**
     * A unique ID for the transaction used to help you tie data back to your systems.
     * @type {string}
     * @memberof ClientProvidedRawTransaction
     */
    id: string;
    /**
     * The raw description of the transaction.
     * @type {string}
     * @memberof ClientProvidedRawTransaction
     */
    description: string;
    /**
     * The value of the transaction with direction. (NOTE: this will affect enrichment results, so directions are important):.   Negative (-) for credits (e.g., incoming transfers, refunds)   Positive (+) for debits (e.g., purchases, fees, outgoing transfers)
     * @type {number}
     * @memberof ClientProvidedRawTransaction
     */
    amount: number;
    /**
     * The ISO-4217 currency code of the transaction e.g. USD.
     * @type {string}
     * @memberof ClientProvidedRawTransaction
     */
    iso_currency_code: string;
}
/**
 * A client-provided transaction for Plaid to enrich.
 * @export
 * @interface ClientProvidedTransaction
 */
export interface ClientProvidedTransaction {
    /**
     * A unique ID for the transaction used to help you tie data back to your systems.
     * @type {string}
     * @memberof ClientProvidedTransaction
     */
    id: string;
    /**
     * A unique user id used to group transactions for a given user, as a unique identifier from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.
     * @type {string}
     * @memberof ClientProvidedTransaction
     */
    client_user_id?: string;
    /**
     * A unique account id used to group transactions for a given account, as a unique identifier from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_account_id.
     * @type {string}
     * @memberof ClientProvidedTransaction
     */
    client_account_id?: string;
    /**
     * The account type associated with the transaction. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {string}
     * @memberof ClientProvidedTransaction
     */
    account_type?: string;
    /**
     * The account subtype associated with the transaction. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {string}
     * @memberof ClientProvidedTransaction
     */
    account_subtype?: string;
    /**
     * The raw description of the transaction. If you have location data in available an unstructured format, it may be appended to the `description` field.
     * @type {string}
     * @memberof ClientProvidedTransaction
     */
    description: string;
    /**
     * The absolute value of the transaction (>= 0). When testing Enrich, note that `amount` data should be realistic. Unrealistic or inaccurate `amount` data may result in reduced quality output.
     * @type {number}
     * @memberof ClientProvidedTransaction
     */
    amount: number;
    /**
     *
     * @type {EnrichTransactionDirection}
     * @memberof ClientProvidedTransaction
     */
    direction: EnrichTransactionDirection;
    /**
     * The ISO-4217 currency code of the transaction e.g. USD.
     * @type {string}
     * @memberof ClientProvidedTransaction
     */
    iso_currency_code: string;
    /**
     *
     * @type {ClientProvidedTransactionLocation}
     * @memberof ClientProvidedTransaction
     */
    location?: ClientProvidedTransactionLocation;
    /**
     * Merchant category codes (MCCs) are four-digit numbers that describe a merchant\'s primary business activities.
     * @type {string}
     * @memberof ClientProvidedTransaction
     */
    mcc?: string;
    /**
     * The date the transaction posted, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format.
     * @type {string}
     * @memberof ClientProvidedTransaction
     */
    date_posted?: string;
}
/**
 * A representation of where a transaction took place.  Use this field to pass in structured location information you may have about your transactions. Providing location data is optional but can increase result quality. If you have unstructured location information, it may be appended to the `description` field.
 * @export
 * @interface ClientProvidedTransactionLocation
 */
export interface ClientProvidedTransactionLocation {
    /**
     * The country where the transaction occurred.
     * @type {string}
     * @memberof ClientProvidedTransactionLocation
     */
    country?: string;
    /**
     * The region or state where the transaction occurred.
     * @type {string}
     * @memberof ClientProvidedTransactionLocation
     */
    region?: string;
    /**
     * The city where the transaction occurred.
     * @type {string}
     * @memberof ClientProvidedTransactionLocation
     */
    city?: string;
    /**
     * The street address where the transaction occurred.
     * @type {string}
     * @memberof ClientProvidedTransactionLocation
     */
    address?: string;
    /**
     * The postal code where the transaction occurred.
     * @type {string}
     * @memberof ClientProvidedTransactionLocation
     */
    postal_code?: string;
}
/**
 * Describes the connected application for a particular end user.
 * @export
 * @interface ConnectedApplication
 */
export interface ConnectedApplication {
    /**
     * This field will map to the application ID that is returned from /item/application/list, or provided to the institution in an oauth redirect.
     * @type {string}
     * @memberof ConnectedApplication
     */
    application_id: string;
    /**
     * The name of the application
     * @type {string}
     * @memberof ConnectedApplication
     */
    name: string;
    /**
     * A human-readable name of the application for display purposes
     * @type {string}
     * @memberof ConnectedApplication
     */
    display_name?: string | null;
    /**
     * A URL that links to the application logo image.
     * @type {string}
     * @memberof ConnectedApplication
     */
    logo_url?: string | null;
    /**
     * The URL for the application\'s website
     * @type {string}
     * @memberof ConnectedApplication
     */
    application_url?: string | null;
    /**
     * A string provided by the connected app stating why they use their respective enabled products.
     * @type {string}
     * @memberof ConnectedApplication
     */
    reason_for_access?: string | null;
    /**
     * The date this application was linked in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format in UTC.
     * @type {string}
     * @memberof ConnectedApplication
     */
    created_at: string;
    /**
     *
     * @type {ScopesNullable}
     * @memberof ConnectedApplication
     */
    scopes?: ScopesNullable | null;
}
/**
 * Describes a consent event.
 * @export
 * @interface ConsentEvent
 */
export interface ConsentEvent {
    /**
     * The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
     * @type {string}
     * @memberof ConsentEvent
     */
    item_id?: string;
    /**
     * The date and time when the consent event occurred, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof ConsentEvent
     */
    created_at?: string;
    /**
     *
     * @type {ConsentEventType}
     * @memberof ConsentEvent
     */
    event_type?: ConsentEventType;
    /**
     *
     * @type {ConsentEventCode}
     * @memberof ConsentEvent
     */
    event_code?: ConsentEventCode;
    /**
     * Unique identifier for the institution associated with the Item. Field is `null` for Items created via Same Day Micro-deposits.
     * @type {string}
     * @memberof ConsentEvent
     */
    institution_id?: string | null;
    /**
     * The full name of the institution associated with the Item. Field is `null` for Items created via Same Day Micro-deposits.
     * @type {string}
     * @memberof ConsentEvent
     */
    institution_name?: string | null;
    /**
     *
     * @type {ConsentEventInitiator}
     * @memberof ConsentEvent
     */
    initiator?: ConsentEventInitiator;
    /**
     * A list of strings containing the full list of use cases the end user has consented to for the Item.  See the [full list](/docs/link/data-transparency-messaging-migration-guide/#updating-link-customizations) of use cases.
     * @type {Array<string>}
     * @memberof ConsentEvent
     */
    consented_use_cases?: Array<string>;
    /**
     * A list of strings containing the full list of data scopes the end user has consented to for the Item. These correspond to consented products; see the [full mapping](/docs/link/data-transparency-messaging-migration-guide/#data-scopes-by-product) of data scopes and products.
     * @type {Array<string>}
     * @memberof ConsentEvent
     */
    consented_data_scopes?: Array<string>;
    /**
     * An array containing the accounts associated with the Item for which authorizations are granted.
     * @type {Array<ConsentedAccount>}
     * @memberof ConsentEvent
     */
    consented_accounts?: Array<ConsentedAccount>;
}
/**
 * Codes describing the object of a consent event.
 * @export
 * @enum {string}
 */
export declare enum ConsentEventCode {
    UserAgreement = "USER_AGREEMENT",
    UseCases = "USE_CASES",
    DataScopes = "DATA_SCOPES",
    AccountScopes = "ACCOUNT_SCOPES"
}
/**
 * The entity that initiated collection of consent.
 * @export
 * @enum {string}
 */
export declare enum ConsentEventInitiator {
    Plaid = "PLAID",
    DataProvider = "DATA_PROVIDER",
    Customer = "CUSTOMER",
    EndUser = "END_USER"
}
/**
 * A broad categorization of the consent event.
 * @export
 * @enum {string}
 */
export declare enum ConsentEventType {
    Granted = "CONSENT_GRANTED",
    Revoked = "CONSENT_REVOKED",
    Updated = "CONSENT_UPDATED"
}
/**
 * Request to list a historical log of item consent events.
 * @export
 * @interface ConsentEventsGetRequest
 */
export interface ConsentEventsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ConsentEventsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ConsentEventsGetRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ConsentEventsGetRequest
     */
    access_token: string;
}
/**
 * Describes a historical log of item consent events.
 * @export
 * @interface ConsentEventsGetResponse
 */
export interface ConsentEventsGetResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ConsentEventsGetResponse
     */
    request_id: string;
    /**
     * A list of consent events.
     * @type {Array<ConsentEvent>}
     * @memberof ConsentEventsGetResponse
     */
    consent_events: Array<ConsentEvent>;
}
/**
 * A financial institution account.
 * @export
 * @interface ConsentedAccount
 */
export interface ConsentedAccount {
    /**
     * Plaid’s unique identifier for the account. Like all Plaid identifiers, the `account_id` is case sensitive.
     * @type {string}
     * @memberof ConsentedAccount
     */
    account_id?: string;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number
     * @type {string}
     * @memberof ConsentedAccount
     */
    mask?: string;
    /**
     * The name of the account, either assigned by the user or by the financial institution itself
     * @type {string}
     * @memberof ConsentedAccount
     */
    name?: string;
    /**
     * The official name of the account as given by the financial institution
     * @type {string}
     * @memberof ConsentedAccount
     */
    official_name?: string;
    /**
     *
     * @type {AccountType}
     * @memberof ConsentedAccount
     */
    type?: AccountType;
    /**
     *
     * @type {AccountSubtype}
     * @memberof ConsentedAccount
     */
    subtype?: AccountSubtype | null;
}
/**
 * The information about a previously submitted valid dispute statement by the consumer
 * @export
 * @interface ConsumerDispute
 */
export interface ConsumerDispute {
    /**
     * (Deprecated) A unique identifier (UUID) of the consumer dispute that can be used for troubleshooting
     * @type {string}
     * @memberof ConsumerDispute
     * @deprecated
     */
    consumer_dispute_id: string;
    /**
     * Date of the disputed field (e.g. transaction date), in an ISO 8601 format (YYYY-MM-DD)
     * @type {string}
     * @memberof ConsumerDispute
     */
    dispute_field_create_date: string;
    /**
     *
     * @type {ConsumerDisputeCategory}
     * @memberof ConsumerDispute
     */
    category: ConsumerDisputeCategory;
    /**
     * Text content of dispute
     * @type {string}
     * @memberof ConsumerDispute
     */
    statement: string;
}
/**
 * Type of data being disputed by the consumer
 * @export
 * @enum {string}
 */
export declare enum ConsumerDisputeCategory {
    Transaction = "TRANSACTION",
    Balance = "BALANCE",
    Identity = "IDENTITY",
    Other = "OTHER"
}
/**
 * ConsumerReportPDFGetRequest defines the request schema for `/consumer_report/pdf/get`
 * @export
 * @interface ConsumerReportPDFGetRequest
 */
export interface ConsumerReportPDFGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ConsumerReportPDFGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ConsumerReportPDFGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof ConsumerReportPDFGetRequest
     */
    user_token: string;
}
/**
 * Describes the reason you are generating a Consumer Report for this user.   `ACCOUNT_REVIEW_CREDIT`: In connection with a consumer credit transaction for the review or collection of an account pursuant to FCRA Section 604(a)(3)(A).  `ACCOUNT_REVIEW_NON_CREDIT`: For a legitimate business need of the information to review a non-credit account provided primarily for personal, family, or household purposes to determine whether the consumer continues to meet the terms of the account pursuant to FCRA Section 604(a)(3)(F)(2).  `EMPLOYMENT`: For employment purposes pursuant to FCRA 604(a)(3)(B), including hiring, retention and promotion purposes.  `EXTENSION_OF_CREDIT`: In connection with a credit transaction initiated by and involving the consumer pursuant to FCRA Section 604(a)(3)(A).  `LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING`: For a legitimate business need in connection with a business transaction initiated by the consumer primarily for personal, family, or household purposes in connection with a property rental assessment pursuant to FCRA Section 604(a)(3)(F)(i).  `LEGITIMATE_BUSINESS_NEED_OTHER`: For a legitimate business need in connection with a business transaction made primarily for personal, family, or household initiated by the consumer pursuant to FCRA Section 604(a)(3)(F)(i).  `WRITTEN_INSTRUCTION_PREQUALIFICATION`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), to evaluate an application’s profile to make an offer to the consumer.  `WRITTEN_INSTRUCTION_OTHER`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), such as when an individual agrees to act as a guarantor or assumes personal liability for a consumer, business, or commercial loan.
 * @export
 * @enum {string}
 */
export declare enum ConsumerReportPermissiblePurpose {
    AccountReviewCredit = "ACCOUNT_REVIEW_CREDIT",
    AccountReviewNonCredit = "ACCOUNT_REVIEW_NON_CREDIT",
    Employment = "EMPLOYMENT",
    ExtensionOfCredit = "EXTENSION_OF_CREDIT",
    LegitimateBusinessNeedTenantScreening = "LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING",
    LegitimateBusinessNeedOther = "LEGITIMATE_BUSINESS_NEED_OTHER",
    WrittenInstructionPrequalification = "WRITTEN_INSTRUCTION_PREQUALIFICATION",
    WrittenInstructionOther = "WRITTEN_INSTRUCTION_OTHER"
}
/**
 * To create a Plaid Check Consumer Report for a user, this field must be present on the user token. If this field is not provided during user token creation, you can add it to the user later by calling `/user/update`. Once the field has been added to the user, you will be able to call `/link/token/create` with a non-empty `consumer_report_permissible_purpose` (which will automatically create a Plaid Check Consumer Report), or call `/cra/check_report/create` for that user.
 * @export
 * @interface ConsumerReportUserIdentity
 */
export interface ConsumerReportUserIdentity {
    /**
     * The user\'s first name
     * @type {string}
     * @memberof ConsumerReportUserIdentity
     */
    first_name: string;
    /**
     * The user\'s last name
     * @type {string}
     * @memberof ConsumerReportUserIdentity
     */
    last_name: string;
    /**
     * The user\'s phone number, in E.164 format: +{countrycode}{number}. For example: \"+14157452130\". Phone numbers provided in other formats will be parsed on a best-effort basis. Phone number input is validated against valid number ranges; number strings that do not match a real-world phone numbering scheme may cause the request to fail, even in the Sandbox test environment.
     * @type {Array<string>}
     * @memberof ConsumerReportUserIdentity
     */
    phone_numbers: Array<string>;
    /**
     * The user\'s emails
     * @type {Array<string>}
     * @memberof ConsumerReportUserIdentity
     */
    emails: Array<string>;
    /**
     * The last 4 digits of the user\'s social security number.
     * @type {string}
     * @memberof ConsumerReportUserIdentity
     */
    ssn_last_4?: string | null;
    /**
     * To be provided in the format \"yyyy-mm-dd\". This field is required for all Plaid Check customers.
     * @type {string}
     * @memberof ConsumerReportUserIdentity
     */
    date_of_birth?: string | null;
    /**
     *
     * @type {AddressData}
     * @memberof ConsumerReportUserIdentity
     */
    primary_address: AddressData;
}
/**
 * The counterparty, such as the merchant or financial institution, is extracted by Plaid from the raw description.
 * @export
 * @interface Counterparty
 */
export interface Counterparty {
    /**
     * The name of the counterparty, such as the merchant or the financial institution, as extracted by Plaid from the raw description.
     * @type {string}
     * @memberof Counterparty
     */
    name: string;
    /**
     * A unique, stable, Plaid-generated ID that maps to the counterparty.
     * @type {string}
     * @memberof Counterparty
     */
    entity_id?: string | null;
    /**
     *
     * @type {CounterpartyType}
     * @memberof Counterparty
     */
    type: CounterpartyType;
    /**
     * The website associated with the counterparty.
     * @type {string}
     * @memberof Counterparty
     */
    website: string | null;
    /**
     * The URL of a logo associated with the counterparty, if available. The logo will always be 100×100 pixel PNG file.
     * @type {string}
     * @memberof Counterparty
     */
    logo_url: string | null;
    /**
     * A description of how confident we are that the provided counterparty is involved in the transaction.  `VERY_HIGH`: We recognize this counterparty and we are more than 98% confident that it is involved in this transaction. `HIGH`: We recognize this counterparty and we are more than 90% confident that it is involved in this transaction. `MEDIUM`: We are moderately confident that this counterparty was involved in this transaction, but some details may differ from our records. `LOW`: We didn’t find a matching counterparty in our records, so we are returning a cleansed name parsed out of the request description. `UNKNOWN`: We don’t know the confidence level for this counterparty.
     * @type {string}
     * @memberof Counterparty
     */
    confidence_level?: string | null;
    /**
     * The phone number associated with the counterparty in E. 164 format. If there is a location match (i.e. a street address is returned in the location object), the phone number will be location specific.
     * @type {string}
     * @memberof Counterparty
     */
    phone_number: string | null;
}
/**
 * Insights around a user\'s counterparties
 * @export
 * @interface CounterpartyInsights
 */
export interface CounterpartyInsights {
    /**
     * Insights related to a user’s transactions with other financial institutions, including detected account types.
     * @type {Array<FinancialInstitutionInsights>}
     * @memberof CounterpartyInsights
     */
    financial_institution_insights?: Array<FinancialInstitutionInsights>;
    /**
     * Insights about a user’s top merchants, ranked by spend.
     * @type {Array<MerchantInsights>}
     * @memberof CounterpartyInsights
     */
    merchant_insights?: Array<MerchantInsights>;
}
/**
 * The counterparty type.  `merchant`: a provider of goods or services for purchase `financial_institution`: a financial entity (bank, credit union, BNPL, fintech) `payment_app`: a transfer or P2P app (e.g. Zelle) `marketplace`: a marketplace (e.g DoorDash, Google Play Store) `payment_terminal`: a point-of-sale payment terminal (e.g Square, Toast) `income_source`: the payer in an income transaction (e.g., an employer, client, or government agency)
 * @export
 * @enum {string}
 */
export declare enum CounterpartyType {
    Merchant = "merchant",
    FinancialInstitution = "financial_institution",
    PaymentApp = "payment_app",
    Marketplace = "marketplace",
    PaymentTerminal = "payment_terminal",
    IncomeSource = "income_source"
}
/**
 * ISO-3166-1 alpha-2 country code standard.
 * @export
 * @enum {string}
 */
export declare enum CountryCode {
    Us = "US",
    Gb = "GB",
    Es = "ES",
    Nl = "NL",
    Fr = "FR",
    Ie = "IE",
    Ca = "CA",
    De = "DE",
    It = "IT",
    Pl = "PL",
    Dk = "DK",
    No = "NO",
    Se = "SE",
    Ee = "EE",
    Lt = "LT",
    Lv = "LV",
    Pt = "PT",
    Be = "BE"
}
/**
 * The report of the Plaid Check Income Insights data for an end user.
 * @export
 * @interface CraBankIncome
 */
export interface CraBankIncome {
    /**
     * The unique identifier associated with the report.
     * @type {string}
     * @memberof CraBankIncome
     */
    bank_income_id?: string;
    /**
     * The time when the report was generated.
     * @type {string}
     * @memberof CraBankIncome
     */
    generated_time?: string;
    /**
     * The number of days requested by the customer for the report.
     * @type {number}
     * @memberof CraBankIncome
     */
    days_requested?: number;
    /**
     * The list of Items in the report along with the associated metadata about the Item.
     * @type {Array<CraBankIncomeItem>}
     * @memberof CraBankIncome
     */
    items?: Array<CraBankIncomeItem>;
    /**
     *
     * @type {CraBankIncomeSummary}
     * @memberof CraBankIncome
     */
    bank_income_summary?: CraBankIncomeSummary;
    /**
     * If data from the report was unable to be retrieved, the warnings object will contain information about the error that caused the data to be incomplete.
     * @type {Array<CraBankIncomeWarning>}
     * @memberof CraBankIncome
     */
    warnings?: Array<CraBankIncomeWarning>;
}
/**
 * The Item\'s bank accounts that have the selected data.
 * @export
 * @interface CraBankIncomeAccount
 */
export interface CraBankIncomeAccount {
    /**
     * Plaid’s unique identifier for the account. This value will not change unless Plaid can\'t reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new `account_id` will be assigned to the account.  If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.  Like all Plaid identifiers, the `account_id` is case sensitive.
     * @type {string}
     * @memberof CraBankIncomeAccount
     */
    account_id?: string;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number. Note that the mask may be non-unique between an Item\'s accounts, and it may also not match the mask that the bank displays to the user.
     * @type {string}
     * @memberof CraBankIncomeAccount
     */
    mask: string | null;
    /**
     *
     * @type {CraBankIncomeAccountMetadata}
     * @memberof CraBankIncomeAccount
     */
    metadata: CraBankIncomeAccountMetadata;
    /**
     * The name of the bank account.
     * @type {string}
     * @memberof CraBankIncomeAccount
     */
    name: string;
    /**
     * The official name of the bank account.
     * @type {string}
     * @memberof CraBankIncomeAccount
     */
    official_name: string | null;
    /**
     *
     * @type {DepositoryAccountSubtype}
     * @memberof CraBankIncomeAccount
     */
    subtype: DepositoryAccountSubtype;
    /**
     *
     * @type {CreditBankIncomeAccountType}
     * @memberof CraBankIncomeAccount
     */
    type: CreditBankIncomeAccountType;
    /**
     * Data returned by the financial institution about the account owner or owners. Identity information is optional, so field may return an empty array.
     * @type {Array<Owner>}
     * @memberof CraBankIncomeAccount
     */
    owners: Array<Owner>;
}
/**
 * An object containing metadata about the extracted account.
 * @export
 * @interface CraBankIncomeAccountMetadata
 */
export interface CraBankIncomeAccountMetadata {
    /**
     * The date of the earliest extracted transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof CraBankIncomeAccountMetadata
     */
    start_date: string | null;
    /**
     * The date of the most recent extracted transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof CraBankIncomeAccountMetadata
     */
    end_date: string | null;
}
/**
 * The type of bonus that this transaction represents, if it is a bonus. `BONUS_INCLUDED`: Bonus is included in this transaction along with the normal pay `BONUS_ONLY`: This transaction is a standalone bonus
 * @export
 * @enum {string}
 */
export declare enum CraBankIncomeBonusType {
    BonusIncluded = "BONUS_INCLUDED",
    BonusOnly = "BONUS_ONLY",
    Null = "null"
}
/**
 * An error object and associated `item_id` used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.
 * @export
 * @interface CraBankIncomeCause
 */
export interface CraBankIncomeCause {
    /**
     *
     * @type {CreditBankIncomeErrorType}
     * @memberof CraBankIncomeCause
     */
    error_type: CreditBankIncomeErrorType;
    /**
     * We use standard HTTP response codes for success and failure notifications, and our errors are further classified by `error_type`. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. Error fields will be `null` if no error has occurred.
     * @type {string}
     * @memberof CraBankIncomeCause
     */
    error_code: string;
    /**
     * A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
     * @type {string}
     * @memberof CraBankIncomeCause
     */
    error_message: string;
    /**
     * A user-friendly representation of the error code. null if the error is not related to user action. This may change over time and is not safe for programmatic use.
     * @type {string}
     * @memberof CraBankIncomeCause
     */
    display_message: string;
}
/**
 * The result of the bank income report generation  `SUCCESS`: The bank income report was successfully generated and can be retrieved via `/cra/bank_income/get`.  `FAILURE`: The bank income report failed to be generated
 * @export
 * @enum {string}
 */
export declare enum CraBankIncomeCompleteResult {
    Success = "SUCCESS",
    Failure = "FAILURE"
}
/**
 * Fired when a bank income report has finished generating or failed to generate, triggered by calling `/cra/bank_income/get`.
 * @export
 * @interface CraBankIncomeCompleteWebhook
 */
export interface CraBankIncomeCompleteWebhook {
    /**
     * `CRA_INCOME`
     * @type {string}
     * @memberof CraBankIncomeCompleteWebhook
     */
    webhook_type: string;
    /**
     * `BANK_INCOME_COMPLETE`
     * @type {string}
     * @memberof CraBankIncomeCompleteWebhook
     */
    webhook_code: string;
    /**
     * The `user_id` corresponding to the user the webhook has fired for.
     * @type {string}
     * @memberof CraBankIncomeCompleteWebhook
     */
    user_id: string;
    /**
     *
     * @type {CraBankIncomeCompleteResult}
     * @memberof CraBankIncomeCompleteWebhook
     */
    result?: CraBankIncomeCompleteResult;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof CraBankIncomeCompleteWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * CraBankIncomeCreateRequest defines the request schema for `/cra/bank_income/create`.
 * @export
 * @interface CraBankIncomeCreateRequest
 */
export interface CraBankIncomeCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraBankIncomeCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraBankIncomeCreateRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraBankIncomeCreateRequest
     */
    user_token?: string;
    /**
     * The destination URL to which webhooks will be sent
     * @type {string}
     * @memberof CraBankIncomeCreateRequest
     */
    webhook?: string;
    /**
     * The number of days of data to request
     * @type {number}
     * @memberof CraBankIncomeCreateRequest
     */
    days_requested?: number;
    /**
     *
     * @type {ConsumerReportPermissiblePurpose}
     * @memberof CraBankIncomeCreateRequest
     */
    consumer_report_permissible_purpose?: ConsumerReportPermissiblePurpose;
}
/**
 * CraBankIncomeCreateRequest defines the response schema for `/cra/bank_income/create`.
 * @export
 * @interface CraBankIncomeCreateResponse
 */
export interface CraBankIncomeCreateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraBankIncomeCreateResponse
     */
    request_id?: string;
}
/**
 * The object containing employer data.
 * @export
 * @interface CraBankIncomeEmployer
 */
export interface CraBankIncomeEmployer {
    /**
     * The name of the employer.
     * @type {string}
     * @memberof CraBankIncomeEmployer
     */
    name: string | null;
}
/**
 * Fired when a bank income report has failed to generate
 * @export
 * @interface CraBankIncomeErrorWebhook
 */
export interface CraBankIncomeErrorWebhook {
    /**
     * `CRA_INCOME`
     * @type {string}
     * @memberof CraBankIncomeErrorWebhook
     */
    webhook_type: string;
    /**
     * `ERROR`
     * @type {string}
     * @memberof CraBankIncomeErrorWebhook
     */
    webhook_code: string;
    /**
     * The `user_id` corresponding to the user the webhook has fired for.
     * @type {string}
     * @memberof CraBankIncomeErrorWebhook
     */
    user_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof CraBankIncomeErrorWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * CraBankIncomeGetRequest defines the request schema for `/cra/bank_income/get`.
 * @export
 * @interface CraBankIncomeGetRequest
 */
export interface CraBankIncomeGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraBankIncomeGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraBankIncomeGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraBankIncomeGetRequest
     */
    user_token?: string;
}
/**
 * CraBankIncomeGetResponse defines the response schema for `/cra/bank_income/get`.
 * @export
 * @interface CraBankIncomeGetResponse
 */
export interface CraBankIncomeGetResponse {
    /**
     *
     * @type {Array<CraBankIncome>}
     * @memberof CraBankIncomeGetResponse
     */
    bank_income?: Array<CraBankIncome>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraBankIncomeGetResponse
     */
    request_id: string;
}
/**
 * The end user\'s monthly summary for the income source(s).
 * @export
 * @interface CraBankIncomeHistoricalSummary
 */
export interface CraBankIncomeHistoricalSummary {
    /**
     * Total amount of earnings for the income source(s) of the user for the month in the summary. This can contain multiple amounts, with each amount denominated in one unique currency.
     * @type {Array<CreditAmountWithCurrency>}
     * @memberof CraBankIncomeHistoricalSummary
     */
    total_amounts?: Array<CreditAmountWithCurrency>;
    /**
     * The start date of the period covered in this monthly summary. This date will be the first day of the month, unless the month being covered is a partial month because it is the first month included in the summary and the date range being requested does not begin with the first day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraBankIncomeHistoricalSummary
     */
    start_date?: string;
    /**
     * The end date of the period included in this monthly summary. This date will be the last day of the month, unless the month being covered is a partial month because it is the last month included in the summary and the date range being requested does not end with the last day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraBankIncomeHistoricalSummary
     */
    end_date?: string;
    /**
     *
     * @type {Array<CraBankIncomeTransaction>}
     * @memberof CraBankIncomeHistoricalSummary
     */
    transactions?: Array<CraBankIncomeTransaction>;
}
/**
 * The details and metadata for an end user\'s Item.
 * @export
 * @interface CraBankIncomeItem
 */
export interface CraBankIncomeItem {
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof CraBankIncomeItem
     */
    item_id?: string;
    /**
     * The Item\'s accounts that have bank income data.
     * @type {Array<CraBankIncomeAccount>}
     * @memberof CraBankIncomeItem
     */
    bank_income_accounts: Array<CraBankIncomeAccount>;
    /**
     * The income sources for this Item. Each entry in the array is a single income source.
     * @type {Array<CraBankIncomeSource>}
     * @memberof CraBankIncomeItem
     */
    bank_income_sources: Array<CraBankIncomeSource>;
    /**
     * The time when this Item\'s data was last retrieved from the financial institution.
     * @type {string}
     * @memberof CraBankIncomeItem
     */
    last_updated_time?: string;
    /**
     * The unique identifier of the institution associated with the Item.
     * @type {string}
     * @memberof CraBankIncomeItem
     */
    institution_id?: string;
    /**
     * The name of the institution associated with the Item.
     * @type {string}
     * @memberof CraBankIncomeItem
     */
    institution_name?: string;
}
/**
 * Detailed information for the income source.
 * @export
 * @interface CraBankIncomeSource
 */
export interface CraBankIncomeSource {
    /**
     * The account ID with which this income source is associated.
     * @type {string}
     * @memberof CraBankIncomeSource
     */
    account_id?: string;
    /**
     * A unique identifier for an income source.
     * @type {string}
     * @memberof CraBankIncomeSource
     */
    income_source_id?: string;
    /**
     * The most common name or original description for the underlying income transactions.
     * @type {string}
     * @memberof CraBankIncomeSource
     */
    income_description?: string;
    /**
     *
     * @type {CreditBankIncomeCategory}
     * @memberof CraBankIncomeSource
     */
    income_category?: CreditBankIncomeCategory;
    /**
     * Minimum of all dates within the specific income sources in the user\'s bank account for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraBankIncomeSource
     */
    start_date?: string;
    /**
     * Maximum of all dates within the specific income sources in the user’s bank account for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraBankIncomeSource
     */
    end_date?: string;
    /**
     *
     * @type {CreditBankIncomePayFrequency}
     * @memberof CraBankIncomeSource
     */
    pay_frequency?: CreditBankIncomePayFrequency;
    /**
     * Total amount of earnings in the user’s bank account for the specific income source for days requested by the client.
     * @type {number}
     * @memberof CraBankIncomeSource
     */
    total_amount?: number;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof CraBankIncomeSource
     */
    iso_currency_code?: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof CraBankIncomeSource
     */
    unofficial_currency_code?: string | null;
    /**
     * Number of transactions for the income source within the start and end date.
     * @type {number}
     * @memberof CraBankIncomeSource
     */
    transaction_count?: number;
    /**
     * The expected date of the end user’s next paycheck for the income source. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraBankIncomeSource
     */
    next_payment_date?: string | null;
    /**
     * An estimate of the average gross monthly income based on the historical net amount and income category for the income source(s).
     * @type {number}
     * @memberof CraBankIncomeSource
     */
    historical_average_monthly_gross_income?: number | null;
    /**
     * The average monthly net income amount estimated based on the historical data for the income source(s).
     * @type {number}
     * @memberof CraBankIncomeSource
     */
    historical_average_monthly_income?: number | null;
    /**
     * The predicted average monthly net income amount for the income source(s).
     * @type {number}
     * @memberof CraBankIncomeSource
     */
    forecasted_average_monthly_income?: number | null;
    /**
     * The prediction interval(s) for the forecasted average monthly income.
     * @type {Array<CraPredictionInterval>}
     * @memberof CraBankIncomeSource
     */
    forecasted_average_monthly_income_prediction_intervals: Array<CraPredictionInterval>;
    /**
     *
     * @type {CraBankIncomeEmployer}
     * @memberof CraBankIncomeSource
     */
    employer?: CraBankIncomeEmployer;
    /**
     *
     * @type {Array<CraBankIncomeHistoricalSummary>}
     * @memberof CraBankIncomeSource
     */
    historical_summary?: Array<CraBankIncomeHistoricalSummary>;
}
/**
 * Summary for income across all income sources and items (max history of 730 days).
 * @export
 * @interface CraBankIncomeSummary
 */
export interface CraBankIncomeSummary {
    /**
     * Total amount of earnings across all the income sources in the end user\'s Items for the days requested by the client. This can contain multiple amounts, with each amount denominated in one unique currency.
     * @type {Array<CreditAmountWithCurrency>}
     * @memberof CraBankIncomeSummary
     */
    total_amounts?: Array<CreditAmountWithCurrency>;
    /**
     * The earliest date within the days requested in which all income sources identified by Plaid appear in a user\'s account. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraBankIncomeSummary
     */
    start_date?: string;
    /**
     * The latest date in which all income sources identified by Plaid appear in the user\'s account. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraBankIncomeSummary
     */
    end_date?: string;
    /**
     * Number of income sources per end user.
     * @type {number}
     * @memberof CraBankIncomeSummary
     */
    income_sources_count?: number;
    /**
     * Number of income categories per end user.
     * @type {number}
     * @memberof CraBankIncomeSummary
     */
    income_categories_count?: number;
    /**
     * Number of income transactions per end user.
     * @type {number}
     * @memberof CraBankIncomeSummary
     */
    income_transactions_count?: number;
    /**
     * An estimate of the average gross monthly income based on the historical net amount and income category for the income source(s).
     * @type {Array<CreditAmountWithCurrency>}
     * @memberof CraBankIncomeSummary
     */
    historical_average_monthly_gross_income?: Array<CreditAmountWithCurrency>;
    /**
     * The average monthly income amount estimated based on the historical data for the income source(s).
     * @type {Array<CreditAmountWithCurrency>}
     * @memberof CraBankIncomeSummary
     */
    historical_average_monthly_income?: Array<CreditAmountWithCurrency>;
    /**
     * The predicted average monthly income amount for the income source(s).
     * @type {Array<CreditAmountWithCurrency>}
     * @memberof CraBankIncomeSummary
     */
    forecasted_average_monthly_income?: Array<CreditAmountWithCurrency>;
    /**
     * An estimate of the annual gross income based on the historical net amount and income category for the income source(s).
     * @type {Array<CreditAmountWithCurrency>}
     * @memberof CraBankIncomeSummary
     */
    historical_annual_gross_income?: Array<CreditAmountWithCurrency>;
    /**
     * The annual income amount estimated based on the historical data for the income source(s).
     * @type {Array<CreditAmountWithCurrency>}
     * @memberof CraBankIncomeSummary
     */
    historical_annual_income?: Array<CreditAmountWithCurrency>;
    /**
     * The predicted average annual income amount for the income source(s).
     * @type {Array<CreditAmountWithCurrency>}
     * @memberof CraBankIncomeSummary
     */
    forecasted_annual_income?: Array<CreditAmountWithCurrency>;
    /**
     *
     * @type {Array<CraBankIncomeHistoricalSummary>}
     * @memberof CraBankIncomeSummary
     */
    historical_summary?: Array<CraBankIncomeHistoricalSummary>;
}
/**
 * The transactions data for the end user\'s income source(s).
 * @export
 * @interface CraBankIncomeTransaction
 */
export interface CraBankIncomeTransaction {
    /**
     * The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
     * @type {string}
     * @memberof CraBankIncomeTransaction
     */
    transaction_id: string;
    /**
     * The settled value of the transaction, denominated in the transaction\'s currency as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative.
     * @type {number}
     * @memberof CraBankIncomeTransaction
     */
    amount: number;
    /**
     * For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraBankIncomeTransaction
     */
    date: string;
    /**
     * The merchant name or transaction description.
     * @type {string}
     * @memberof CraBankIncomeTransaction
     */
    name?: string;
    /**
     * The string returned by the financial institution to describe the transaction.
     * @type {string}
     * @memberof CraBankIncomeTransaction
     */
    original_description: string | null;
    /**
     * When true, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
     * @type {boolean}
     * @memberof CraBankIncomeTransaction
     */
    pending: boolean;
    /**
     * The check number of the transaction. This field is only populated for check transactions.
     * @type {string}
     * @memberof CraBankIncomeTransaction
     */
    check_number?: string | null;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof CraBankIncomeTransaction
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof CraBankIncomeTransaction
     */
    unofficial_currency_code: string | null;
    /**
     *
     * @type {CraBankIncomeBonusType}
     * @memberof CraBankIncomeTransaction
     */
    bonus_type?: CraBankIncomeBonusType | null;
}
/**
 * The warning associated with the data that was unavailable.
 * @export
 * @interface CraBankIncomeWarning
 */
export interface CraBankIncomeWarning {
    /**
     *
     * @type {CreditBankIncomeWarningType}
     * @memberof CraBankIncomeWarning
     */
    warning_type?: CreditBankIncomeWarningType;
    /**
     *
     * @type {CraBankIncomeWarningCode}
     * @memberof CraBankIncomeWarning
     */
    warning_code?: CraBankIncomeWarningCode;
    /**
     *
     * @type {CraBankIncomeCause}
     * @memberof CraBankIncomeWarning
     */
    cause?: CraBankIncomeCause;
}
/**
 * The warning code identifies a specific kind of warning. `IDENTITY_UNAVAILABLE`: Unable to extract identity for the Item `TRANSACTIONS_UNAVAILABLE`: Unable to extract transactions for the Item `REPORT_DELETED`: Report deleted due to customer or consumer request `DATA_UNAVAILABLE`: No relevant data was found for the Item
 * @export
 * @enum {string}
 */
export declare enum CraBankIncomeWarningCode {
    IdentityUnavailable = "IDENTITY_UNAVAILABLE",
    TransactionsUnavailable = "TRANSACTIONS_UNAVAILABLE",
    ReportDeleted = "REPORT_DELETED",
    DataUnavailable = "DATA_UNAVAILABLE"
}
/**
 * CraBaseReportCreateResponse defines the response schema for `cra/base_report/create`
 * @export
 * @interface CraBaseReportCreateResponse
 */
export interface CraBaseReportCreateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraBaseReportCreateResponse
     */
    request_id: string;
}
/**
 * Contains data for the CRA Cashflow Insights Report.
 * @export
 * @interface CraCashflowInsightsReport
 */
export interface CraCashflowInsightsReport {
    /**
     * The unique identifier associated with the Network Attributes report object.
     * @type {string}
     * @memberof CraCashflowInsightsReport
     */
    report_id: string;
    /**
     * The time when the Network Attributes Report was generated.
     * @type {string}
     * @memberof CraCashflowInsightsReport
     */
    generated_time: string;
    /**
     *
     * @type {PlaidCheckScore}
     * @memberof CraCashflowInsightsReport
     */
    plaid_check_score?: PlaidCheckScore | null;
    /**
     * A map of cashflow attributes, where the key is a string, and the value is a float, int, or boolean.
     * @type {object}
     * @memberof CraCashflowInsightsReport
     */
    attributes?: object;
}
/**
 * BaseReportGetRequest defines the request schema for `/cra/check_report/base_report/get`
 * @export
 * @interface CraCheckReportBaseReportGetRequest
 */
export interface CraCheckReportBaseReportGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportBaseReportGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportBaseReportGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraCheckReportBaseReportGetRequest
     */
    user_token?: string;
    /**
     * The third-party user token associated with the requested User data.
     * @type {string}
     * @memberof CraCheckReportBaseReportGetRequest
     */
    third_party_user_token?: string;
    /**
     * The item IDs to include in the Base Report. If not provided, all items associated with the user will be included.
     * @type {Array<string>}
     * @memberof CraCheckReportBaseReportGetRequest
     */
    item_ids?: Array<string> | null;
}
/**
 * CraCheckReportBaseReportGetResponse defines the response schema for `/cra/check_report/base_report/get`
 * @export
 * @interface CraCheckReportBaseReportGetResponse
 */
export interface CraCheckReportBaseReportGetResponse {
    /**
     *
     * @type {BaseReport}
     * @memberof CraCheckReportBaseReportGetResponse
     */
    report: BaseReport;
    /**
     * If the Base Report generation was successful but identity information cannot be returned, this array will contain information about the errors causing identity information to be missing
     * @type {Array<BaseReportWarning>}
     * @memberof CraCheckReportBaseReportGetResponse
     */
    warnings: Array<BaseReportWarning>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraCheckReportBaseReportGetResponse
     */
    request_id: string;
}
/**
 * Defines configuration options to generate Cashflow Insights
 * @export
 * @interface CraCheckReportCashflowInsightsGetOptions
 */
export interface CraCheckReportCashflowInsightsGetOptions {
    /**
     * The version of the Plaid Check score to return
     * @type {string}
     * @memberof CraCheckReportCashflowInsightsGetOptions
     */
    plaid_check_score_version?: string | null;
    /**
     *
     * @type {CashflowAttributesVersion}
     * @memberof CraCheckReportCashflowInsightsGetOptions
     */
    attributes_version?: CashflowAttributesVersion | null;
}
/**
 * CraCheckReportCashflowInsightsGetRequest defines the request schema for `/cra/check_report/cashflow_insights/get`.
 * @export
 * @interface CraCheckReportCashflowInsightsGetRequest
 */
export interface CraCheckReportCashflowInsightsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportCashflowInsightsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportCashflowInsightsGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraCheckReportCashflowInsightsGetRequest
     */
    user_token?: string;
    /**
     * The third-party user token associated with the requested User data.
     * @type {string}
     * @memberof CraCheckReportCashflowInsightsGetRequest
     */
    third_party_user_token?: string;
    /**
     *
     * @type {CraCheckReportCashflowInsightsGetOptions}
     * @memberof CraCheckReportCashflowInsightsGetRequest
     */
    options?: CraCheckReportCashflowInsightsGetOptions | null;
}
/**
 * CraCheckReportCashflowInsightsGetResponse defines the response schema for `/cra/check_report/cashflow_insights/get`.
 * @export
 * @interface CraCheckReportCashflowInsightsGetResponse
 */
export interface CraCheckReportCashflowInsightsGetResponse {
    /**
     *
     * @type {CraCashflowInsightsReport}
     * @memberof CraCheckReportCashflowInsightsGetResponse
     */
    report: CraCashflowInsightsReport;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraCheckReportCashflowInsightsGetResponse
     */
    request_id: string;
}
/**
 * Defines configuration options to generate a Base Report
 * @export
 * @interface CraCheckReportCreateBaseReportOptions
 */
export interface CraCheckReportCreateBaseReportOptions {
    /**
     * Client-generated identifier, which can be used by lenders to track loan applications.
     * @type {string}
     * @memberof CraCheckReportCreateBaseReportOptions
     */
    client_report_id?: string | null;
}
/**
 * CraCheckReportCreateRequest defines the request schema for `/cra/check_report/create`.
 * @export
 * @interface CraCheckReportCreateRequest
 */
export interface CraCheckReportCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportCreateRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraCheckReportCreateRequest
     */
    user_token: string;
    /**
     * The destination URL to which webhooks will be sent
     * @type {string}
     * @memberof CraCheckReportCreateRequest
     */
    webhook: string;
    /**
     * The number of days of data to request for the report. Default value is 365; maximum is 731; minimum is 180. If a value lower than 180 is provided, a minimum of 180 days of history will be requested.
     * @type {number}
     * @memberof CraCheckReportCreateRequest
     */
    days_requested: number;
    /**
     * The minimum number of days of data required for the report to be successfully generated.
     * @type {number}
     * @memberof CraCheckReportCreateRequest
     */
    days_required?: number;
    /**
     * Specifies a list of products that will be eagerly generated when creating the report. These products will be made available before a success webhook is sent. Use this option to minimize response latency for product `/get` endpoints.
     * @type {Array<Products>}
     * @memberof CraCheckReportCreateRequest
     */
    products?: Array<Products> | null;
    /**
     *
     * @type {CraCheckReportCreateBaseReportOptions}
     * @memberof CraCheckReportCreateRequest
     */
    base_report?: CraCheckReportCreateBaseReportOptions | null;
    /**
     *
     * @type {CraCheckReportCashflowInsightsGetOptions}
     * @memberof CraCheckReportCreateRequest
     */
    cashflow_insights?: CraCheckReportCashflowInsightsGetOptions | null;
    /**
     *
     * @type {CraCheckReportPartnerInsightsGetOptions}
     * @memberof CraCheckReportCreateRequest
     */
    partner_insights?: CraCheckReportPartnerInsightsGetOptions | null;
    /**
     *
     * @type {ConsumerReportPermissiblePurpose}
     * @memberof CraCheckReportCreateRequest
     */
    consumer_report_permissible_purpose: ConsumerReportPermissiblePurpose;
}
/**
 * CraCheckReportCreateResponse defines the response schema for `/cra/check_report/create`.
 * @export
 * @interface CraCheckReportCreateResponse
 */
export interface CraCheckReportCreateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraCheckReportCreateResponse
     */
    request_id?: string;
}
/**
 * Fired when a Check Report has failed to generate
 * @export
 * @interface CraCheckReportFailedWebhook
 */
export interface CraCheckReportFailedWebhook {
    /**
     * `CHECK_REPORT`
     * @type {string}
     * @memberof CraCheckReportFailedWebhook
     */
    webhook_type: string;
    /**
     * `CHECK_REPORT_FAILED`
     * @type {string}
     * @memberof CraCheckReportFailedWebhook
     */
    webhook_code: string;
    /**
     * The `user_id` corresponding to the user the webhook has fired for.
     * @type {string}
     * @memberof CraCheckReportFailedWebhook
     */
    user_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof CraCheckReportFailedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Defines the request schema for `/cra/check_report/income_insights/get`.
 * @export
 * @interface CraCheckReportIncomeInsightsGetRequest
 */
export interface CraCheckReportIncomeInsightsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportIncomeInsightsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportIncomeInsightsGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraCheckReportIncomeInsightsGetRequest
     */
    user_token?: string;
    /**
     * The third-party user token associated with the requested User data.
     * @type {string}
     * @memberof CraCheckReportIncomeInsightsGetRequest
     */
    third_party_user_token?: string;
}
/**
 * CraCheckReportIncomeInsightsGetResponse defines the response schema for `/cra/check_report/income_insights/get`.
 * @export
 * @interface CraCheckReportIncomeInsightsGetResponse
 */
export interface CraCheckReportIncomeInsightsGetResponse {
    /**
     *
     * @type {CraIncomeInsights}
     * @memberof CraCheckReportIncomeInsightsGetResponse
     */
    report?: CraIncomeInsights;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraCheckReportIncomeInsightsGetResponse
     */
    request_id: string;
}
/**
 * CraCheckReportNetworkInsightsGetRequest defines the request schema for `/cra/check_report/network_attributes/get`.
 * @export
 * @interface CraCheckReportNetworkInsightsGetRequest
 */
export interface CraCheckReportNetworkInsightsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportNetworkInsightsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportNetworkInsightsGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraCheckReportNetworkInsightsGetRequest
     */
    user_token?: string;
    /**
     * The third-party user token associated with the requested User data.
     * @type {string}
     * @memberof CraCheckReportNetworkInsightsGetRequest
     */
    third_party_user_token?: string;
}
/**
 * CraCheckReportNetworkInsightsGetResponse defines the response schema for `/cra/check_report/network_attributes/get`.
 * @export
 * @interface CraCheckReportNetworkInsightsGetResponse
 */
export interface CraCheckReportNetworkInsightsGetResponse {
    /**
     *
     * @type {CraNetworkInsightsReport}
     * @memberof CraCheckReportNetworkInsightsGetResponse
     */
    report: CraNetworkInsightsReport;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraCheckReportNetworkInsightsGetResponse
     */
    request_id: string;
}
/**
 * CraCheckReportPDFGetRequest defines the request schema for `/cra/check_report/pdf/get`.
 * @export
 * @interface CraCheckReportPDFGetRequest
 */
export interface CraCheckReportPDFGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportPDFGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportPDFGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraCheckReportPDFGetRequest
     */
    user_token?: string;
    /**
     * The third-party user token associated with the requested User data.
     * @type {string}
     * @memberof CraCheckReportPDFGetRequest
     */
    third_party_user_token?: string;
    /**
     * Use this field to include other reports in the PDF.
     * @type {Array<CraPDFAddOns>}
     * @memberof CraCheckReportPDFGetRequest
     */
    add_ons?: Array<CraPDFAddOns>;
}
/**
 * Defines configuration options to generate Partner Insights
 * @export
 * @interface CraCheckReportPartnerInsightsGetOptions
 */
export interface CraCheckReportPartnerInsightsGetOptions {
    /**
     * The specific Prism Data products to return. If none are passed in, then all products will be returned.
     * @type {Array<PrismProduct>}
     * @memberof CraCheckReportPartnerInsightsGetOptions
     */
    prism_products?: Array<PrismProduct>;
    /**
     *
     * @type {PrismVersions}
     * @memberof CraCheckReportPartnerInsightsGetOptions
     */
    prism_versions?: PrismVersions | null;
}
/**
 * CraPartnerInsightsGetRequest defines the request schema for `/cra/partner_insights/get`.
 * @export
 * @interface CraCheckReportPartnerInsightsGetRequest
 */
export interface CraCheckReportPartnerInsightsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportPartnerInsightsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraCheckReportPartnerInsightsGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraCheckReportPartnerInsightsGetRequest
     */
    user_token?: string;
    /**
     * The third-party user token associated with the requested User data.
     * @type {string}
     * @memberof CraCheckReportPartnerInsightsGetRequest
     */
    third_party_user_token?: string;
    /**
     *
     * @type {CraCheckReportPartnerInsightsGetOptions}
     * @memberof CraCheckReportPartnerInsightsGetRequest
     */
    options?: CraCheckReportPartnerInsightsGetOptions | null;
}
/**
 * CraPartnerInsightsGetResponse defines the response schema for `/cra/partner_insights/get`.
 * @export
 * @interface CraCheckReportPartnerInsightsGetResponse
 */
export interface CraCheckReportPartnerInsightsGetResponse {
    /**
     *
     * @type {CraPartnerInsights}
     * @memberof CraCheckReportPartnerInsightsGetResponse
     */
    report?: CraPartnerInsights;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraCheckReportPartnerInsightsGetResponse
     */
    request_id: string;
}
/**
 * Fired when the Check Report are ready to be retrieved. Once this webhook has fired, the report will be available to retrieve for 24 hours.
 * @export
 * @interface CraCheckReportReadyWebhook
 */
export interface CraCheckReportReadyWebhook {
    /**
     * `CHECK_REPORT`
     * @type {string}
     * @memberof CraCheckReportReadyWebhook
     */
    webhook_type: string;
    /**
     * `CHECK_REPORT_READY`
     * @type {string}
     * @memberof CraCheckReportReadyWebhook
     */
    webhook_code: string;
    /**
     * The `user_id` corresponding to the user the webhook has fired for.
     * @type {string}
     * @memberof CraCheckReportReadyWebhook
     */
    user_id: string;
    /**
     * A list of `item_ids` that is included in the Check Report.
     * @type {Array<string>}
     * @memberof CraCheckReportReadyWebhook
     */
    item_ids?: Array<string> | null;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof CraCheckReportReadyWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * The Check Income Insights Report for an end user.
 * @export
 * @interface CraIncomeInsights
 */
export interface CraIncomeInsights {
    /**
     * The unique identifier associated with the Check Income Insights Report.
     * @type {string}
     * @memberof CraIncomeInsights
     */
    report_id?: string;
    /**
     * The time when the Check Income Insights Report was generated.
     * @type {string}
     * @memberof CraIncomeInsights
     */
    generated_time?: string;
    /**
     * The number of days requested by the customer for the Check Income Insights Report.
     * @type {number}
     * @memberof CraIncomeInsights
     */
    days_requested?: number;
    /**
     * The list of Items in the report along with the associated metadata about the Item.
     * @type {Array<CraBankIncomeItem>}
     * @memberof CraIncomeInsights
     */
    items?: Array<CraBankIncomeItem>;
    /**
     *
     * @type {CraBankIncomeSummary}
     * @memberof CraIncomeInsights
     */
    bank_income_summary?: CraBankIncomeSummary;
    /**
     * If data from the report was unable to be retrieved, the warnings object will contain information about the error that caused the data to be incomplete.
     * @type {Array<CraBankIncomeWarning>}
     * @memberof CraIncomeInsights
     */
    warnings?: Array<CraBankIncomeWarning>;
}
/**
 * Contains loan application data.
 * @export
 * @interface CraLoanApplication
 */
export interface CraLoanApplication {
    /**
     * The user token for the user associated with the loan.
     * @type {string}
     * @memberof CraLoanApplication
     */
    user_token: string;
    /**
     * A unique identifier for the loan application.  Personally identifiable information, such as an email address or phone number, should not be used in the `application_id`.
     * @type {string}
     * @memberof CraLoanApplication
     */
    application_id: string;
    /**
     *
     * @type {CraLoanType}
     * @memberof CraLoanApplication
     */
    type: CraLoanType;
    /**
     *
     * @type {CraLoanApplicationDecision}
     * @memberof CraLoanApplication
     */
    decision: CraLoanApplicationDecision;
    /**
     * The date the user applied for the loan. The date should be in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraLoanApplication
     */
    application_date?: string;
    /**
     * The date when the loan application\'s decision was made. The date should be in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraLoanApplication
     */
    decision_date?: string;
}
/**
 * The decision of the loan application.
 * @export
 * @enum {string}
 */
export declare enum CraLoanApplicationDecision {
    Approved = "APPROVED",
    Declined = "DECLINED",
    Other = "OTHER"
}
/**
 * Contains the status and date information of the loan when unregistering.
 * @export
 * @interface CraLoanClosedStatus
 */
export interface CraLoanClosedStatus {
    /**
     *
     * @type {CraLoanStatus}
     * @memberof CraLoanClosedStatus
     */
    status: CraLoanStatus;
    /**
     * The effective date for the status of the loan. The date should be in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraLoanClosedStatus
     */
    date: string;
}
/**
 * Contains the status and date information of the loan when registering.
 * @export
 * @interface CraLoanOpenedStatus
 */
export interface CraLoanOpenedStatus {
    /**
     *
     * @type {CraLoanStatus}
     * @memberof CraLoanOpenedStatus
     */
    status: CraLoanStatus;
    /**
     * The effective date for the status of the loan. The date should be in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraLoanOpenedStatus
     */
    date: string;
}
/**
 * Contains the payment information for a loan payment period.
 * @export
 * @interface CraLoanPaymentHistory
 */
export interface CraLoanPaymentHistory {
    /**
     * The index to identify the loan\'s payment period, starting from 1. For example:   1 means the period between the loan\'s opening date and the 1st payment due date.   2 means the period between the loan\'s 1st payment due date and 2nd payment due date.
     * @type {number}
     * @memberof CraLoanPaymentHistory
     */
    period: number;
    /**
     * The payment due date or end date of the payment period. The date should be in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraLoanPaymentHistory
     */
    due_date: string;
    /**
     * The number of days the loan was delinquent at the end of the pay period. If specified, should be greater of equal to 0.
     * @type {number}
     * @memberof CraLoanPaymentHistory
     */
    days_past_due: number;
    /**
     * The amount past due or the charge-off amount of the loan at the end of the payment period.
     * @type {number}
     * @memberof CraLoanPaymentHistory
     */
    amount_past_due?: number;
    /**
     * The balance remaining on the loan at the end of the payment period.
     * @type {number}
     * @memberof CraLoanPaymentHistory
     */
    balance_remaining?: number;
}
/**
 * The frequency of a loan\'s payment schedule. `BIWEEKLY` represents one payment every two weeks.
 * @export
 * @enum {string}
 */
export declare enum CraLoanPaymentSchedule {
    Daily = "DAILY",
    Weekly = "WEEKLY",
    Biweekly = "BIWEEKLY",
    Monthly = "MONTHLY",
    Quarterly = "QUARTERLY",
    Annually = "ANNUALLY",
    Other = "OTHER"
}
/**
 * Contains loan data to register.
 * @export
 * @interface CraLoanRegister
 */
export interface CraLoanRegister {
    /**
     * The user token for the user associated with the loan.
     * @type {string}
     * @memberof CraLoanRegister
     */
    user_token: string;
    /**
     * A unique identifier for the loan.  Personally identifiable information, such as an email address or phone number, should not be used in the `loan_id`.
     * @type {string}
     * @memberof CraLoanRegister
     */
    loan_id: string;
    /**
     *
     * @type {CraLoanType}
     * @memberof CraLoanRegister
     */
    type: CraLoanType;
    /**
     *
     * @type {CraLoanPaymentSchedule}
     * @memberof CraLoanRegister
     */
    payment_schedule: CraLoanPaymentSchedule;
    /**
     * The date the loan account was opened. The date should be in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraLoanRegister
     */
    opened_date: string;
    /**
     *
     * @type {CraLoanOpenedStatus}
     * @memberof CraLoanRegister
     */
    opened_with_status: CraLoanOpenedStatus;
    /**
     * The total amount of the approved loan.
     * @type {number}
     * @memberof CraLoanRegister
     */
    loan_amount?: number;
    /**
     *
     * @type {CraLoanRegisterApplication}
     * @memberof CraLoanRegister
     */
    application?: CraLoanRegisterApplication;
}
/**
 * Contains loan application data to register.
 * @export
 * @interface CraLoanRegisterApplication
 */
export interface CraLoanRegisterApplication {
    /**
     * A unique identifier for the loan application.  Personally identifiable information, such as an email address or phone number, should not be used in the `application_id`.
     * @type {string}
     * @memberof CraLoanRegisterApplication
     */
    application_id?: string;
    /**
     * The date the user applied for the loan. The date should be in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraLoanRegisterApplication
     */
    application_date?: string;
}
/**
 * The status of the loan.
 * @export
 * @enum {string}
 */
export declare enum CraLoanStatus {
    Approved = "APPROVED",
    Declined = "DECLINED",
    Booked = "BOOKED",
    Current = "CURRENT",
    Delinquent = "DELINQUENT",
    Default = "DEFAULT",
    ChargedOff = "CHARGED_OFF",
    Transferred = "TRANSFERRED",
    PaidOff = "PAID_OFF",
    Other = "OTHER"
}
/**
 * Contains the status and date of an update to the loan.
 * @export
 * @interface CraLoanStatusHistoryUpdate
 */
export interface CraLoanStatusHistoryUpdate {
    /**
     *
     * @type {CraLoanStatus}
     * @memberof CraLoanStatusHistoryUpdate
     */
    status: CraLoanStatus;
    /**
     * The effective date for the status of the loan. The date should be in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CraLoanStatusHistoryUpdate
     */
    date: string;
}
/**
 * The type of loan the user applied for.
 * @export
 * @enum {string}
 */
export declare enum CraLoanType {
    Personal = "PERSONAL",
    CreditCard = "CREDIT_CARD",
    Business = "BUSINESS",
    Mortgage = "MORTGAGE",
    Auto = "AUTO",
    Payday = "PAYDAY",
    Student = "STUDENT",
    HomeEquity = "HOME_EQUITY",
    Other = "OTHER"
}
/**
 * Contains loan data for the loan being unregistered.
 * @export
 * @interface CraLoanUnregister
 */
export interface CraLoanUnregister {
    /**
     * A unique identifier for the loan.  Personally identifiable information, such as an email address or phone number, should not be used in the `loan_id`.
     * @type {string}
     * @memberof CraLoanUnregister
     */
    loan_id: string;
    /**
     *
     * @type {CraLoanClosedStatus}
     * @memberof CraLoanUnregister
     */
    closed_with_status: CraLoanClosedStatus;
}
/**
 * CraLoanUnregisterResponse defines the response schema for `/cra/loans/unregister`.
 * @export
 * @interface CraLoanUnregisterResponse
 */
export interface CraLoanUnregisterResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraLoanUnregisterResponse
     */
    request_id: string;
}
/**
 * Contains loan data to update.
 * @export
 * @interface CraLoanUpdate
 */
export interface CraLoanUpdate {
    /**
     * A unique identifier for the loan.  Personally identifiable information, such as an email address or phone number, should not be used in the `loan_id`.
     * @type {string}
     * @memberof CraLoanUpdate
     */
    loan_id?: string;
    /**
     * A list of status update history of the loan.
     * @type {Array<CraLoanStatusHistoryUpdate>}
     * @memberof CraLoanUpdate
     */
    status_history?: Array<CraLoanStatusHistoryUpdate>;
    /**
     * The updates to the payment history for the loan.
     * @type {Array<CraLoanPaymentHistory>}
     * @memberof CraLoanUpdate
     */
    payment_history?: Array<CraLoanPaymentHistory>;
}
/**
 * CraLoansApplicationsRegisterRequest defines the request schema for `/cra/loans/applications/register`.
 * @export
 * @interface CraLoansApplicationsRegisterRequest
 */
export interface CraLoansApplicationsRegisterRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraLoansApplicationsRegisterRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraLoansApplicationsRegisterRequest
     */
    secret?: string;
    /**
     * A list of loan applications to register.
     * @type {Array<CraLoanApplication>}
     * @memberof CraLoansApplicationsRegisterRequest
     */
    applications: Array<CraLoanApplication>;
}
/**
 * CraLoansApplicationsRegisterResponse defines the response schema for `/cra/loans/applications/register`.
 * @export
 * @interface CraLoansApplicationsRegisterResponse
 */
export interface CraLoansApplicationsRegisterResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraLoansApplicationsRegisterResponse
     */
    request_id: string;
}
/**
 * CraLoansRegisterResponse defines the response schema for `/cra/loans/register`.
 * @export
 * @interface CraLoansRegisterResponse
 */
export interface CraLoansRegisterResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraLoansRegisterResponse
     */
    request_id: string;
}
/**
 * CraLoansUnregisterRequest defines the request schema for `/cra/loans/unregister`
 * @export
 * @interface CraLoansUnregisterRequest
 */
export interface CraLoansUnregisterRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraLoansUnregisterRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraLoansUnregisterRequest
     */
    secret?: string;
    /**
     * A list of loans to unregister.
     * @type {Array<CraLoanUnregister>}
     * @memberof CraLoansUnregisterRequest
     */
    loans: Array<CraLoanUnregister>;
}
/**
 * CraLoansUpdateRequest defines the request schema for `/cra/loans/update`
 * @export
 * @interface CraLoansUpdateRequest
 */
export interface CraLoansUpdateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraLoansUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraLoansUpdateRequest
     */
    secret?: string;
    /**
     * A list of loans to update.
     * @type {Array<CraLoanUpdate>}
     * @memberof CraLoansUpdateRequest
     */
    loans: Array<CraLoanUpdate>;
}
/**
 * CraLoansUpdateResponse defines the response schema for `/cra/loans/update`.
 * @export
 * @interface CraLoansUpdateResponse
 */
export interface CraLoansUpdateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraLoansUpdateResponse
     */
    request_id: string;
}
/**
 * CraMonitoringInsightsGetRequest defines the request schema for `/cra/monitoring_insights/get`
 * @export
 * @interface CraMonitoringInsightsGetRequest
 */
export interface CraMonitoringInsightsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraMonitoringInsightsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraMonitoringInsightsGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraMonitoringInsightsGetRequest
     */
    user_token: string;
    /**
     *
     * @type {MonitoringConsumerReportPermissiblePurpose}
     * @memberof CraMonitoringInsightsGetRequest
     */
    consumer_report_permissible_purpose: MonitoringConsumerReportPermissiblePurpose;
}
/**
 * CraMonitoringInsightsGetResponse defines the response schema for `cra/monitoring_insights/get`
 * @export
 * @interface CraMonitoringInsightsGetResponse
 */
export interface CraMonitoringInsightsGetResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraMonitoringInsightsGetResponse
     */
    request_id: string;
    /**
     * A unique ID identifying a User Monitoring Insights Report. Like all Plaid identifiers, this ID is case sensitive.
     * @type {string}
     * @memberof CraMonitoringInsightsGetResponse
     */
    user_insights_id: string;
    /**
     * An array of Monitoring Insights Items associated with the user.
     * @type {Array<CraMonitoringInsightsItem>}
     * @memberof CraMonitoringInsightsGetResponse
     */
    items: Array<CraMonitoringInsightsItem>;
}
/**
 * An object representing a Monitoring Insights Item
 * @export
 * @interface CraMonitoringInsightsItem
 */
export interface CraMonitoringInsightsItem {
    /**
     * The date and time when the specific insights were generated (per-item), in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (e.g. \"2018-04-12T03:32:11Z\").
     * @type {string}
     * @memberof CraMonitoringInsightsItem
     */
    date_generated: string;
    /**
     * The `item_id` of the Item associated with the insights
     * @type {string}
     * @memberof CraMonitoringInsightsItem
     */
    item_id: string;
    /**
     *
     * @type {MonitoringInsightsItemStatus}
     * @memberof CraMonitoringInsightsItem
     */
    status: MonitoringInsightsItemStatus;
    /**
     *
     * @type {MonitoringInsights}
     * @memberof CraMonitoringInsightsItem
     */
    insights: MonitoringInsights | null;
}
/**
 * CraMonitoringInsightsSubscribeRequest defines the request schema for `/cra/monitoring_insights/subscribe`
 * @export
 * @interface CraMonitoringInsightsSubscribeRequest
 */
export interface CraMonitoringInsightsSubscribeRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraMonitoringInsightsSubscribeRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraMonitoringInsightsSubscribeRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraMonitoringInsightsSubscribeRequest
     */
    user_token: string;
    /**
     * URL to which Plaid will send Monitoring Insights webhooks, for example when the requested Monitoring Insights is ready.
     * @type {string}
     * @memberof CraMonitoringInsightsSubscribeRequest
     */
    webhook: string;
}
/**
 * CraMonitoringInsightsSubscribeResponse defines the response schema for `cra/monitoring_insights/subscribe`
 * @export
 * @interface CraMonitoringInsightsSubscribeResponse
 */
export interface CraMonitoringInsightsSubscribeResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraMonitoringInsightsSubscribeResponse
     */
    request_id: string;
    /**
     * A unique identifier for the subscription.
     * @type {string}
     * @memberof CraMonitoringInsightsSubscribeResponse
     */
    subscription_id: string;
}
/**
 * CraMonitoringInsightsUnsubscribeRequest defines the request schema for `/cra/monitoring_insights/unsubscribe`
 * @export
 * @interface CraMonitoringInsightsUnsubscribeRequest
 */
export interface CraMonitoringInsightsUnsubscribeRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraMonitoringInsightsUnsubscribeRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraMonitoringInsightsUnsubscribeRequest
     */
    secret?: string;
    /**
     * A unique identifier for the subscription.
     * @type {string}
     * @memberof CraMonitoringInsightsUnsubscribeRequest
     */
    subscription_id: string;
}
/**
 * CraMonitoringInsightsUnsubscribeResponse defines the response schema for `cra/monitoring_insights/unsubscribe`
 * @export
 * @interface CraMonitoringInsightsUnsubscribeResponse
 */
export interface CraMonitoringInsightsUnsubscribeResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraMonitoringInsightsUnsubscribeResponse
     */
    request_id: string;
}
/**
 * Contains data about the connected Item.
 * @export
 * @interface CraNetworkInsightsItem
 */
export interface CraNetworkInsightsItem {
    /**
     * The ID for the institution the user linked.
     * @type {string}
     * @memberof CraNetworkInsightsItem
     */
    institution_id: string;
    /**
     * The name of the institution the user linked.
     * @type {string}
     * @memberof CraNetworkInsightsItem
     */
    institution_name: string;
    /**
     * The identifier for the Item.
     * @type {string}
     * @memberof CraNetworkInsightsItem
     */
    item_id: string;
}
/**
 * Contains data for the CRA Network Attributes Report.
 * @export
 * @interface CraNetworkInsightsReport
 */
export interface CraNetworkInsightsReport {
    /**
     * The unique identifier associated with the Network Attributes report object.
     * @type {string}
     * @memberof CraNetworkInsightsReport
     */
    report_id: string;
    /**
     * The time when the Network Attributes Report was generated.
     * @type {string}
     * @memberof CraNetworkInsightsReport
     */
    generated_time: string;
    /**
     * A map of network attributes, where the key is a string, and the value is a float, int, or boolean.
     * @type {object}
     * @memberof CraNetworkInsightsReport
     */
    network_attributes: object;
    /**
     * The Items the end user connected in Link.
     * @type {Array<CraNetworkInsightsItem>}
     * @memberof CraNetworkInsightsReport
     */
    items: Array<CraNetworkInsightsItem>;
}
/**
 * A list of add-ons that can be included in the PDF.  `cra_income_insights`: Include Income Insights report in the PDF.
 * @export
 * @enum {string}
 */
export declare enum CraPDFAddOns {
    CraIncomeInsights = "cra_income_insights"
}
/**
 * The Partner Insights report of the bank data for an end user.
 * @export
 * @interface CraPartnerInsights
 */
export interface CraPartnerInsights {
    /**
     * A unique identifier associated with the Partner Insights object.
     * @type {string}
     * @memberof CraPartnerInsights
     */
    report_id?: string;
    /**
     * The time when the Partner Insights report was generated.
     * @type {string}
     * @memberof CraPartnerInsights
     */
    generated_time?: string;
    /**
     *
     * @type {CraPartnerInsightsPrism}
     * @memberof CraPartnerInsights
     */
    prism?: CraPartnerInsightsPrism;
    /**
     * The list of Items used in the report along with the associated metadata about the Item.
     * @type {Array<CraPartnerInsightsItem>}
     * @memberof CraPartnerInsights
     */
    items?: Array<CraPartnerInsightsItem>;
}
/**
 * Fired when a partner insights report has finished generating and results are available
 * @export
 * @interface CraPartnerInsightsCompleteWebhook
 */
export interface CraPartnerInsightsCompleteWebhook {
    /**
     * `CRA_INSIGHTS`
     * @type {string}
     * @memberof CraPartnerInsightsCompleteWebhook
     */
    webhook_type: string;
    /**
     * `PARTNER_INSIGHTS_COMPLETE`
     * @type {string}
     * @memberof CraPartnerInsightsCompleteWebhook
     */
    webhook_code: string;
    /**
     * The `user_id` corresponding to the user the webhook has fired for.
     * @type {string}
     * @memberof CraPartnerInsightsCompleteWebhook
     */
    user_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof CraPartnerInsightsCompleteWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Fired when a partner insights report has failed to generate
 * @export
 * @interface CraPartnerInsightsErrorWebhook
 */
export interface CraPartnerInsightsErrorWebhook {
    /**
     * `CRA_INSIGHTS`
     * @type {string}
     * @memberof CraPartnerInsightsErrorWebhook
     */
    webhook_type: string;
    /**
     * `PARTNER_INSIGHTS_ERROR`
     * @type {string}
     * @memberof CraPartnerInsightsErrorWebhook
     */
    webhook_code: string;
    /**
     * The `user_id` corresponding to the user the webhook has fired for.
     * @type {string}
     * @memberof CraPartnerInsightsErrorWebhook
     */
    user_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof CraPartnerInsightsErrorWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * CraPartnerInsightsGetRequest defines the request schema for `/cra/partner_insights/get`.
 * @export
 * @interface CraPartnerInsightsGetRequest
 */
export interface CraPartnerInsightsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CraPartnerInsightsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CraPartnerInsightsGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CraPartnerInsightsGetRequest
     */
    user_token: string;
}
/**
 * CraPartnerInsightsGetResponse defines the response schema for `/cra/partner_insights/get`.
 * @export
 * @interface CraPartnerInsightsGetResponse
 */
export interface CraPartnerInsightsGetResponse {
    /**
     *
     * @type {Array<CraPartnerInsights>}
     * @memberof CraPartnerInsightsGetResponse
     */
    report?: Array<CraPartnerInsights>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CraPartnerInsightsGetResponse
     */
    request_id: string;
}
/**
 * The details and metadata for an end user\'s Item.
 * @export
 * @interface CraPartnerInsightsItem
 */
export interface CraPartnerInsightsItem {
    /**
     * The ID for the institution that the user linked.
     * @type {string}
     * @memberof CraPartnerInsightsItem
     */
    institution_id?: string;
    /**
     * The name of the institution the user linked.
     * @type {string}
     * @memberof CraPartnerInsightsItem
     */
    institution_name?: string;
    /**
     * The identifier for the item.
     * @type {string}
     * @memberof CraPartnerInsightsItem
     */
    item_id?: string;
    /**
     * A list of accounts in the item
     * @type {Array<CraPartnerInsightsItemAccount>}
     * @memberof CraPartnerInsightsItem
     */
    accounts?: Array<CraPartnerInsightsItemAccount>;
}
/**
 * Account data corresponding to the item from which Partner Insights were generated from
 * @export
 * @interface CraPartnerInsightsItemAccount
 */
export interface CraPartnerInsightsItemAccount {
    /**
     * Plaid\'s unique identifier for the account. This value will not change unless Plaid can\'t reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new `account_id` will be assigned to the account.  If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.  Like all Plaid identifiers, the `account_id` is case sensitive.
     * @type {string}
     * @memberof CraPartnerInsightsItemAccount
     */
    account_id?: string;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number. Note that the mask may be non-unique between an Item\'s accounts, and it may also not match the mask that the bank displays to the user.
     * @type {string}
     * @memberof CraPartnerInsightsItemAccount
     */
    mask: string | null;
    /**
     *
     * @type {CraPartnerInsightsItemAccountMetadata}
     * @memberof CraPartnerInsightsItemAccount
     */
    metadata: CraPartnerInsightsItemAccountMetadata;
    /**
     * The name of the account
     * @type {string}
     * @memberof CraPartnerInsightsItemAccount
     */
    name: string;
    /**
     * The official name of the bank account.
     * @type {string}
     * @memberof CraPartnerInsightsItemAccount
     */
    official_name: string | null;
    /**
     *
     * @type {DepositoryAccountSubtype}
     * @memberof CraPartnerInsightsItemAccount
     */
    subtype: DepositoryAccountSubtype;
    /**
     *
     * @type {CreditBankIncomeAccountType}
     * @memberof CraPartnerInsightsItemAccount
     */
    type: CreditBankIncomeAccountType;
    /**
     * Data returned by the financial institution about the account owner or owners. Identity information is optional, so field may return an empty array.
     * @type {Array<Owner>}
     * @memberof CraPartnerInsightsItemAccount
     */
    owners: Array<Owner>;
}
/**
 * An object containing metadata about the extracted account.
 * @export
 * @interface CraPartnerInsightsItemAccountMetadata
 */
export interface CraPartnerInsightsItemAccountMetadata {
    /**
     * The date of the earliest extracted transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof CraPartnerInsightsItemAccountMetadata
     */
    start_date: string | null;
    /**
     * The date of the most recent extracted transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof CraPartnerInsightsItemAccountMetadata
     */
    end_date: string | null;
}
/**
 * The Prism Data insights for the user.
 * @export
 * @interface CraPartnerInsightsPrism
 */
export interface CraPartnerInsightsPrism {
    /**
     *
     * @type {PrismInsights}
     * @memberof CraPartnerInsightsPrism
     */
    insights?: PrismInsights | null;
    /**
     *
     * @type {PrismCashScore}
     * @memberof CraPartnerInsightsPrism
     */
    cash_score?: PrismCashScore | null;
    /**
     *
     * @type {PrismFirstDetect}
     * @memberof CraPartnerInsightsPrism
     */
    first_detect?: PrismFirstDetect | null;
    /**
     * Details on whether the Prism Data attributes succeeded or failed to be generated.
     * @type {string}
     * @memberof CraPartnerInsightsPrism
     */
    status: string;
}
/**
 * The object containing prediction interval data.
 * @export
 * @interface CraPredictionInterval
 */
export interface CraPredictionInterval {
    /**
     * The lower bound of the predicted attribute for the given probability.
     * @type {number}
     * @memberof CraPredictionInterval
     */
    lower_bound?: number | null;
    /**
     * The upper bound of the predicted attribute for the given probability.
     * @type {number}
     * @memberof CraPredictionInterval
     */
    upper_bound?: number | null;
    /**
     * The probability of the actual value of the attribute falling within the upper and lower bound. This is a percentage represented as a value between 0 and 1.
     * @type {number}
     * @memberof CraPredictionInterval
     */
    probability?: number | null;
}
/**
 * Fired when a Check Report upgrade attempt has failed
 * @export
 * @interface CraUpgradeFailedWebhook
 */
export interface CraUpgradeFailedWebhook {
    /**
     * `CHECK_REPORT`
     * @type {string}
     * @memberof CraUpgradeFailedWebhook
     */
    webhook_type: string;
    /**
     * `UPGRADE_FAILED`
     * @type {string}
     * @memberof CraUpgradeFailedWebhook
     */
    webhook_code: string;
    /**
     * The `user_id` corresponding to the user the webhook has fired for.
     * @type {string}
     * @memberof CraUpgradeFailedWebhook
     */
    user_id: string;
    /**
     * An array of `item_id`s for items that failed to be upgraded by a Check Report upgrade attempt.
     * @type {Array<string>}
     * @memberof CraUpgradeFailedWebhook
     */
    item_ids: Array<string>;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof CraUpgradeFailedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * An object representing an end user\'s 1099 tax form
 * @export
 * @interface Credit1099
 */
export interface Credit1099 {
    /**
     * An identifier of the document referenced by the document metadata.
     * @type {string}
     * @memberof Credit1099
     */
    document_id: string | null;
    /**
     *
     * @type {CreditDocumentMetadata}
     * @memberof Credit1099
     */
    document_metadata?: CreditDocumentMetadata;
    /**
     *
     * @type {Form1099Type}
     * @memberof Credit1099
     */
    form_1099_type?: Form1099Type;
    /**
     *
     * @type {Credit1099Recipient}
     * @memberof Credit1099
     */
    recipient?: Credit1099Recipient;
    /**
     *
     * @type {Credit1099Payer}
     * @memberof Credit1099
     */
    payer?: Credit1099Payer;
    /**
     *
     * @type {Credit1099Filer}
     * @memberof Credit1099
     */
    filer?: Credit1099Filer;
    /**
     * Tax year of the tax form.
     * @type {string}
     * @memberof Credit1099
     */
    tax_year?: string | null;
    /**
     * Amount in rent by payer.
     * @type {number}
     * @memberof Credit1099
     */
    rents?: number | null;
    /**
     * Amount in royalties by payer.
     * @type {number}
     * @memberof Credit1099
     */
    royalties?: number | null;
    /**
     * Amount in other income by payer.
     * @type {number}
     * @memberof Credit1099
     */
    other_income?: number | null;
    /**
     * Amount of federal income tax withheld from payer.
     * @type {number}
     * @memberof Credit1099
     */
    federal_income_tax_withheld?: number | null;
    /**
     * Amount of fishing boat proceeds from payer.
     * @type {number}
     * @memberof Credit1099
     */
    fishing_boat_proceeds?: number | null;
    /**
     * Amount of medical and healthcare payments from payer.
     * @type {number}
     * @memberof Credit1099
     */
    medical_and_healthcare_payments?: number | null;
    /**
     * Amount of nonemployee compensation from payer.
     * @type {number}
     * @memberof Credit1099
     */
    nonemployee_compensation?: number | null;
    /**
     * Amount of substitute payments made by payer.
     * @type {number}
     * @memberof Credit1099
     */
    substitute_payments_in_lieu_of_dividends_or_interest?: number | null;
    /**
     * Whether or not payer made direct sales over $5000 of consumer products.
     * @type {string}
     * @memberof Credit1099
     */
    payer_made_direct_sales_of_5000_or_more_of_consumer_products_to_buyer?: string | null;
    /**
     * Amount of crop insurance proceeds.
     * @type {number}
     * @memberof Credit1099
     */
    crop_insurance_proceeds?: number | null;
    /**
     * Amount of golden parachute payments made by payer.
     * @type {number}
     * @memberof Credit1099
     */
    excess_golden_parachute_payments?: number | null;
    /**
     * Amount of gross proceeds paid to an attorney by payer.
     * @type {number}
     * @memberof Credit1099
     */
    gross_proceeds_paid_to_an_attorney?: number | null;
    /**
     * Amount of 409A deferrals earned by payer.
     * @type {number}
     * @memberof Credit1099
     */
    section_409a_deferrals?: number | null;
    /**
     * Amount of 409A income earned by payer.
     * @type {number}
     * @memberof Credit1099
     */
    section_409a_income?: number | null;
    /**
     * Amount of state tax withheld of payer for primary state.
     * @type {number}
     * @memberof Credit1099
     */
    state_tax_withheld?: number | null;
    /**
     * Amount of state tax withheld of payer for secondary state.
     * @type {number}
     * @memberof Credit1099
     */
    state_tax_withheld_lower?: number | null;
    /**
     * Primary state ID.
     * @type {string}
     * @memberof Credit1099
     */
    payer_state_number?: string | null;
    /**
     * Secondary state ID.
     * @type {string}
     * @memberof Credit1099
     */
    payer_state_number_lower?: string | null;
    /**
     * State income reported for primary state.
     * @type {number}
     * @memberof Credit1099
     */
    state_income?: number | null;
    /**
     * State income reported for secondary state.
     * @type {number}
     * @memberof Credit1099
     */
    state_income_lower?: number | null;
    /**
     * One of the values will be provided Payment card Third party network
     * @type {string}
     * @memberof Credit1099
     */
    transactions_reported?: string | null;
    /**
     * Name of the PSE (Payment Settlement Entity).
     * @type {string}
     * @memberof Credit1099
     */
    pse_name?: string | null;
    /**
     * Formatted (XXX) XXX-XXXX. Phone number of the PSE (Payment Settlement Entity).
     * @type {string}
     * @memberof Credit1099
     */
    pse_telephone_number?: string | null;
    /**
     * Gross amount reported.
     * @type {number}
     * @memberof Credit1099
     */
    gross_amount?: number | null;
    /**
     * Amount in card not present transactions.
     * @type {number}
     * @memberof Credit1099
     */
    card_not_present_transaction?: number | null;
    /**
     * Merchant category of filer.
     * @type {string}
     * @memberof Credit1099
     */
    merchant_category_code?: string | null;
    /**
     * Number of payment transactions made.
     * @type {string}
     * @memberof Credit1099
     */
    number_of_payment_transactions?: string | null;
    /**
     * Amount reported for January.
     * @type {number}
     * @memberof Credit1099
     */
    january_amount?: number | null;
    /**
     * Amount reported for February.
     * @type {number}
     * @memberof Credit1099
     */
    february_amount?: number | null;
    /**
     * Amount reported for March.
     * @type {number}
     * @memberof Credit1099
     */
    march_amount?: number | null;
    /**
     * Amount reported for April.
     * @type {number}
     * @memberof Credit1099
     */
    april_amount?: number | null;
    /**
     * Amount reported for May.
     * @type {number}
     * @memberof Credit1099
     */
    may_amount?: number | null;
    /**
     * Amount reported for June.
     * @type {number}
     * @memberof Credit1099
     */
    june_amount?: number | null;
    /**
     * Amount reported for July.
     * @type {number}
     * @memberof Credit1099
     */
    july_amount?: number | null;
    /**
     * Amount reported for August.
     * @type {number}
     * @memberof Credit1099
     */
    august_amount?: number | null;
    /**
     * Amount reported for September.
     * @type {number}
     * @memberof Credit1099
     */
    september_amount?: number | null;
    /**
     * Amount reported for October.
     * @type {number}
     * @memberof Credit1099
     */
    october_amount?: number | null;
    /**
     * Amount reported for November.
     * @type {number}
     * @memberof Credit1099
     */
    november_amount?: number | null;
    /**
     * Amount reported for December.
     * @type {number}
     * @memberof Credit1099
     */
    december_amount?: number | null;
    /**
     * Primary state of business.
     * @type {string}
     * @memberof Credit1099
     */
    primary_state?: string | null;
    /**
     * Secondary state of business.
     * @type {string}
     * @memberof Credit1099
     */
    secondary_state?: string | null;
    /**
     * Primary state ID.
     * @type {string}
     * @memberof Credit1099
     */
    primary_state_id?: string | null;
    /**
     * Secondary state ID.
     * @type {string}
     * @memberof Credit1099
     */
    secondary_state_id?: string | null;
    /**
     * State income tax reported for primary state.
     * @type {number}
     * @memberof Credit1099
     */
    primary_state_income_tax?: number | null;
    /**
     * State income tax reported for secondary state.
     * @type {number}
     * @memberof Credit1099
     */
    secondary_state_income_tax?: number | null;
}
/**
 * An object representing a filer used by 1099-K tax documents.
 * @export
 * @interface Credit1099Filer
 */
export interface Credit1099Filer {
    /**
     *
     * @type {CreditPayStubAddress}
     * @memberof Credit1099Filer
     */
    address?: CreditPayStubAddress;
    /**
     * Name of filer.
     * @type {string}
     * @memberof Credit1099Filer
     */
    name?: string | null;
    /**
     * Tax identification number of filer.
     * @type {string}
     * @memberof Credit1099Filer
     */
    tin?: string | null;
    /**
     * One of the following values will be provided: Payment Settlement Entity (PSE), Electronic Payment Facilitator (EPF), Other Third Party
     * @type {string}
     * @memberof Credit1099Filer
     */
    type?: string | null;
}
/**
 * An object representing a payer used by 1099-MISC tax documents.
 * @export
 * @interface Credit1099Payer
 */
export interface Credit1099Payer {
    /**
     *
     * @type {CreditPayStubAddress}
     * @memberof Credit1099Payer
     */
    address?: CreditPayStubAddress;
    /**
     * Name of payer.
     * @type {string}
     * @memberof Credit1099Payer
     */
    name?: string | null;
    /**
     * Tax identification number of payer.
     * @type {string}
     * @memberof Credit1099Payer
     */
    tin?: string | null;
    /**
     * Telephone number of payer.
     * @type {string}
     * @memberof Credit1099Payer
     */
    telephone_number?: string | null;
}
/**
 * An object representing a recipient used in both 1099-K and 1099-MISC tax documents.
 * @export
 * @interface Credit1099Recipient
 */
export interface Credit1099Recipient {
    /**
     *
     * @type {CreditPayStubAddress}
     * @memberof Credit1099Recipient
     */
    address?: CreditPayStubAddress;
    /**
     * Name of recipient.
     * @type {string}
     * @memberof Credit1099Recipient
     */
    name?: string | null;
    /**
     * Tax identification number of recipient.
     * @type {string}
     * @memberof Credit1099Recipient
     */
    tin?: string | null;
    /**
     * Account number number of recipient.
     * @type {string}
     * @memberof Credit1099Recipient
     */
    account_number?: string | null;
    /**
     * Checked if FACTA is a filing requirement.
     * @type {string}
     * @memberof Credit1099Recipient
     */
    facta_filing_requirement?: string | null;
    /**
     * Checked if 2nd TIN exists.
     * @type {string}
     * @memberof Credit1099Recipient
     */
    second_tin_exists?: string | null;
}
/**
 * Specifies the use case of the transfer. Required for transfers on an ACH network.  `\"ccd\"` - Corporate Credit or Debit - fund transfer between two corporate bank accounts  `\"ppd\"` - Prearranged Payment or Deposit - the transfer is part of a pre-existing relationship with a consumer, eg. bill payment  `\"web\"` - A credit Entry initiated by or on behalf of a holder of a Consumer Account that is intended for a Consumer Account of a Receiver
 * @export
 * @enum {string}
 */
export declare enum CreditACHClass {
    Ccd = "ccd",
    Ppd = "ppd",
    Web = "web"
}
/**
 * Valid account subtypes for credit accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-credit).
 * @export
 * @enum {string}
 */
export declare enum CreditAccountSubtype {
    CreditCard = "credit card",
    Paypal = "paypal",
    All = "all"
}
/**
 * This contains an amount, denominated in the currency specified by either `iso_currency_code` or `unofficial_currency_code`
 * @export
 * @interface CreditAmountWithCurrency
 */
export interface CreditAmountWithCurrency {
    /**
     * Value of amount with up to 2 decimal places.
     * @type {number}
     * @memberof CreditAmountWithCurrency
     */
    amount: number;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof CreditAmountWithCurrency
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof CreditAmountWithCurrency
     */
    unofficial_currency_code: string | null;
}
/**
 * CreditAuditCopyTokenCreateRequest defines the request schema for `/credit/audit_copy_token/create`
 * @export
 * @interface CreditAuditCopyTokenCreateRequest
 */
export interface CreditAuditCopyTokenCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditAuditCopyTokenCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditAuditCopyTokenCreateRequest
     */
    secret?: string;
    /**
     * List of report tokens; can include at most one VOA/standard Asset Report tokens and one VOE Asset Report Token.
     * @type {Array<string>}
     * @memberof CreditAuditCopyTokenCreateRequest
     */
    report_tokens: Array<string>;
}
/**
 * CreditAuditCopyTokenCreateResponse defines the response schema for `/credit/audit_copy_token/get`
 * @export
 * @interface CreditAuditCopyTokenCreateResponse
 */
export interface CreditAuditCopyTokenCreateResponse {
    /**
     * A token that can be shared with a third party auditor, which allows them to fetch the Asset Reports attached to the token. This token should be stored securely.
     * @type {string}
     * @memberof CreditAuditCopyTokenCreateResponse
     */
    audit_copy_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditAuditCopyTokenCreateResponse
     */
    request_id: string;
}
/**
 * CreditAuditCopyTokenRemoveRequest defines the request schema for `/credit/audit_copy_token/remove`
 * @export
 * @interface CreditAuditCopyTokenRemoveRequest
 */
export interface CreditAuditCopyTokenRemoveRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditAuditCopyTokenRemoveRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditAuditCopyTokenRemoveRequest
     */
    secret?: string;
    /**
     * The `audit_copy_token` granting access to the Audit Copy you would like to revoke.
     * @type {string}
     * @memberof CreditAuditCopyTokenRemoveRequest
     */
    audit_copy_token: string;
}
/**
 * CreditAuditCopyTokenRemoveResponse defines the response schema for `/credit/audit_copy_token/remove`
 * @export
 * @interface CreditAuditCopyTokenRemoveResponse
 */
export interface CreditAuditCopyTokenRemoveResponse {
    /**
     * `true` if the Audit Copy was successfully removed.
     * @type {boolean}
     * @memberof CreditAuditCopyTokenRemoveResponse
     */
    removed: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditAuditCopyTokenRemoveResponse
     */
    request_id: string;
}
/**
 * CreditAuditCopyTokenUpdateRequest defines the request schema for `/credit/audit_copy_token/update`
 * @export
 * @interface CreditAuditCopyTokenUpdateRequest
 */
export interface CreditAuditCopyTokenUpdateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditAuditCopyTokenUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditAuditCopyTokenUpdateRequest
     */
    secret?: string;
    /**
     * The `audit_copy_token` you would like to update.
     * @type {string}
     * @memberof CreditAuditCopyTokenUpdateRequest
     */
    audit_copy_token: string;
    /**
     * Array of tokens which the specified Audit Copy Token will be updated with. The types of token supported are asset report token and employment report token. There can be at most 1 of each token type in the array.
     * @type {Array<string>}
     * @memberof CreditAuditCopyTokenUpdateRequest
     */
    report_tokens: Array<string>;
}
/**
 * Defines the response schema for `/credit/audit_copy_token/update`
 * @export
 * @interface CreditAuditCopyTokenUpdateResponse
 */
export interface CreditAuditCopyTokenUpdateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditAuditCopyTokenUpdateResponse
     */
    request_id: string;
    /**
     * `true` if the Audit Copy Token was successfully updated.
     * @type {boolean}
     * @memberof CreditAuditCopyTokenUpdateResponse
     */
    updated: boolean;
}
/**
 * Object containing employer data.
 * @export
 * @interface CreditBankEmployer
 */
export interface CreditBankEmployer {
    /**
     * Name of the employer.
     * @type {string}
     * @memberof CreditBankEmployer
     */
    name: string;
}
/**
 * Detailed information for the bank employment.
 * @export
 * @interface CreditBankEmployment
 */
export interface CreditBankEmployment {
    /**
     * A unique identifier for the bank employment.
     * @type {string}
     * @memberof CreditBankEmployment
     */
    bank_employment_id: string;
    /**
     * Plaid\'s unique identifier for the account.
     * @type {string}
     * @memberof CreditBankEmployment
     */
    account_id: string;
    /**
     *
     * @type {CreditBankEmployer}
     * @memberof CreditBankEmployment
     */
    employer: CreditBankEmployer;
    /**
     * The date of the most recent deposit from this employer.
     * @type {string}
     * @memberof CreditBankEmployment
     */
    latest_deposit_date: string;
    /**
     * The date of the earliest deposit from this employer from within the period of the days requested.
     * @type {string}
     * @memberof CreditBankEmployment
     */
    earliest_deposit_date: string;
}
/**
 * CreditBankEmploymentGetRequest defines the request schema for `/beta/credit/v1/bank_employment/get`.
 * @export
 * @interface CreditBankEmploymentGetRequest
 */
export interface CreditBankEmploymentGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankEmploymentGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankEmploymentGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditBankEmploymentGetRequest
     */
    user_token: string;
}
/**
 * CreditBankEmploymentGetResponse defines the response schema for `/beta/credit/v1/bank_employment/get`.
 * @export
 * @interface CreditBankEmploymentGetResponse
 */
export interface CreditBankEmploymentGetResponse {
    /**
     * Bank Employment data. Each entry in the array will be a distinct bank employment report.
     * @type {Array<CreditBankEmploymentReport>}
     * @memberof CreditBankEmploymentGetResponse
     */
    bank_employment_reports: Array<CreditBankEmploymentReport>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditBankEmploymentGetResponse
     */
    request_id: string;
}
/**
 * The details and metadata for an end user\'s Item.
 * @export
 * @interface CreditBankEmploymentItem
 */
export interface CreditBankEmploymentItem {
    /**
     * The unique identifier for the Item.
     * @type {string}
     * @memberof CreditBankEmploymentItem
     */
    item_id: string;
    /**
     * The time when this Item\'s data was last retrieved from the financial institution, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (e.g. \"2018-04-12T03:32:11Z\").
     * @type {string}
     * @memberof CreditBankEmploymentItem
     */
    last_updated_time: string;
    /**
     * The unique identifier of the institution associated with the Item.
     * @type {string}
     * @memberof CreditBankEmploymentItem
     */
    institution_id: string;
    /**
     * The name of the institution associated with the Item.
     * @type {string}
     * @memberof CreditBankEmploymentItem
     */
    institution_name: string;
    /**
     * The bank employment information for this Item. Each entry in the array is a different employer found.
     * @type {Array<CreditBankEmployment>}
     * @memberof CreditBankEmploymentItem
     */
    bank_employments: Array<CreditBankEmployment>;
    /**
     * The Item\'s accounts that have Bank Employment data.
     * @type {Array<CreditBankIncomeAccount>}
     * @memberof CreditBankEmploymentItem
     */
    bank_employment_accounts: Array<CreditBankIncomeAccount>;
}
/**
 * The report of the Bank Employment data for an end user.
 * @export
 * @interface CreditBankEmploymentReport
 */
export interface CreditBankEmploymentReport {
    /**
     * The unique identifier associated with the Bank Employment Report.
     * @type {string}
     * @memberof CreditBankEmploymentReport
     */
    bank_employment_report_id: string;
    /**
     * The time when the Bank Employment Report was generated, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (e.g. \"2018-04-12T03:32:11Z\").
     * @type {string}
     * @memberof CreditBankEmploymentReport
     */
    generated_time: string;
    /**
     * The number of days requested by the customer for the Bank Employment Report.
     * @type {number}
     * @memberof CreditBankEmploymentReport
     */
    days_requested: number;
    /**
     * The list of Items in the report along with the associated metadata about the Item.
     * @type {Array<CreditBankEmploymentItem>}
     * @memberof CreditBankEmploymentReport
     */
    items: Array<CreditBankEmploymentItem>;
    /**
     * If data from the Bank Employment report was unable to be retrieved, the warnings will contain information about the error that caused the data to be incomplete.
     * @type {Array<CreditBankEmploymentWarning>}
     * @memberof CreditBankEmploymentReport
     */
    warnings: Array<CreditBankEmploymentWarning>;
}
/**
 * The warning associated with the data that was unavailable for the Bank Employment Report.
 * @export
 * @interface CreditBankEmploymentWarning
 */
export interface CreditBankEmploymentWarning {
    /**
     *
     * @type {CreditBankEmploymentWarningType}
     * @memberof CreditBankEmploymentWarning
     */
    warning_type: CreditBankEmploymentWarningType;
    /**
     *
     * @type {CreditBankIncomeWarningCode}
     * @memberof CreditBankEmploymentWarning
     */
    warning_code: CreditBankIncomeWarningCode;
    /**
     *
     * @type {CreditBankIncomeCause}
     * @memberof CreditBankEmploymentWarning
     */
    cause: CreditBankIncomeCause;
}
/**
 * The warning type which will always be `BANK_EMPLOYMENT_WARNING`.
 * @export
 * @enum {string}
 */
export declare enum CreditBankEmploymentWarningType {
    BankEmploymentWarning = "BANK_EMPLOYMENT_WARNING"
}
/**
 * The report of the Bank Income data for an end user.
 * @export
 * @interface CreditBankIncome
 */
export interface CreditBankIncome {
    /**
     * The unique identifier associated with the Bank Income Report.
     * @type {string}
     * @memberof CreditBankIncome
     */
    bank_income_id?: string;
    /**
     * The time when the report was generated.
     * @type {string}
     * @memberof CreditBankIncome
     */
    generated_time?: string;
    /**
     * The number of days requested by the customer for the report.
     * @type {number}
     * @memberof CreditBankIncome
     */
    days_requested?: number;
    /**
     * The list of Items in the report along with the associated metadata about the Item.
     * @type {Array<CreditBankIncomeItem>}
     * @memberof CreditBankIncome
     */
    items?: Array<CreditBankIncomeItem>;
    /**
     *
     * @type {CreditBankIncomeSummary}
     * @memberof CreditBankIncome
     */
    bank_income_summary?: CreditBankIncomeSummary;
    /**
     * If data from the report was unable to be retrieved, the warnings will contain information about the error that caused the data to be incomplete.
     * @type {Array<CreditBankIncomeWarning>}
     * @memberof CreditBankIncome
     */
    warnings?: Array<CreditBankIncomeWarning>;
}
/**
 * The Item\'s bank accounts that have the selected data.
 * @export
 * @interface CreditBankIncomeAccount
 */
export interface CreditBankIncomeAccount {
    /**
     * Plaid\'s unique identifier for the account.
     * @type {string}
     * @memberof CreditBankIncomeAccount
     */
    account_id: string;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number. Note that the mask may be non-unique between an Item\'s accounts, and it may also not match the mask that the bank displays to the user.
     * @type {string}
     * @memberof CreditBankIncomeAccount
     */
    mask: string | null;
    /**
     * The name of the bank account.
     * @type {string}
     * @memberof CreditBankIncomeAccount
     */
    name: string;
    /**
     * The official name of the bank account.
     * @type {string}
     * @memberof CreditBankIncomeAccount
     */
    official_name: string | null;
    /**
     *
     * @type {DepositoryAccountSubtype}
     * @memberof CreditBankIncomeAccount
     */
    subtype: DepositoryAccountSubtype;
    /**
     *
     * @type {CreditBankIncomeAccountType}
     * @memberof CreditBankIncomeAccount
     */
    type: CreditBankIncomeAccountType;
    /**
     * Data returned by the financial institution about the account owner or owners. Identity information is optional, so field may return an empty array.
     * @type {Array<Owner>}
     * @memberof CreditBankIncomeAccount
     */
    owners: Array<Owner>;
}
/**
 * The account type. This will always be `depository`.
 * @export
 * @enum {string}
 */
export declare enum CreditBankIncomeAccountType {
    Depository = "depository"
}
/**
 * The income category.  `BANK_INTEREST`: Interest earned from a bank account. `BENEFIT_OTHER`: Government benefits other than retirement, unemployment, child support, or disability. Currently used only in the UK, to represent benefits such as Cost of Living Payments. `CASH`: Deprecated and used only for existing legacy implementations. Has been replaced by `CASH_DEPOSIT` and `TRANSFER_FROM_APPLICATION`. `CASH_DEPOSIT`: A cash or check deposit. `CHILD_SUPPORT`: Child support payments received. `GIG_ECONOMY`: Income earned as a gig economy worker, e.g. driving for Uber, Lyft, Postmates, DoorDash, etc. `LONG_TERM_DISABILITY`: Disability payments, including Social Security disability benefits. `OTHER`: Income that could not be categorized as any other income category. `MILITARY`: Veterans benefits. Income earned as salary for serving in the military (e.g. through DFAS) will be classified as `SALARY` rather than `MILITARY`.  `RENTAL`: Income earned from a rental property. Income may be identified as rental when the payment is received through a rental platform, e.g. Airbnb; rent paid directly by the tenant to the property owner (e.g. via cash, check, or ACH) will typically not be classified as rental income.  `RETIREMENT`: Payments from private retirement systems, pensions, and government retirement programs, including Social Security retirement benefits. `SALARY`: Payment from an employer to an earner or other form of permanent employment. `TAX_REFUND`: A tax refund. `TRANSFER_FROM_APPLICATION`: Deposits from a money transfer app, such as Venmo, Cash App, or Zelle. `UNEMPLOYMENT`: Unemployment benefits. In the UK, includes certain low-income benefits such as the Universal Credit.
 * @export
 * @enum {string}
 */
export declare enum CreditBankIncomeCategory {
    Salary = "SALARY",
    Unemployment = "UNEMPLOYMENT",
    Cash = "CASH",
    GigEconomy = "GIG_ECONOMY",
    Rental = "RENTAL",
    ChildSupport = "CHILD_SUPPORT",
    Military = "MILITARY",
    Retirement = "RETIREMENT",
    LongTermDisability = "LONG_TERM_DISABILITY",
    BankInterest = "BANK_INTEREST",
    CashDeposit = "CASH_DEPOSIT",
    TransferFromApplication = "TRANSFER_FROM_APPLICATION",
    TaxRefund = "TAX_REFUND",
    BenefitOther = "BENEFIT_OTHER",
    Other = "OTHER"
}
/**
 * An error object and associated `item_id` used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.
 * @export
 * @interface CreditBankIncomeCause
 */
export interface CreditBankIncomeCause {
    /**
     *
     * @type {CreditBankIncomeErrorType}
     * @memberof CreditBankIncomeCause
     */
    error_type: CreditBankIncomeErrorType;
    /**
     * We use standard HTTP response codes for success and failure notifications, and our errors are further classified by `error_type`. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. Error fields will be `null` if no error has occurred.
     * @type {string}
     * @memberof CreditBankIncomeCause
     */
    error_code: string;
    /**
     * A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
     * @type {string}
     * @memberof CreditBankIncomeCause
     */
    error_message: string;
    /**
     * A user-friendly representation of the error code. null if the error is not related to user action. This may change over time and is not safe for programmatic use.
     * @type {string}
     * @memberof CreditBankIncomeCause
     */
    display_message: string;
    /**
     * The `item_id` of the Item associated with this warning.
     * @type {string}
     * @memberof CreditBankIncomeCause
     */
    item_id: string;
}
/**
 * A broad categorization of the error. Safe for programmatic use.
 * @export
 * @enum {string}
 */
export declare enum CreditBankIncomeErrorType {
    InternalServerError = "INTERNAL_SERVER_ERROR",
    InsufficientCredentials = "INSUFFICIENT_CREDENTIALS",
    ItemLocked = "ITEM_LOCKED",
    UserSetupRequired = "USER_SETUP_REQUIRED",
    CountryNotSupported = "COUNTRY_NOT_SUPPORTED",
    InstitutionDown = "INSTITUTION_DOWN",
    InstitutionNoLongerSupported = "INSTITUTION_NO_LONGER_SUPPORTED",
    InstitutionNotResponding = "INSTITUTION_NOT_RESPONDING",
    InvalidCredentials = "INVALID_CREDENTIALS",
    InvalidMfa = "INVALID_MFA",
    InvalidSendMethod = "INVALID_SEND_METHOD",
    ItemLoginRequired = "ITEM_LOGIN_REQUIRED",
    MfaNotSupported = "MFA_NOT_SUPPORTED",
    NoAccounts = "NO_ACCOUNTS",
    ItemNotSupported = "ITEM_NOT_SUPPORTED",
    AccessNotGranted = "ACCESS_NOT_GRANTED"
}
/**
 * CreditBankIncomeGetRequest defines the request schema for `/credit/bank_income/get`.
 * @export
 * @interface CreditBankIncomeGetRequest
 */
export interface CreditBankIncomeGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankIncomeGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankIncomeGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditBankIncomeGetRequest
     */
    user_token?: string;
    /**
     *
     * @type {CreditBankIncomeGetRequestOptions}
     * @memberof CreditBankIncomeGetRequest
     */
    options?: CreditBankIncomeGetRequestOptions;
}
/**
 * An optional object for `/credit/bank_income/get` request options.
 * @export
 * @interface CreditBankIncomeGetRequestOptions
 */
export interface CreditBankIncomeGetRequestOptions {
    /**
     * How many Bank Income Reports should be fetched. Multiple reports may be available if the report has been re-created or refreshed. If more than one report is available, the most recent reports will be returned first.
     * @type {number}
     * @memberof CreditBankIncomeGetRequestOptions
     */
    count?: number;
}
/**
 * CreditBankIncomeGetResponse defines the response schema for `/credit/bank_income/get`
 * @export
 * @interface CreditBankIncomeGetResponse
 */
export interface CreditBankIncomeGetResponse {
    /**
     *
     * @type {Array<CreditBankIncome>}
     * @memberof CreditBankIncomeGetResponse
     */
    bank_income?: Array<CreditBankIncome>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditBankIncomeGetResponse
     */
    request_id: string;
}
/**
 * The end user\'s monthly summary for the income source(s).
 * @export
 * @interface CreditBankIncomeHistoricalSummary
 */
export interface CreditBankIncomeHistoricalSummary {
    /**
     * Total amount of earnings for the income source(s) of the user for the month in the summary. This may return an incorrect value if the summary includes income sources in multiple currencies. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-items-bank-income-sources-historical-summary-total-amounts) instead.
     * @type {number}
     * @memberof CreditBankIncomeHistoricalSummary
     * @deprecated
     */
    total_amount?: number;
    /**
     * The ISO 4217 currency code of the amount or balance. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-items-bank-income-sources-historical-summary-total-amounts) instead.
     * @type {string}
     * @memberof CreditBankIncomeHistoricalSummary
     * @deprecated
     */
    iso_currency_code?: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-items-bank-income-sources-historical-summary-total-amounts) instead.
     * @type {string}
     * @memberof CreditBankIncomeHistoricalSummary
     * @deprecated
     */
    unofficial_currency_code?: string | null;
    /**
     * Total amount of earnings for the income source(s) of the user for the month in the summary. This can contain multiple amounts, with each amount denominated in one unique currency.
     * @type {Array<CreditAmountWithCurrency>}
     * @memberof CreditBankIncomeHistoricalSummary
     */
    total_amounts?: Array<CreditAmountWithCurrency>;
    /**
     * The start date of the period covered in this monthly summary. This date will be the first day of the month, unless the month being covered is a partial month because it is the first month included in the summary and the date range being requested does not begin with the first day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditBankIncomeHistoricalSummary
     */
    start_date?: string;
    /**
     * The end date of the period included in this monthly summary. This date will be the last day of the month, unless the month being covered is a partial month because it is the last month included in the summary and the date range being requested does not end with the last day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditBankIncomeHistoricalSummary
     */
    end_date?: string;
    /**
     *
     * @type {Array<CreditBankIncomeTransaction>}
     * @memberof CreditBankIncomeHistoricalSummary
     */
    transactions?: Array<CreditBankIncomeTransaction>;
}
/**
 * The details and metadata for an end user\'s Item.
 * @export
 * @interface CreditBankIncomeItem
 */
export interface CreditBankIncomeItem {
    /**
     * The Item\'s accounts that have Bank Income data.
     * @type {Array<CreditBankIncomeAccount>}
     * @memberof CreditBankIncomeItem
     */
    bank_income_accounts?: Array<CreditBankIncomeAccount>;
    /**
     * The income sources for this Item. Each entry in the array is a single income source.
     * @type {Array<CreditBankIncomeSource>}
     * @memberof CreditBankIncomeItem
     */
    bank_income_sources?: Array<CreditBankIncomeSource>;
    /**
     * The time when this Item\'s data was last retrieved from the financial institution.
     * @type {string}
     * @memberof CreditBankIncomeItem
     */
    last_updated_time?: string;
    /**
     * The unique identifier of the institution associated with the Item.
     * @type {string}
     * @memberof CreditBankIncomeItem
     */
    institution_id?: string;
    /**
     * The name of the institution associated with the Item.
     * @type {string}
     * @memberof CreditBankIncomeItem
     */
    institution_name?: string;
    /**
     * The unique identifier for the Item.
     * @type {string}
     * @memberof CreditBankIncomeItem
     */
    item_id?: string;
}
/**
 * CreditBankIncomePDFGetRequest defines the request schema for `/credit/bank_income/pdf/get`
 * @export
 * @interface CreditBankIncomePDFGetRequest
 */
export interface CreditBankIncomePDFGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankIncomePDFGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankIncomePDFGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditBankIncomePDFGetRequest
     */
    user_token: string;
}
/**
 * The income pay frequency.
 * @export
 * @enum {string}
 */
export declare enum CreditBankIncomePayFrequency {
    Weekly = "WEEKLY",
    Biweekly = "BIWEEKLY",
    SemiMonthly = "SEMI_MONTHLY",
    Monthly = "MONTHLY",
    Daily = "DAILY",
    Unknown = "UNKNOWN"
}
/**
 * CreditBankIncomeRefreshRequest defines the request schema for `/credit/bank_income/refresh`.
 * @export
 * @interface CreditBankIncomeRefreshRequest
 */
export interface CreditBankIncomeRefreshRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankIncomeRefreshRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankIncomeRefreshRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditBankIncomeRefreshRequest
     */
    user_token: string;
    /**
     *
     * @type {CreditBankIncomeRefreshRequestOptions}
     * @memberof CreditBankIncomeRefreshRequest
     */
    options?: CreditBankIncomeRefreshRequestOptions;
}
/**
 * An optional object for `/credit/bank_income/refresh` request options.
 * @export
 * @interface CreditBankIncomeRefreshRequestOptions
 */
export interface CreditBankIncomeRefreshRequestOptions {
    /**
     * How many days of data to include in the refresh. If not specified, this will default to the days requested in the most recently generated bank income report for the user.
     * @type {number}
     * @memberof CreditBankIncomeRefreshRequestOptions
     */
    days_requested?: number;
}
/**
 * CreditBankIncomeRefreshResponse defines the response schema for `/credit/bank_income/refresh`.
 * @export
 * @interface CreditBankIncomeRefreshResponse
 */
export interface CreditBankIncomeRefreshResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditBankIncomeRefreshResponse
     */
    request_id: string;
}
/**
 * Detailed information for the income source.
 * @export
 * @interface CreditBankIncomeSource
 */
export interface CreditBankIncomeSource {
    /**
     * A unique identifier for an income source.
     * @type {string}
     * @memberof CreditBankIncomeSource
     */
    income_source_id?: string;
    /**
     * The most common name or original description for the underlying income transactions.
     * @type {string}
     * @memberof CreditBankIncomeSource
     */
    income_description?: string;
    /**
     *
     * @type {CreditBankIncomeCategory}
     * @memberof CreditBankIncomeSource
     */
    income_category?: CreditBankIncomeCategory;
    /**
     * Plaid\'s unique identifier for the account.
     * @type {string}
     * @memberof CreditBankIncomeSource
     */
    account_id?: string;
    /**
     * Minimum of all dates within the specific income sources in the user\'s bank account for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditBankIncomeSource
     */
    start_date?: string;
    /**
     * Maximum of all dates within the specific income sources in the user’s bank account for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditBankIncomeSource
     */
    end_date?: string;
    /**
     *
     * @type {CreditBankIncomePayFrequency}
     * @memberof CreditBankIncomeSource
     */
    pay_frequency?: CreditBankIncomePayFrequency;
    /**
     * Total amount of earnings in the user’s bank account for the specific income source for days requested by the client.
     * @type {number}
     * @memberof CreditBankIncomeSource
     */
    total_amount?: number;
    /**
     * Number of transactions for the income source within the start and end date.
     * @type {number}
     * @memberof CreditBankIncomeSource
     */
    transaction_count?: number;
    /**
     *
     * @type {Array<CreditBankIncomeHistoricalSummary>}
     * @memberof CreditBankIncomeSource
     */
    historical_summary?: Array<CreditBankIncomeHistoricalSummary>;
}
/**
 * Summary for bank income across all income sources and items (max history of 730 days).
 * @export
 * @interface CreditBankIncomeSummary
 */
export interface CreditBankIncomeSummary {
    /**
     * Total amount of earnings across all the income sources in the end user\'s Items for the days requested by the client. This may return an incorrect value if the summary includes income sources in multiple currencies. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-bank-income-summary-total-amounts) instead.
     * @type {number}
     * @memberof CreditBankIncomeSummary
     * @deprecated
     */
    total_amount?: number;
    /**
     * The ISO 4217 currency code of the amount or balance. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-bank-income-summary-total-amounts) instead.
     * @type {string}
     * @memberof CreditBankIncomeSummary
     * @deprecated
     */
    iso_currency_code?: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-bank-income-summary-total-amounts) instead.
     * @type {string}
     * @memberof CreditBankIncomeSummary
     * @deprecated
     */
    unofficial_currency_code?: string | null;
    /**
     * Total amount of earnings across all the income sources in the end user\'s Items for the days requested by the client. This can contain multiple amounts, with each amount denominated in one unique currency.
     * @type {Array<CreditAmountWithCurrency>}
     * @memberof CreditBankIncomeSummary
     */
    total_amounts?: Array<CreditAmountWithCurrency>;
    /**
     * The earliest date within the days requested in which all income sources identified by Plaid appear in a user\'s account. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditBankIncomeSummary
     */
    start_date?: string;
    /**
     * The latest date in which all income sources identified by Plaid appear in the user\'s account. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditBankIncomeSummary
     */
    end_date?: string;
    /**
     * Number of income sources per end user.
     * @type {number}
     * @memberof CreditBankIncomeSummary
     */
    income_sources_count?: number;
    /**
     * Number of income categories per end user.
     * @type {number}
     * @memberof CreditBankIncomeSummary
     */
    income_categories_count?: number;
    /**
     * Number of income transactions per end user.
     * @type {number}
     * @memberof CreditBankIncomeSummary
     */
    income_transactions_count?: number;
    /**
     *
     * @type {Array<CreditBankIncomeHistoricalSummary>}
     * @memberof CreditBankIncomeSummary
     */
    historical_summary?: Array<CreditBankIncomeHistoricalSummary>;
}
/**
 * The transactions data for the end user\'s income source(s).
 * @export
 * @interface CreditBankIncomeTransaction
 */
export interface CreditBankIncomeTransaction {
    /**
     * The settled value of the transaction, denominated in the transactions\'s currency as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative.
     * @type {number}
     * @memberof CreditBankIncomeTransaction
     */
    amount?: number;
    /**
     * For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditBankIncomeTransaction
     */
    date?: string;
    /**
     * The merchant name or transaction description.
     * @type {string}
     * @memberof CreditBankIncomeTransaction
     */
    name?: string;
    /**
     * The string returned by the financial institution to describe the transaction.
     * @type {string}
     * @memberof CreditBankIncomeTransaction
     */
    original_description?: string | null;
    /**
     * When true, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
     * @type {boolean}
     * @memberof CreditBankIncomeTransaction
     */
    pending?: boolean;
    /**
     * The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
     * @type {string}
     * @memberof CreditBankIncomeTransaction
     */
    transaction_id?: string;
    /**
     * The check number of the transaction. This field is only populated for check transactions.
     * @type {string}
     * @memberof CreditBankIncomeTransaction
     */
    check_number?: string | null;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof CreditBankIncomeTransaction
     */
    iso_currency_code?: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof CreditBankIncomeTransaction
     */
    unofficial_currency_code?: string | null;
}
/**
 * The warning associated with the data that was unavailable for the Bank Income Report.
 * @export
 * @interface CreditBankIncomeWarning
 */
export interface CreditBankIncomeWarning {
    /**
     *
     * @type {CreditBankIncomeWarningType}
     * @memberof CreditBankIncomeWarning
     */
    warning_type?: CreditBankIncomeWarningType;
    /**
     *
     * @type {CreditBankIncomeWarningCode}
     * @memberof CreditBankIncomeWarning
     */
    warning_code?: CreditBankIncomeWarningCode;
    /**
     *
     * @type {CreditBankIncomeCause}
     * @memberof CreditBankIncomeWarning
     */
    cause?: CreditBankIncomeCause;
}
/**
 * The warning code identifies a specific kind of warning. `IDENTITY_UNAVAILABLE`: Unable to extract identity for the Item `TRANSACTIONS_UNAVAILABLE`: Unable to extract transactions for the Item `ITEM_UNAPPROVED`: User exited flow before giving permission to share data for the Item `REPORT_DELETED`: Report deleted due to customer or consumer request `DATA_UNAVAILABLE`: No relevant data was found for the Item
 * @export
 * @enum {string}
 */
export declare enum CreditBankIncomeWarningCode {
    IdentityUnavailable = "IDENTITY_UNAVAILABLE",
    TransactionsUnavailable = "TRANSACTIONS_UNAVAILABLE",
    ItemUnapproved = "ITEM_UNAPPROVED",
    ReportDeleted = "REPORT_DELETED",
    DataUnavailable = "DATA_UNAVAILABLE"
}
/**
 * The warning type which will always be `BANK_INCOME_WARNING`.
 * @export
 * @enum {string}
 */
export declare enum CreditBankIncomeWarningType {
    BankIncomeWarning = "BANK_INCOME_WARNING"
}
/**
 * CreditBankIncomeWebhookUpdateRequest defines the request schema for `/credit/bank_income/webhook/update`.
 * @export
 * @interface CreditBankIncomeWebhookUpdateRequest
 */
export interface CreditBankIncomeWebhookUpdateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankIncomeWebhookUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankIncomeWebhookUpdateRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditBankIncomeWebhookUpdateRequest
     */
    user_token: string;
    /**
     * Whether the user should be enabled for proactive webhook notifications when their income changes
     * @type {boolean}
     * @memberof CreditBankIncomeWebhookUpdateRequest
     */
    enable_webhooks: boolean;
}
/**
 * CreditBankIncomeWebhookUpdateResponse defines the response schema for `/credit/bank_income/webhook/update`.
 * @export
 * @interface CreditBankIncomeWebhookUpdateResponse
 */
export interface CreditBankIncomeWebhookUpdateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditBankIncomeWebhookUpdateResponse
     */
    request_id: string;
}
/**
 * An object containing data about the owner of the bank account for the uploaded bank statement.
 * @export
 * @interface CreditBankStatementUploadAccountOwner
 */
export interface CreditBankStatementUploadAccountOwner {
    /**
     * The name of the account owner
     * @type {string}
     * @memberof CreditBankStatementUploadAccountOwner
     */
    name: string | null;
    /**
     *
     * @type {CreditBankStatementUploadAccountOwnerAddress}
     * @memberof CreditBankStatementUploadAccountOwner
     */
    address: CreditBankStatementUploadAccountOwnerAddress;
}
/**
 * Address on the uploaded bank statement
 * @export
 * @interface CreditBankStatementUploadAccountOwnerAddress
 */
export interface CreditBankStatementUploadAccountOwnerAddress {
    /**
     * The full city name.
     * @type {string}
     * @memberof CreditBankStatementUploadAccountOwnerAddress
     */
    city: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code.
     * @type {string}
     * @memberof CreditBankStatementUploadAccountOwnerAddress
     */
    country: string | null;
    /**
     * The postal code of the address.
     * @type {string}
     * @memberof CreditBankStatementUploadAccountOwnerAddress
     */
    postal_code: string | null;
    /**
     * The region or state. Example: `\"NC\"`
     * @type {string}
     * @memberof CreditBankStatementUploadAccountOwnerAddress
     */
    region: string | null;
    /**
     * The full street address.
     * @type {string}
     * @memberof CreditBankStatementUploadAccountOwnerAddress
     */
    street: string | null;
}
/**
 * An object containing data about a user\'s bank account related to an uploaded bank statement.
 * @export
 * @interface CreditBankStatementUploadBankAccount
 */
export interface CreditBankStatementUploadBankAccount {
    /**
     * The name of the bank account
     * @type {string}
     * @memberof CreditBankStatementUploadBankAccount
     */
    name: string | null;
    /**
     * The name of the bank institution.
     * @type {string}
     * @memberof CreditBankStatementUploadBankAccount
     */
    bank_name: string | null;
    /**
     * The type of the bank account.
     * @type {string}
     * @memberof CreditBankStatementUploadBankAccount
     */
    account_type: string | null;
    /**
     * The bank account number.
     * @type {string}
     * @memberof CreditBankStatementUploadBankAccount
     */
    account_number: string | null;
    /**
     *
     * @type {CreditBankStatementUploadAccountOwner}
     * @memberof CreditBankStatementUploadBankAccount
     */
    owner: CreditBankStatementUploadAccountOwner;
    /**
     * An array of period objects, containing more data on the overall period of the statement.
     * @type {Array<CreditBankStatementUploadBankAccountPeriod>}
     * @memberof CreditBankStatementUploadBankAccount
     */
    periods: Array<CreditBankStatementUploadBankAccountPeriod>;
    /**
     * The unique id of the bank account
     * @type {string}
     * @memberof CreditBankStatementUploadBankAccount
     */
    account_id: string | null;
}
/**
 * An object containing data on the overall period of the statement.
 * @export
 * @interface CreditBankStatementUploadBankAccountPeriod
 */
export interface CreditBankStatementUploadBankAccountPeriod {
    /**
     * The start date of the statement period in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditBankStatementUploadBankAccountPeriod
     */
    start_date: string | null;
    /**
     * The end date of the statement period in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditBankStatementUploadBankAccountPeriod
     */
    end_date: string | null;
    /**
     * The starting balance of the bank account for the period.
     * @type {number}
     * @memberof CreditBankStatementUploadBankAccountPeriod
     */
    starting_balance: number | null;
    /**
     * The ending balance of the bank account for the period.
     * @type {number}
     * @memberof CreditBankStatementUploadBankAccountPeriod
     */
    ending_balance: number | null;
}
/**
 * An object containing information about the bank statement upload Item.
 * @export
 * @interface CreditBankStatementUploadItem
 */
export interface CreditBankStatementUploadItem {
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof CreditBankStatementUploadItem
     */
    item_id: string;
    /**
     *
     * @type {Array<CreditBankStatementUploadObject>}
     * @memberof CreditBankStatementUploadItem
     */
    bank_statements: Array<CreditBankStatementUploadObject>;
    /**
     *
     * @type {PayrollItemStatus}
     * @memberof CreditBankStatementUploadItem
     */
    status: PayrollItemStatus | null;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDTHH:mm:ssZ) indicating the last time that the Item was updated.
     * @type {string}
     * @memberof CreditBankStatementUploadItem
     */
    updated_at: string | null;
}
/**
 * An object containing data that has been parsed from a user-uploaded bank statement.
 * @export
 * @interface CreditBankStatementUploadObject
 */
export interface CreditBankStatementUploadObject {
    /**
     * An array of transactions appearing on the bank statement.
     * @type {Array<CreditBankStatementUploadTransaction>}
     * @memberof CreditBankStatementUploadObject
     */
    transactions: Array<CreditBankStatementUploadTransaction>;
    /**
     *
     * @type {CreditDocumentMetadata}
     * @memberof CreditBankStatementUploadObject
     */
    document_metadata: CreditDocumentMetadata;
    /**
     * An identifier of the document referenced by the document metadata.
     * @type {string}
     * @memberof CreditBankStatementUploadObject
     */
    document_id: string | null;
    /**
     * An array of bank accounts associated with the uploaded bank statement.
     * @type {Array<CreditBankStatementUploadBankAccount>}
     * @memberof CreditBankStatementUploadObject
     */
    bank_accounts: Array<CreditBankStatementUploadBankAccount>;
}
/**
 * An object containing data about a transaction appearing on a user-uploaded bank statement.
 * @export
 * @interface CreditBankStatementUploadTransaction
 */
export interface CreditBankStatementUploadTransaction {
    /**
     * The value of the transaction. A negative amount indicates that money moved into the account (such as a paycheck being deposited).
     * @type {number}
     * @memberof CreditBankStatementUploadTransaction
     */
    amount: number | null;
    /**
     * The date of when the transaction was made, in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditBankStatementUploadTransaction
     */
    date: string | null;
    /**
     * The raw description of the transaction as it appears on the bank statement.
     * @type {string}
     * @memberof CreditBankStatementUploadTransaction
     */
    original_description: string | null;
    /**
     * The unique id of the bank account that this transaction occurs in
     * @type {string}
     * @memberof CreditBankStatementUploadTransaction
     */
    account_id: string | null;
}
/**
 * CreditBankStatementsUploadsGetRequest defines the request schema for `/credit/bank_statements/uploads/get`
 * @export
 * @interface CreditBankStatementsUploadsGetRequest
 */
export interface CreditBankStatementsUploadsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankStatementsUploadsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditBankStatementsUploadsGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditBankStatementsUploadsGetRequest
     */
    user_token: string;
    /**
     *
     * @type {CreditBankStatementsUploadsGetRequestOptions}
     * @memberof CreditBankStatementsUploadsGetRequest
     */
    options?: CreditBankStatementsUploadsGetRequestOptions;
}
/**
 * An optional object for `/credit/bank_statements/uploads/get` request options.
 * @export
 * @interface CreditBankStatementsUploadsGetRequestOptions
 */
export interface CreditBankStatementsUploadsGetRequestOptions {
    /**
     * An array of `item_id`s whose bank statements information is returned. Each `item_id` should uniquely identify a bank statements uploaded item. If this field is not provided, all `item_id`s associated with the `user_token` will returned in the response.
     * @type {Array<string>}
     * @memberof CreditBankStatementsUploadsGetRequestOptions
     */
    item_ids?: Array<string>;
}
/**
 * CreditBankStatementsUploadsGetResponse defines the response schema for `/credit/bank_statements/uploads/get`
 * @export
 * @interface CreditBankStatementsUploadsGetResponse
 */
export interface CreditBankStatementsUploadsGetResponse {
    /**
     * Array of bank statement upload items.
     * @type {Array<CreditBankStatementUploadItem>}
     * @memberof CreditBankStatementsUploadsGetResponse
     */
    items: Array<CreditBankStatementUploadItem>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditBankStatementsUploadsGetResponse
     */
    request_id: string;
}
/**
 * An object representing a credit card account.
 * @export
 * @interface CreditCardLiability
 */
export interface CreditCardLiability {
    /**
     * The ID of the account that this liability belongs to.
     * @type {string}
     * @memberof CreditCardLiability
     */
    account_id: string | null;
    /**
     * The various interest rates that apply to the account. APR information is not provided by all card issuers; if APR data is not available, this array will be empty.
     * @type {Array<APR>}
     * @memberof CreditCardLiability
     */
    aprs: Array<APR>;
    /**
     * true if a payment is currently overdue. Availability for this field is limited.
     * @type {boolean}
     * @memberof CreditCardLiability
     */
    is_overdue: boolean | null;
    /**
     * The amount of the last payment.
     * @type {number}
     * @memberof CreditCardLiability
     */
    last_payment_amount: number | null;
    /**
     * The date of the last payment. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Availability for this field is limited.
     * @type {string}
     * @memberof CreditCardLiability
     */
    last_payment_date: string | null;
    /**
     * The date of the last statement. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditCardLiability
     */
    last_statement_issue_date: string | null;
    /**
     * The total amount owed as of the last statement issued
     * @type {number}
     * @memberof CreditCardLiability
     */
    last_statement_balance: number | null;
    /**
     * The minimum payment due for the next billing cycle.
     * @type {number}
     * @memberof CreditCardLiability
     */
    minimum_payment_amount: number | null;
    /**
     * The due date for the next payment. The due date is `null` if a payment is not expected. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditCardLiability
     */
    next_payment_due_date: string | null;
}
/**
 * Information describing the intent of the transaction. Most relevant for credit use cases, but not limited to such use cases.  See the [`taxonomy csv file`](https://plaid.com/documents/credit-category-taxonomy.csv) for a full list of credit categories.
 * @export
 * @interface CreditCategory
 */
export interface CreditCategory {
    /**
     * A high level category that communicates the broad category of the transaction.
     * @type {string}
     * @memberof CreditCategory
     */
    primary: string;
    /**
     * A granular category conveying the transaction\'s intent. This field can also be used as a unique identifier for the category.
     * @type {string}
     * @memberof CreditCategory
     */
    detailed: string;
}
/**
 * Object representing metadata pertaining to the document.
 * @export
 * @interface CreditDocumentMetadata
 */
export interface CreditDocumentMetadata {
    /**
     * The name of the document.
     * @type {string}
     * @memberof CreditDocumentMetadata
     */
    name: string;
    /**
     * The type of document.  `PAYSTUB`: A paystub.  `BANK_STATEMENT`: A bank statement.  `US_TAX_W2`: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee.  `US_MILITARY_ERAS`: An electronic Retirement Account Statement (eRAS) issued by the US military.  `US_MILITARY_LES`: A Leave and Earnings Statement (LES) issued by the US military.  `US_MILITARY_CLES`: A Civilian Leave and Earnings Statement (CLES) issued by the US military.  `GIG`: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type.  `PLAID_GENERATED_PAYSTUB_PDF`: Used to indicate that the PDF for the paystub was generated by Plaid.  `NONE`: Used to indicate that there is no underlying document for the data.  `UNKNOWN`: Document type could not be determined.
     * @type {string}
     * @memberof CreditDocumentMetadata
     */
    document_type: string | null;
    /**
     * Signed URL to retrieve the underlying file. For Payroll Income, the file type will always be PDF, and the file may not be available, in which case the field will be `null`. If you would like Plaid to generate a PDF if the original is not available, contact your Account Manager. [Example generated pay stub](https://www.plaid.com/documents/plaid-generated-mock-paystub.pdf).  For Document Income, this field will not be `null`, and the file type will be the original file type uploaded by the user. For more details on available file types, see the [Document Income](https://www.plaid.com/docs/income/payroll-income) documentation.  This download URL can only be used once and expires after two minutes. To generate a new download URL, call `/credit/payroll_income/get` again.
     * @type {string}
     * @memberof CreditDocumentMetadata
     */
    download_url: string | null;
    /**
     * The processing status of the document.  `PROCESSING_COMPLETE`: The document was successfully processed.  `DOCUMENT_ERROR`: The document could not be processed. Possible causes include: The document was an unacceptable document type such as an offer letter or bank statement, the document image was cropped or blurry, or the document was corrupted.  `UNKNOWN` or `null`: An internal error occurred. If this happens repeatedly, contact support or your Plaid account manager.
     * @type {string}
     * @memberof CreditDocumentMetadata
     */
    status: string | null;
    /**
     * The number of pages of the uploaded document (if available).
     * @type {number}
     * @memberof CreditDocumentMetadata
     */
    page_count?: number | null;
    /**
     * The reason why a failure occurred during document processing (if available).
     * @type {string}
     * @memberof CreditDocumentMetadata
     */
    error_message?: string | null;
}
/**
 * An object containing employer data.
 * @export
 * @interface CreditEmployerVerification
 */
export interface CreditEmployerVerification {
    /**
     * Name of employer.
     * @type {string}
     * @memberof CreditEmployerVerification
     */
    name: string | null;
}
/**
 * CreditEmploymentGetRequest defines the request schema for `/credit/employment/get`.
 * @export
 * @interface CreditEmploymentGetRequest
 */
export interface CreditEmploymentGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditEmploymentGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditEmploymentGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditEmploymentGetRequest
     */
    user_token: string;
}
/**
 * CreditEmploymentGetResponse defines the response schema for `/credit/employment/get`.
 * @export
 * @interface CreditEmploymentGetResponse
 */
export interface CreditEmploymentGetResponse {
    /**
     * Array of employment items.
     * @type {Array<CreditEmploymentItem>}
     * @memberof CreditEmploymentGetResponse
     */
    items: Array<CreditEmploymentItem>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditEmploymentGetResponse
     */
    request_id: string;
}
/**
 * The object containing employment items.
 * @export
 * @interface CreditEmploymentItem
 */
export interface CreditEmploymentItem {
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof CreditEmploymentItem
     */
    item_id: string;
    /**
     *
     * @type {Array<CreditEmploymentVerification>}
     * @memberof CreditEmploymentItem
     */
    employments: Array<CreditEmploymentVerification>;
    /**
     * Token to represent the underlying Employment data
     * @type {string}
     * @memberof CreditEmploymentItem
     */
    employment_report_token?: string;
}
/**
 * The object containing proof of employment data for an individual.
 * @export
 * @interface CreditEmploymentVerification
 */
export interface CreditEmploymentVerification {
    /**
     * ID of the payroll provider account.
     * @type {string}
     * @memberof CreditEmploymentVerification
     */
    account_id: string | null;
    /**
     * Current employment status.
     * @type {string}
     * @memberof CreditEmploymentVerification
     */
    status: string | null;
    /**
     * Start of employment in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditEmploymentVerification
     */
    start_date: string | null;
    /**
     * End of employment, if applicable. Provided in ISO 8601 format (YYY-MM-DD).
     * @type {string}
     * @memberof CreditEmploymentVerification
     */
    end_date: string | null;
    /**
     *
     * @type {CreditEmployerVerification}
     * @memberof CreditEmploymentVerification
     */
    employer: CreditEmployerVerification;
    /**
     * Current title of employee.
     * @type {string}
     * @memberof CreditEmploymentVerification
     */
    title: string | null;
    /**
     *
     * @type {CreditPlatformIds}
     * @memberof CreditEmploymentVerification
     */
    platform_ids: CreditPlatformIds;
    /**
     * The type of employment for the individual. `\"FULL_TIME\"`: A full-time employee. `\"PART_TIME\"`: A part-time employee. `\"CONTRACTOR\"`: An employee typically hired externally through a contracting group. `\"TEMPORARY\"`: A temporary employee. `\"OTHER\"`: The employee type is not one of the above defined types.
     * @type {string}
     * @memberof CreditEmploymentVerification
     */
    employee_type: string | null;
    /**
     * The date of the employee\'s most recent paystub in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof CreditEmploymentVerification
     */
    last_paystub_date: string | null;
}
/**
 * A filter to apply to `credit`-type accounts
 * @export
 * @interface CreditFilter
 */
export interface CreditFilter {
    /**
     * An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {Array<CreditAccountSubtype>}
     * @memberof CreditFilter
     */
    account_subtypes: Array<CreditAccountSubtype>;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface CreditFreddieMacAsset
 */
export interface CreditFreddieMacAsset {
    /**
     *
     * @type {AssetDetail}
     * @memberof CreditFreddieMacAsset
     */
    ASSET_DETAIL: AssetDetail;
    /**
     *
     * @type {AssetOwners}
     * @memberof CreditFreddieMacAsset
     */
    ASSET_OWNERS: AssetOwners;
    /**
     *
     * @type {AssetHolder}
     * @memberof CreditFreddieMacAsset
     */
    ASSET_HOLDER: AssetHolder;
    /**
     *
     * @type {CreditFreddieMacAssetTransactions}
     * @memberof CreditFreddieMacAsset
     */
    ASSET_TRANSACTIONS: CreditFreddieMacAssetTransactions;
    /**
     *
     * @type {ValidationSources}
     * @memberof CreditFreddieMacAsset
     */
    VALIDATION_SOURCES: ValidationSources;
}
/**
 * An object representing...
 * @export
 * @interface CreditFreddieMacAssetTransaction
 */
export interface CreditFreddieMacAssetTransaction {
    /**
     *
     * @type {AssetTransactionDetail}
     * @memberof CreditFreddieMacAssetTransaction
     */
    ASSET_TRANSACTION_DETAIL: AssetTransactionDetail;
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
     * @type {Array<AssetTransactionDescription>}
     * @memberof CreditFreddieMacAssetTransaction
     */
    ASSET_TRANSACTION_DESCRIPTION: Array<AssetTransactionDescription>;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface CreditFreddieMacAssetTransactions
 */
export interface CreditFreddieMacAssetTransactions {
    /**
     *
     * @type {Array<CreditFreddieMacAssetTransaction>}
     * @memberof CreditFreddieMacAssetTransactions
     */
    ASSET_TRANSACTION: Array<CreditFreddieMacAssetTransaction>;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface CreditFreddieMacAssets
 */
export interface CreditFreddieMacAssets {
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
     * @type {Array<CreditFreddieMacAsset>}
     * @memberof CreditFreddieMacAssets
     */
    ASSET: Array<CreditFreddieMacAsset>;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface CreditFreddieMacIndividualName
 */
export interface CreditFreddieMacIndividualName {
    /**
     * The first name of the individual represented by the parent object.
     * @type {string}
     * @memberof CreditFreddieMacIndividualName
     */
    FirstName: string;
    /**
     * The last name of the individual represented by the parent object.
     * @type {string}
     * @memberof CreditFreddieMacIndividualName
     */
    LastName: string;
    /**
     * The middle name of the individual represented by the parent object.
     * @type {string}
     * @memberof CreditFreddieMacIndividualName
     */
    MiddleName: string;
}
/**
 * Information specific to a mortgage loan agreement between one or more borrowers and a mortgage lender.
 * @export
 * @interface CreditFreddieMacLoan
 */
export interface CreditFreddieMacLoan {
    /**
     *
     * @type {CreditFreddieMacLoanIdentifiers}
     * @memberof CreditFreddieMacLoan
     */
    LOAN_IDENTIFIERS: CreditFreddieMacLoanIdentifiers;
    /**
     * Type of loan. The value can only be \"SubjectLoan\"
     * @type {string}
     * @memberof CreditFreddieMacLoan
     */
    LoanRoleType: string;
}
/**
 * Collection of current and previous identifiers for this loan.
 * @export
 * @interface CreditFreddieMacLoanIdentifiers
 */
export interface CreditFreddieMacLoanIdentifiers {
    /**
     *
     * @type {Array<LoanIdentifier>}
     * @memberof CreditFreddieMacLoanIdentifiers
     */
    LOAN_IDENTIFIER: Array<LoanIdentifier>;
}
/**
 * A collection of loans that are part of a single deal.
 * @export
 * @interface CreditFreddieMacLoans
 */
export interface CreditFreddieMacLoans {
    /**
     *
     * @type {CreditFreddieMacLoan}
     * @memberof CreditFreddieMacLoans
     */
    LOAN: CreditFreddieMacLoan;
}
/**
 * A collection of objects that define specific parties to a deal. This includes the direct participating parties, such as borrower and seller and the indirect parties such as the credit report provider.
 * @export
 * @interface CreditFreddieMacParties
 */
export interface CreditFreddieMacParties {
    /**
     *
     * @type {Array<CreditFreddieMacParty>}
     * @memberof CreditFreddieMacParties
     */
    PARTY: Array<CreditFreddieMacParty>;
}
/**
 * A collection of information about a single party to a transaction. Included direct participants like the borrower and seller as well as indirect participants such as the flood certificate provider.
 * @export
 * @interface CreditFreddieMacParty
 */
export interface CreditFreddieMacParty {
    /**
     *
     * @type {CreditFreddieMacPartyIndividual}
     * @memberof CreditFreddieMacParty
     */
    INDIVIDUAL: CreditFreddieMacPartyIndividual;
    /**
     *
     * @type {Roles}
     * @memberof CreditFreddieMacParty
     */
    ROLES: Roles;
    /**
     *
     * @type {TaxpayerIdentifiers}
     * @memberof CreditFreddieMacParty
     */
    TAXPAYER_IDENTIFIERS: TaxpayerIdentifiers;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface CreditFreddieMacPartyIndividual
 */
export interface CreditFreddieMacPartyIndividual {
    /**
     *
     * @type {CreditFreddieMacIndividualName}
     * @memberof CreditFreddieMacPartyIndividual
     */
    NAME: CreditFreddieMacIndividualName;
}
/**
 * Information about an report identifier and a report name.
 * @export
 * @interface CreditFreddieMacReportingInformation
 */
export interface CreditFreddieMacReportingInformation {
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
     * @type {string}
     * @memberof CreditFreddieMacReportingInformation
     */
    ReportDateTime?: string;
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac. The value can only be \"ReportID\"
     * @type {string}
     * @memberof CreditFreddieMacReportingInformation
     */
    ReportIdentifierType?: string;
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
     * @type {string}
     * @memberof CreditFreddieMacReportingInformation
     */
    ReportingInformationParentIdentifier?: string;
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
     * @type {string}
     * @memberof CreditFreddieMacReportingInformation
     */
    ReportingInformationIdentifier: string;
}
/**
 * CreditFreddieMacReportsGetRequest defines the request schema for `credit/asset_report/freddie_mac/get`
 * @export
 * @interface CreditFreddieMacReportsGetRequest
 */
export interface CreditFreddieMacReportsGetRequest {
    /**
     * A token that can be shared with a third party auditor to allow them to obtain access to the Asset Report. This token should be stored securely.
     * @type {string}
     * @memberof CreditFreddieMacReportsGetRequest
     */
    audit_copy_token: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditFreddieMacReportsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditFreddieMacReportsGetRequest
     */
    secret?: string;
}
/**
 * CreditFreddieMacReportsGetResponse defines the response schema for `/credit/freddie_mac/reports/get`
 * @export
 * @interface CreditFreddieMacReportsGetResponse
 */
export interface CreditFreddieMacReportsGetResponse {
    /**
     *
     * @type {CreditFreddieMacVerificationOfAssetsDeal}
     * @memberof CreditFreddieMacReportsGetResponse
     */
    DEAL: CreditFreddieMacVerificationOfAssetsDeal;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditFreddieMacReportsGetResponse
     */
    request_id: string;
    /**
     * The Verification Of Assets (VOA) schema version.
     * @type {number}
     * @memberof CreditFreddieMacReportsGetResponse
     */
    SchemaVersion: number;
}
/**
 * A collection of details related to a fulfillment service or product in terms of request, process and result.
 * @export
 * @interface CreditFreddieMacService
 */
export interface CreditFreddieMacService {
    /**
     *
     * @type {Array<CreditFreddieMacVerificationOfAsset>}
     * @memberof CreditFreddieMacService
     */
    VERIFICATION_OF_ASSET: Array<CreditFreddieMacVerificationOfAsset>;
    /**
     *
     * @type {Statuses}
     * @memberof CreditFreddieMacService
     */
    STATUSES: Statuses;
}
/**
 * A collection of objects that describe requests and responses for services.
 * @export
 * @interface CreditFreddieMacServices
 */
export interface CreditFreddieMacServices {
    /**
     *
     * @type {CreditFreddieMacService}
     * @memberof CreditFreddieMacServices
     */
    SERVICE: CreditFreddieMacService;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface CreditFreddieMacVerificationOfAsset
 */
export interface CreditFreddieMacVerificationOfAsset {
    /**
     *
     * @type {CreditFreddieMacReportingInformation}
     * @memberof CreditFreddieMacVerificationOfAsset
     */
    REPORTING_INFORMATION: CreditFreddieMacReportingInformation;
    /**
     *
     * @type {ServiceProductFulfillment}
     * @memberof CreditFreddieMacVerificationOfAsset
     */
    SERVICE_PRODUCT_FULFILLMENT: ServiceProductFulfillment;
    /**
     *
     * @type {CreditFreddieMacVerificationOfAssetResponse}
     * @memberof CreditFreddieMacVerificationOfAsset
     */
    VERIFICATION_OF_ASSET_RESPONSE: CreditFreddieMacVerificationOfAssetResponse;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface CreditFreddieMacVerificationOfAssetResponse
 */
export interface CreditFreddieMacVerificationOfAssetResponse {
    /**
     *
     * @type {CreditFreddieMacAssets}
     * @memberof CreditFreddieMacVerificationOfAssetResponse
     */
    ASSETS: CreditFreddieMacAssets;
}
/**
 * An object representing an Asset Report with Freddie Mac schema.
 * @export
 * @interface CreditFreddieMacVerificationOfAssetsDeal
 */
export interface CreditFreddieMacVerificationOfAssetsDeal {
    /**
     *
     * @type {CreditFreddieMacLoans}
     * @memberof CreditFreddieMacVerificationOfAssetsDeal
     */
    LOANS: CreditFreddieMacLoans;
    /**
     *
     * @type {CreditFreddieMacParties}
     * @memberof CreditFreddieMacVerificationOfAssetsDeal
     */
    PARTIES: CreditFreddieMacParties;
    /**
     *
     * @type {CreditFreddieMacServices}
     * @memberof CreditFreddieMacVerificationOfAssetsDeal
     */
    SERVICES: CreditFreddieMacServices;
}
/**
 * An object representing an end user\'s pay stub.
 * @export
 * @interface CreditPayStub
 */
export interface CreditPayStub {
    /**
     *
     * @type {CreditPayStubDeductions}
     * @memberof CreditPayStub
     */
    deductions: CreditPayStubDeductions;
    /**
     * An identifier of the document referenced by the document metadata.
     * @type {string}
     * @memberof CreditPayStub
     */
    document_id: string | null;
    /**
     *
     * @type {CreditDocumentMetadata}
     * @memberof CreditPayStub
     */
    document_metadata: CreditDocumentMetadata;
    /**
     *
     * @type {CreditPayStubEarnings}
     * @memberof CreditPayStub
     */
    earnings: CreditPayStubEarnings;
    /**
     *
     * @type {CreditPayStubEmployee}
     * @memberof CreditPayStub
     */
    employee: CreditPayStubEmployee;
    /**
     *
     * @type {CreditPayStubEmployer}
     * @memberof CreditPayStub
     */
    employer: CreditPayStubEmployer;
    /**
     *
     * @type {CreditPayStubNetPay}
     * @memberof CreditPayStub
     */
    net_pay: CreditPayStubNetPay;
    /**
     *
     * @type {PayStubPayPeriodDetails}
     * @memberof CreditPayStub
     */
    pay_period_details: PayStubPayPeriodDetails;
}
/**
 * Address on the pay stub.
 * @export
 * @interface CreditPayStubAddress
 */
export interface CreditPayStubAddress {
    /**
     * The full city name.
     * @type {string}
     * @memberof CreditPayStubAddress
     */
    city: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code.
     * @type {string}
     * @memberof CreditPayStubAddress
     */
    country: string | null;
    /**
     * The postal code of the address.
     * @type {string}
     * @memberof CreditPayStubAddress
     */
    postal_code: string | null;
    /**
     * The region or state. Example: `\"NC\"`
     * @type {string}
     * @memberof CreditPayStubAddress
     */
    region: string | null;
    /**
     * The full street address.
     * @type {string}
     * @memberof CreditPayStubAddress
     */
    street: string | null;
}
/**
 * An object with the deduction information found on a pay stub.
 * @export
 * @interface CreditPayStubDeductions
 */
export interface CreditPayStubDeductions {
    /**
     *
     * @type {Array<PayStubDeductionsBreakdown>}
     * @memberof CreditPayStubDeductions
     */
    breakdown: Array<PayStubDeductionsBreakdown>;
    /**
     *
     * @type {PayStubDeductionsTotal}
     * @memberof CreditPayStubDeductions
     */
    total: PayStubDeductionsTotal;
}
/**
 * An object representing both a breakdown of earnings on a pay stub and the total earnings.
 * @export
 * @interface CreditPayStubEarnings
 */
export interface CreditPayStubEarnings {
    /**
     *
     * @type {Array<PayStubEarningsBreakdown>}
     * @memberof CreditPayStubEarnings
     */
    breakdown: Array<PayStubEarningsBreakdown>;
    /**
     *
     * @type {PayStubEarningsTotal}
     * @memberof CreditPayStubEarnings
     */
    total: PayStubEarningsTotal;
}
/**
 * Data about the employee.
 * @export
 * @interface CreditPayStubEmployee
 */
export interface CreditPayStubEmployee {
    /**
     *
     * @type {CreditPayStubAddress}
     * @memberof CreditPayStubEmployee
     */
    address: CreditPayStubAddress;
    /**
     * The name of the employee.
     * @type {string}
     * @memberof CreditPayStubEmployee
     */
    name: string | null;
    /**
     * Marital status of the employee - either `SINGLE` or `MARRIED` or `NOT LISTED`.
     * @type {string}
     * @memberof CreditPayStubEmployee
     */
    marital_status: string | null;
    /**
     *
     * @type {PayStubTaxpayerID}
     * @memberof CreditPayStubEmployee
     */
    taxpayer_id: PayStubTaxpayerID;
}
/**
 * Information about the employer on the pay stub.
 * @export
 * @interface CreditPayStubEmployer
 */
export interface CreditPayStubEmployer {
    /**
     *
     * @type {CreditPayStubAddress}
     * @memberof CreditPayStubEmployer
     */
    address: CreditPayStubAddress;
    /**
     * The name of the employer on the pay stub.
     * @type {string}
     * @memberof CreditPayStubEmployer
     */
    name: string | null;
}
/**
 * An object representing information about the net pay amount on the pay stub.
 * @export
 * @interface CreditPayStubNetPay
 */
export interface CreditPayStubNetPay {
    /**
     * Raw amount of the net pay for the pay period.
     * @type {number}
     * @memberof CreditPayStubNetPay
     */
    current_amount: number | null;
    /**
     * Description of the net pay.
     * @type {string}
     * @memberof CreditPayStubNetPay
     */
    description: string | null;
    /**
     * The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof CreditPayStubNetPay
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the net pay. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof CreditPayStubNetPay
     */
    unofficial_currency_code: string | null;
    /**
     * The year-to-date amount of the net pay.
     * @type {number}
     * @memberof CreditPayStubNetPay
     */
    ytd_amount: number | null;
}
/**
 * The explicit pay basis on the paystub (if present).
 * @export
 * @enum {string}
 */
export declare enum CreditPayStubPayBasisType {
    Salary = "SALARY",
    Hourly = "HOURLY",
    Commission = "COMMISSION"
}
/**
 * CreditPayrollIncomeGetRequest defines the request schema for `/credit/payroll_income/get`.
 * @export
 * @interface CreditPayrollIncomeGetRequest
 */
export interface CreditPayrollIncomeGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditPayrollIncomeGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditPayrollIncomeGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditPayrollIncomeGetRequest
     */
    user_token?: string;
    /**
     *
     * @type {CreditPayrollIncomeGetRequestOptions}
     * @memberof CreditPayrollIncomeGetRequest
     */
    options?: CreditPayrollIncomeGetRequestOptions;
}
/**
 * An optional object for `/credit/payroll_income/get` request options.
 * @export
 * @interface CreditPayrollIncomeGetRequestOptions
 */
export interface CreditPayrollIncomeGetRequestOptions {
    /**
     * An array of `item_id`s whose payroll information is returned. Each `item_id` should uniquely identify a payroll income item. If this field is not provided, all `item_id`s associated with the `user_token` will returned in the response.
     * @type {Array<string>}
     * @memberof CreditPayrollIncomeGetRequestOptions
     */
    item_ids?: Array<string>;
}
/**
 * Defines the response body for `/credit/payroll_income/get`.
 * @export
 * @interface CreditPayrollIncomeGetResponse
 */
export interface CreditPayrollIncomeGetResponse {
    /**
     * Array of payroll items.
     * @type {Array<PayrollItem>}
     * @memberof CreditPayrollIncomeGetResponse
     */
    items: Array<PayrollItem>;
    /**
     *
     * @type {PlaidError}
     * @memberof CreditPayrollIncomeGetResponse
     */
    error?: PlaidError | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditPayrollIncomeGetResponse
     */
    request_id: string;
}
/**
 * CreditPayrollIncomeParsingConfigUpdateRequest defines the request schema for `/credit/payroll_income/documents/update`.
 * @export
 * @interface CreditPayrollIncomeParsingConfigUpdateRequest
 */
export interface CreditPayrollIncomeParsingConfigUpdateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditPayrollIncomeParsingConfigUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditPayrollIncomeParsingConfigUpdateRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditPayrollIncomeParsingConfigUpdateRequest
     */
    user_token: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof CreditPayrollIncomeParsingConfigUpdateRequest
     */
    item_id?: string;
    /**
     * The types of analysis to enable for the document income verification session
     * @type {Array<IncomeVerificationDocParsingConfig>}
     * @memberof CreditPayrollIncomeParsingConfigUpdateRequest
     */
    parsing_config: Array<IncomeVerificationDocParsingConfig>;
}
/**
 * CreditPayrollIncomeParsingConfigUpdateResponse defines the response schema for `/credit/payroll_income/documents/update`.
 * @export
 * @interface CreditPayrollIncomeParsingConfigUpdateResponse
 */
export interface CreditPayrollIncomeParsingConfigUpdateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditPayrollIncomeParsingConfigUpdateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/credit/payroll_income/precheck`.
 * @export
 * @interface CreditPayrollIncomePrecheckRequest
 */
export interface CreditPayrollIncomePrecheckRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditPayrollIncomePrecheckRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditPayrollIncomePrecheckRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditPayrollIncomePrecheckRequest
     */
    user_token?: string;
    /**
     * An array of access tokens corresponding to Items belonging to the user whose eligibility is being checked. Note that if the Items specified here are not already initialized with `transactions`, providing them in this field will cause these Items to be initialized with (and billed for) the Transactions product.
     * @type {Array<string>}
     * @memberof CreditPayrollIncomePrecheckRequest
     */
    access_tokens?: Array<string>;
    /**
     *
     * @type {IncomeVerificationPrecheckEmployer}
     * @memberof CreditPayrollIncomePrecheckRequest
     */
    employer?: IncomeVerificationPrecheckEmployer | null;
    /**
     *
     * @type {IncomeVerificationPrecheckMilitaryInfo}
     * @memberof CreditPayrollIncomePrecheckRequest
     */
    us_military_info?: IncomeVerificationPrecheckMilitaryInfo | null;
    /**
     *
     * @type {IncomeVerificationPrecheckPayrollInstitution}
     * @memberof CreditPayrollIncomePrecheckRequest
     */
    payroll_institution?: IncomeVerificationPrecheckPayrollInstitution | null;
}
/**
 * Defines the response schema for `/credit/payroll_income/precheck`.
 * @export
 * @interface CreditPayrollIncomePrecheckResponse
 */
export interface CreditPayrollIncomePrecheckResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditPayrollIncomePrecheckResponse
     */
    request_id: string;
    /**
     *
     * @type {IncomeVerificationPrecheckConfidence}
     * @memberof CreditPayrollIncomePrecheckResponse
     */
    confidence: IncomeVerificationPrecheckConfidence;
}
/**
 * CreditPayrollIncomeRefreshRequest defines the request schema for `/credit/payroll_income/refresh`
 * @export
 * @interface CreditPayrollIncomeRefreshRequest
 */
export interface CreditPayrollIncomeRefreshRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditPayrollIncomeRefreshRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditPayrollIncomeRefreshRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditPayrollIncomeRefreshRequest
     */
    user_token: string;
    /**
     *
     * @type {CreditPayrollIncomeRefreshRequestOptions}
     * @memberof CreditPayrollIncomeRefreshRequest
     */
    options?: CreditPayrollIncomeRefreshRequestOptions;
}
/**
 * An optional object for `/credit/payroll_income/refresh` request options.
 * @export
 * @interface CreditPayrollIncomeRefreshRequestOptions
 */
export interface CreditPayrollIncomeRefreshRequestOptions {
    /**
     * An array of `item_id`s to be refreshed. Each `item_id` should uniquely identify a payroll income item. If this field is not provided, all `item_id`s associated with the `user_token` will be refreshed.
     * @type {Array<string>}
     * @memberof CreditPayrollIncomeRefreshRequestOptions
     */
    item_ids?: Array<string>;
    /**
     * The URL where Plaid will send the payroll income refresh webhook.
     * @type {string}
     * @memberof CreditPayrollIncomeRefreshRequestOptions
     */
    webhook?: string;
}
/**
 * CreditPayrollIncomeRefreshResponse defines the response schema for `/credit/payroll_income/refresh`
 * @export
 * @interface CreditPayrollIncomeRefreshResponse
 */
export interface CreditPayrollIncomeRefreshResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditPayrollIncomeRefreshResponse
     */
    request_id: string;
    /**
     * The verification refresh status. One of the following:  `\"USER_PRESENCE_REQUIRED\"` User presence is required to refresh an income verification. `\"SUCCESSFUL\"` The income verification refresh was successful. `\"NOT_FOUND\"` No new data was found after the income verification refresh.
     * @type {string}
     * @memberof CreditPayrollIncomeRefreshResponse
     */
    verification_refresh_status: string;
}
/**
 * CreditPayrollIncomeRiskSignalsGetRequest defines the request schema for `/credit/payroll_income/risk_signals/get`
 * @export
 * @interface CreditPayrollIncomeRiskSignalsGetRequest
 */
export interface CreditPayrollIncomeRiskSignalsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditPayrollIncomeRiskSignalsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditPayrollIncomeRiskSignalsGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditPayrollIncomeRiskSignalsGetRequest
     */
    user_token?: string;
}
/**
 * CreditPayrollIncomeRiskSignalsGetRequest defines the response schema for `/credit/payroll_income/risk_signals/get`
 * @export
 * @interface CreditPayrollIncomeRiskSignalsGetResponse
 */
export interface CreditPayrollIncomeRiskSignalsGetResponse {
    /**
     * Array of payroll items.
     * @type {Array<PayrollRiskSignalsItem>}
     * @memberof CreditPayrollIncomeRiskSignalsGetResponse
     */
    items: Array<PayrollRiskSignalsItem>;
    /**
     *
     * @type {PlaidError}
     * @memberof CreditPayrollIncomeRiskSignalsGetResponse
     */
    error?: PlaidError | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditPayrollIncomeRiskSignalsGetResponse
     */
    request_id: string;
}
/**
 * The object containing a set of ids related to an employee.
 * @export
 * @interface CreditPlatformIds
 */
export interface CreditPlatformIds {
    /**
     * The ID of an employee as given by their employer.
     * @type {string}
     * @memberof CreditPlatformIds
     */
    employee_id: string | null;
    /**
     * The ID of an employee as given by their payroll.
     * @type {string}
     * @memberof CreditPlatformIds
     */
    payroll_id: string | null;
    /**
     * The ID of the position of the employee.
     * @type {string}
     * @memberof CreditPlatformIds
     */
    position_id: string | null;
}
/**
 * CreditRelayCreateRequest defines the request schema for `/credit/relay/create`
 * @export
 * @interface CreditRelayCreateRequest
 */
export interface CreditRelayCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditRelayCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditRelayCreateRequest
     */
    secret?: string;
    /**
     * List of report token strings, with at most one token of each report type. Currently only Asset Report token is supported.
     * @type {Array<string>}
     * @memberof CreditRelayCreateRequest
     */
    report_tokens: Array<string>;
    /**
     * The `secondary_client_id` is the client id of the third party with whom you would like to share the relay token.
     * @type {string}
     * @memberof CreditRelayCreateRequest
     */
    secondary_client_id: string;
    /**
     * URL to which Plaid will send webhooks when the Secondary Client successfully retrieves an Asset Report by calling `/credit/relay/get`.
     * @type {string}
     * @memberof CreditRelayCreateRequest
     */
    webhook?: string | null;
}
/**
 * CreditRelayCreateResponse defines the response schema for `/credit/relay/create`
 * @export
 * @interface CreditRelayCreateResponse
 */
export interface CreditRelayCreateResponse {
    /**
     * A token that can be shared with a third party to allow them to access the Asset Report. This token should be stored securely.
     * @type {string}
     * @memberof CreditRelayCreateResponse
     */
    relay_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditRelayCreateResponse
     */
    request_id: string;
}
/**
 * CreditRelayGetRequest defines the request schema for `/credit/relay/get`
 * @export
 * @interface CreditRelayGetRequest
 */
export interface CreditRelayGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditRelayGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditRelayGetRequest
     */
    secret?: string;
    /**
     * The `relay_token` granting access to the report you would like to get.
     * @type {string}
     * @memberof CreditRelayGetRequest
     */
    relay_token: string;
    /**
     *
     * @type {ReportType}
     * @memberof CreditRelayGetRequest
     */
    report_type: ReportType;
    /**
     * `true` if you would like to retrieve the Asset Report with Insights, `false` otherwise. This field defaults to `false` if omitted.
     * @type {boolean}
     * @memberof CreditRelayGetRequest
     */
    include_insights?: boolean;
}
/**
 * CreditRelayPDFGetRequest defines the request schema for `/credit/relay/pdf/get`
 * @export
 * @interface CreditRelayPDFGetRequest
 */
export interface CreditRelayPDFGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditRelayPDFGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditRelayPDFGetRequest
     */
    secret?: string;
    /**
     * The `relay_token` granting access to the report you would like to get.
     * @type {string}
     * @memberof CreditRelayPDFGetRequest
     */
    relay_token: string;
    /**
     *
     * @type {ReportType}
     * @memberof CreditRelayPDFGetRequest
     */
    report_type: ReportType;
}
/**
 * CreditRelayRefreshRequest defines the request schema for `/credit/relay/refresh`
 * @export
 * @interface CreditRelayRefreshRequest
 */
export interface CreditRelayRefreshRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditRelayRefreshRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditRelayRefreshRequest
     */
    secret?: string;
    /**
     * The `relay_token` granting access to the report you would like to refresh.
     * @type {string}
     * @memberof CreditRelayRefreshRequest
     */
    relay_token: string;
    /**
     *
     * @type {ReportType}
     * @memberof CreditRelayRefreshRequest
     */
    report_type: ReportType;
    /**
     * The URL registered to receive webhooks when the report of a relay token has been refreshed.
     * @type {string}
     * @memberof CreditRelayRefreshRequest
     */
    webhook?: string | null;
}
/**
 * CreditRelayRefreshResponse defines the response schema for `/credit/relay/refresh`
 * @export
 * @interface CreditRelayRefreshResponse
 */
export interface CreditRelayRefreshResponse {
    /**
     *
     * @type {string}
     * @memberof CreditRelayRefreshResponse
     */
    relay_token: string;
    /**
     * A unique ID identifying an Asset Report. Like all Plaid identifiers, this ID is case sensitive.
     * @type {string}
     * @memberof CreditRelayRefreshResponse
     */
    asset_report_id?: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditRelayRefreshResponse
     */
    request_id: string;
}
/**
 * CreditRelayRemoveRequest defines the request schema for `/credit/relay/remove`
 * @export
 * @interface CreditRelayRemoveRequest
 */
export interface CreditRelayRemoveRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditRelayRemoveRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditRelayRemoveRequest
     */
    secret?: string;
    /**
     * The `relay_token` you would like to revoke.
     * @type {string}
     * @memberof CreditRelayRemoveRequest
     */
    relay_token: string;
}
/**
 * CreditRelayRemoveResponse defines the response schema for `/credit/relay/remove`
 * @export
 * @interface CreditRelayRemoveResponse
 */
export interface CreditRelayRemoveResponse {
    /**
     * `true` if the relay token was successfully removed.
     * @type {boolean}
     * @memberof CreditRelayRemoveResponse
     */
    removed: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditRelayRemoveResponse
     */
    request_id: string;
}
/**
 * Metadata and results for a Link session
 * @export
 * @interface CreditSession
 */
export interface CreditSession {
    /**
     * The unique identifier associated with the Link session. This identifier matches the `link_session_id` returned in the onSuccess/onExit callbacks.
     * @type {string}
     * @memberof CreditSession
     */
    link_session_id?: string;
    /**
     * The time when the Link session started
     * @type {string}
     * @memberof CreditSession
     */
    session_start_time?: string;
    /**
     *
     * @type {CreditSessionResults}
     * @memberof CreditSession
     */
    results?: CreditSessionResults;
    /**
     * The set of errors that occurred during the Link session.
     * @type {Array<CreditSessionError>}
     * @memberof CreditSession
     */
    errors?: Array<CreditSessionError>;
}
/**
 * The details of a bank employment verification in Link.
 * @export
 * @interface CreditSessionBankEmploymentResult
 */
export interface CreditSessionBankEmploymentResult {
    /**
     *
     * @type {CreditSessionBankEmploymentStatus}
     * @memberof CreditSessionBankEmploymentResult
     */
    status?: CreditSessionBankEmploymentStatus;
    /**
     * The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
     * @type {string}
     * @memberof CreditSessionBankEmploymentResult
     */
    item_id?: string;
    /**
     * The Plaid Institution ID associated with the Item.
     * @type {string}
     * @memberof CreditSessionBankEmploymentResult
     */
    institution_id?: string;
}
/**
 * Status of the Bank Employment Link session.  `APPROVED`: User has approved and verified their employment.  `NO_EMPLOYMENTS_FOUND`: We attempted, but were unable to find any employment in the connected account.  `EMPLOYER_NOT_LISTED`: The user explicitly indicated that they did not see their current or previous employer in the list of employer names found.  `STARTED`: The user began the bank income portion of the link flow.  `INTERNAL_ERROR`: The user encountered an internal error.
 * @export
 * @enum {string}
 */
export declare enum CreditSessionBankEmploymentStatus {
    Approved = "APPROVED",
    NoEmployersFound = "NO_EMPLOYERS_FOUND",
    EmployerNotListed = "EMPLOYER_NOT_LISTED"
}
/**
 * The details of a bank income verification in Link
 * @export
 * @interface CreditSessionBankIncomeResult
 */
export interface CreditSessionBankIncomeResult {
    /**
     *
     * @type {CreditSessionBankIncomeStatus}
     * @memberof CreditSessionBankIncomeResult
     */
    status?: CreditSessionBankIncomeStatus;
    /**
     * The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
     * @type {string}
     * @memberof CreditSessionBankIncomeResult
     */
    item_id?: string;
    /**
     * The Plaid Institution ID associated with the Item.
     * @type {string}
     * @memberof CreditSessionBankIncomeResult
     */
    institution_id?: string;
}
/**
 * Status of the Bank Income Link session.  `APPROVED`: User has approved and verified their income  `NO_DEPOSITS_FOUND`: We attempted, but were unable to find any income in the connected account.  `USER_REPORTED_NO_INCOME`: The user explicitly indicated that they don\'t receive income in the connected account.  `STARTED`: The user began the bank income portion of the link flow.  `INTERNAL_ERROR`: The user encountered an internal error.
 * @export
 * @enum {string}
 */
export declare enum CreditSessionBankIncomeStatus {
    Approved = "APPROVED",
    NoDepositsFound = "NO_DEPOSITS_FOUND",
    UserReportedNoIncome = "USER_REPORTED_NO_INCOME"
}
/**
 * The details of a document income verification in Link
 * @export
 * @interface CreditSessionDocumentIncomeResult
 */
export interface CreditSessionDocumentIncomeResult {
    /**
     * The number of paystubs uploaded by the user.
     * @type {number}
     * @memberof CreditSessionDocumentIncomeResult
     */
    num_paystubs_uploaded: number;
    /**
     * The number of w2s uploaded by the user.
     * @type {number}
     * @memberof CreditSessionDocumentIncomeResult
     */
    num_w2s_uploaded: number;
    /**
     * The number of bank statements uploaded by the user.
     * @type {number}
     * @memberof CreditSessionDocumentIncomeResult
     */
    num_bank_statements_uploaded: number;
    /**
     * The number of 1099s uploaded by the user
     * @type {number}
     * @memberof CreditSessionDocumentIncomeResult
     */
    num_1099s_uploaded: number;
}
/**
 * The details of a Link error.
 * @export
 * @interface CreditSessionError
 */
export interface CreditSessionError {
    /**
     * A broad categorization of the error.
     * @type {string}
     * @memberof CreditSessionError
     */
    error_type?: string;
    /**
     * The particular error code.
     * @type {string}
     * @memberof CreditSessionError
     */
    error_code?: string;
    /**
     * A developer-friendly representation of the error code.
     * @type {string}
     * @memberof CreditSessionError
     */
    error_message?: string;
    /**
     * A user-friendly representation of the error code. `null` if the error is not related to user action.
     * @type {string}
     * @memberof CreditSessionError
     */
    display_message?: string | null;
}
/**
 * The details of an Item add in Link.
 * @export
 * @interface CreditSessionItemAddResult
 */
export interface CreditSessionItemAddResult {
    /**
     * Returned once a user has successfully linked their Item.
     * @type {string}
     * @memberof CreditSessionItemAddResult
     */
    public_token?: string;
    /**
     * The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
     * @type {string}
     * @memberof CreditSessionItemAddResult
     */
    item_id?: string;
    /**
     * The Plaid Institution ID associated with the Item.
     * @type {string}
     * @memberof CreditSessionItemAddResult
     */
    institution_id?: string;
}
/**
 * The details of a digital payroll income verification in Link
 * @export
 * @interface CreditSessionPayrollIncomeResult
 */
export interface CreditSessionPayrollIncomeResult {
    /**
     * The number of paystubs retrieved from a payroll provider.
     * @type {number}
     * @memberof CreditSessionPayrollIncomeResult
     */
    num_paystubs_retrieved?: number;
    /**
     * The number of w2s retrieved from a payroll provider.
     * @type {number}
     * @memberof CreditSessionPayrollIncomeResult
     */
    num_w2s_retrieved?: number;
    /**
     * The Plaid Institution ID associated with the Item.
     * @type {string}
     * @memberof CreditSessionPayrollIncomeResult
     */
    institution_id?: string;
    /**
     * The Institution Name associated with the Item.
     * @type {string}
     * @memberof CreditSessionPayrollIncomeResult
     */
    institution_name?: string;
}
/**
 * The set of results for a Link session.
 * @export
 * @interface CreditSessionResults
 */
export interface CreditSessionResults {
    /**
     * The set of Item adds for the Link session.
     * @type {Array<CreditSessionItemAddResult>}
     * @memberof CreditSessionResults
     */
    item_add_results?: Array<CreditSessionItemAddResult>;
    /**
     * The set of bank income verifications for the Link session.
     * @type {Array<CreditSessionBankIncomeResult>}
     * @memberof CreditSessionResults
     */
    bank_income_results?: Array<CreditSessionBankIncomeResult>;
    /**
     * The set of bank employment verifications for the Link session.
     * @type {Array<CreditSessionBankEmploymentResult>}
     * @memberof CreditSessionResults
     */
    bank_employment_results?: Array<CreditSessionBankEmploymentResult>;
    /**
     * The set of payroll income verifications for the Link session.
     * @type {Array<CreditSessionPayrollIncomeResult>}
     * @memberof CreditSessionResults
     */
    payroll_income_results?: Array<CreditSessionPayrollIncomeResult>;
    /**
     *
     * @type {CreditSessionDocumentIncomeResult}
     * @memberof CreditSessionResults
     */
    document_income_results?: CreditSessionDocumentIncomeResult | null;
}
/**
 * CreditSessionsGetRequest defines the request schema for `/credit/sessions/get`
 * @export
 * @interface CreditSessionsGetRequest
 */
export interface CreditSessionsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof CreditSessionsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof CreditSessionsGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof CreditSessionsGetRequest
     */
    user_token: string;
}
/**
 * CreditSessionsGetResponse defines the response schema for `/credit/sessions/get`
 * @export
 * @interface CreditSessionsGetResponse
 */
export interface CreditSessionsGetResponse {
    /**
     * A list of Link sessions for the user. Sessions will be sorted in reverse chronological order.
     * @type {Array<CreditSession>}
     * @memberof CreditSessionsGetResponse
     */
    sessions?: Array<CreditSession>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof CreditSessionsGetResponse
     */
    request_id: string;
}
/**
 * W2 is an object that represents income data taken from a W2 tax document.
 * @export
 * @interface CreditW2
 */
export interface CreditW2 {
    /**
     *
     * @type {CreditDocumentMetadata}
     * @memberof CreditW2
     */
    document_metadata: CreditDocumentMetadata;
    /**
     * An identifier of the document referenced by the document metadata.
     * @type {string}
     * @memberof CreditW2
     */
    document_id: string;
    /**
     *
     * @type {CreditPayStubEmployer}
     * @memberof CreditW2
     */
    employer: CreditPayStubEmployer;
    /**
     *
     * @type {CreditPayStubEmployee}
     * @memberof CreditW2
     */
    employee: CreditPayStubEmployee;
    /**
     * The tax year of the W2 document.
     * @type {string}
     * @memberof CreditW2
     */
    tax_year: string | null;
    /**
     * An employee identification number or EIN.
     * @type {string}
     * @memberof CreditW2
     */
    employer_id_number: string | null;
    /**
     * Wages from tips and other compensation.
     * @type {string}
     * @memberof CreditW2
     */
    wages_tips_other_comp: string | null;
    /**
     * Federal income tax withheld for the tax year.
     * @type {string}
     * @memberof CreditW2
     */
    federal_income_tax_withheld: string | null;
    /**
     * Wages from social security.
     * @type {string}
     * @memberof CreditW2
     */
    social_security_wages: string | null;
    /**
     * Social security tax withheld for the tax year.
     * @type {string}
     * @memberof CreditW2
     */
    social_security_tax_withheld: string | null;
    /**
     * Wages and tips from medicare.
     * @type {string}
     * @memberof CreditW2
     */
    medicare_wages_and_tips: string | null;
    /**
     * Medicare tax withheld for the tax year.
     * @type {string}
     * @memberof CreditW2
     */
    medicare_tax_withheld: string | null;
    /**
     * Tips from social security.
     * @type {string}
     * @memberof CreditW2
     */
    social_security_tips: string | null;
    /**
     * Allocated tips.
     * @type {string}
     * @memberof CreditW2
     */
    allocated_tips: string | null;
    /**
     * Contents from box 9 on the W2.
     * @type {string}
     * @memberof CreditW2
     */
    box_9: string | null;
    /**
     * Dependent care benefits.
     * @type {string}
     * @memberof CreditW2
     */
    dependent_care_benefits: string | null;
    /**
     * Nonqualified plans.
     * @type {string}
     * @memberof CreditW2
     */
    nonqualified_plans: string | null;
    /**
     *
     * @type {Array<W2Box12>}
     * @memberof CreditW2
     */
    box_12: Array<W2Box12>;
    /**
     * Statutory employee.
     * @type {string}
     * @memberof CreditW2
     */
    statutory_employee: string | null;
    /**
     * Retirement plan.
     * @type {string}
     * @memberof CreditW2
     */
    retirement_plan: string | null;
    /**
     * Third party sick pay.
     * @type {string}
     * @memberof CreditW2
     */
    third_party_sick_pay: string | null;
    /**
     * Other.
     * @type {string}
     * @memberof CreditW2
     */
    other: string | null;
    /**
     *
     * @type {Array<W2StateAndLocalWages>}
     * @memberof CreditW2
     */
    state_and_local_wages: Array<W2StateAndLocalWages>;
}
/**
 * The object contains a risk score and a risk tier that evaluate the transaction return risk of an unauthorized debit. Common return codes in this category include: \"R05\", \"R07\", \"R10\", \"R11\", \"R29\". These returns typically have a return time frame of up to 60 calendar days. During this period, the customer of financial institutions can dispute a transaction as unauthorized.
 * @export
 * @interface CustomerInitiatedReturnRisk
 */
export interface CustomerInitiatedReturnRisk {
    /**
     * A score from 1-99 that indicates the transaction return risk: a higher risk score suggests a higher return likelihood.
     * @type {number}
     * @memberof CustomerInitiatedReturnRisk
     */
    score: number;
    /**
     * A tier corresponding to the projected likelihood that the transaction, if initiated, will be subject to a return.  In the `customer_initiated_return_risk` object, there are five risk tiers corresponding to the scores:   1: Predicted customer-initiated return incidence rate between 0.00% - 0.02%   2: Predicted customer-initiated return incidence rate between 0.02% - 0.05%   3: Predicted customer-initiated return incidence rate between 0.05% - 0.1%   4: Predicted customer-initiated return incidence rate between 0.1% - 0.5%   5: Predicted customer-initiated return incidence rate greater than 0.5%
     * @type {number}
     * @memberof CustomerInitiatedReturnRisk
     */
    risk_tier: number;
}
/**
 * Account information associated with a team member with access to the Plaid dashboard.
 * @export
 * @interface DashboardUser
 */
export interface DashboardUser {
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof DashboardUser
     */
    id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof DashboardUser
     */
    created_at: string;
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof DashboardUser
     */
    email_address: string;
    /**
     *
     * @type {DashboardUserStatus}
     * @memberof DashboardUser
     */
    status: DashboardUserStatus;
}
/**
 * Request input for fetching a dashboard user
 * @export
 * @interface DashboardUserGetRequest
 */
export interface DashboardUserGetRequest {
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof DashboardUserGetRequest
     */
    dashboard_user_id: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof DashboardUserGetRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof DashboardUserGetRequest
     */
    client_id?: string;
}
/**
 * Account information associated with a team member with access to the Plaid dashboard.
 * @export
 * @interface DashboardUserGetResponse
 */
export interface DashboardUserGetResponse {
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof DashboardUserGetResponse
     */
    id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof DashboardUserGetResponse
     */
    created_at: string;
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof DashboardUserGetResponse
     */
    email_address: string;
    /**
     *
     * @type {DashboardUserStatus}
     * @memberof DashboardUserGetResponse
     */
    status: DashboardUserStatus;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof DashboardUserGetResponse
     */
    request_id: string;
}
/**
 * Request input for listing dashboard users
 * @export
 * @interface DashboardUserListRequest
 */
export interface DashboardUserListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof DashboardUserListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof DashboardUserListRequest
     */
    client_id?: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof DashboardUserListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of dashboard users
 * @export
 * @interface DashboardUserListResponse
 */
export interface DashboardUserListResponse {
    /**
     * List of dashboard users
     * @type {Array<DashboardUser>}
     * @memberof DashboardUserListResponse
     */
    dashboard_users: Array<DashboardUser>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof DashboardUserListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof DashboardUserListResponse
     */
    request_id: string;
}
/**
 * The current status of the user.
 * @export
 * @enum {string}
 */
export declare enum DashboardUserStatus {
    Invited = "invited",
    Active = "active",
    Deactivated = "deactivated"
}
/**
 * A description of the source of data for a given product/data type.  `INSTITUTION`: The institution supports this product, and the data was provided by the institution. `INSTITUTION_MASK`: The user manually provided the full account number, which was matched to the account mask provided by the institution. Only applicable to the `numbers` data type. `USER`: The institution does not support this product, and the data was manually provided by the user.
 * @export
 * @enum {string}
 */
export declare enum DataSources {
    Institution = "INSTITUTION",
    InstitutionMask = "INSTITUTION_MASK",
    User = "USER"
}
/**
 * A date range with a start and end date
 * @export
 * @interface DateRange
 */
export interface DateRange {
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof DateRange
     */
    beginning: string;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof DateRange
     */
    ending: string;
}
/**
 * An object with the deduction information found on a paystub.
 * @export
 * @interface Deductions
 */
export interface Deductions {
    /**
     *
     * @type {Array<Total>}
     * @memberof Deductions
     * @deprecated
     */
    subtotals?: Array<Total>;
    /**
     *
     * @type {Array<DeductionsBreakdown>}
     * @memberof Deductions
     */
    breakdown: Array<DeductionsBreakdown>;
    /**
     *
     * @type {Array<Total>}
     * @memberof Deductions
     * @deprecated
     */
    totals?: Array<Total>;
    /**
     *
     * @type {DeductionsTotal}
     * @memberof Deductions
     */
    total: DeductionsTotal;
}
/**
 * An object representing the deduction line items for the pay period
 * @export
 * @interface DeductionsBreakdown
 */
export interface DeductionsBreakdown {
    /**
     * Raw amount of the deduction
     * @type {number}
     * @memberof DeductionsBreakdown
     */
    current_amount?: number | null;
    /**
     * Description of the deduction line item
     * @type {string}
     * @memberof DeductionsBreakdown
     */
    description?: string | null;
    /**
     * The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof DeductionsBreakdown
     */
    iso_currency_code?: string | null;
    /**
     * The unofficial currency code associated with the line item. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof DeductionsBreakdown
     */
    unofficial_currency_code?: string | null;
    /**
     * The year-to-date amount of the deduction
     * @type {number}
     * @memberof DeductionsBreakdown
     */
    ytd_amount?: number | null;
}
/**
 * An object representing the total deductions for the pay period
 * @export
 * @interface DeductionsTotal
 */
export interface DeductionsTotal {
    /**
     * Raw amount of the deduction
     * @type {number}
     * @memberof DeductionsTotal
     */
    current_amount?: number | null;
    /**
     * The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof DeductionsTotal
     */
    iso_currency_code?: string | null;
    /**
     * The unofficial currency code associated with the line item. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof DeductionsTotal
     */
    unofficial_currency_code?: string | null;
    /**
     * The year-to-date total amount of the deductions
     * @type {number}
     * @memberof DeductionsTotal
     */
    ytd_amount?: number | null;
}
/**
 * Fired when new transaction data is available for an Item. Plaid will typically check for new transaction data several times a day.  This webhook is intended for use with `/transactions/get`; if you are using the newer `/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
 * @export
 * @interface DefaultUpdateWebhook
 */
export interface DefaultUpdateWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof DefaultUpdateWebhook
     */
    webhook_type: string;
    /**
     * `DEFAULT_UPDATE`
     * @type {string}
     * @memberof DefaultUpdateWebhook
     */
    webhook_code: string;
    /**
     *
     * @type {PlaidError}
     * @memberof DefaultUpdateWebhook
     */
    error?: PlaidError | null;
    /**
     * The number of new transactions detected since the last time this webhook was fired.
     * @type {number}
     * @memberof DefaultUpdateWebhook
     */
    new_transactions: number;
    /**
     * The `item_id` of the Item the webhook relates to.
     * @type {string}
     * @memberof DefaultUpdateWebhook
     */
    item_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof DefaultUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * (Deprecated) The user\'s address.
 * @export
 * @interface DepositSwitchAddressData
 */
export interface DepositSwitchAddressData {
    /**
     * The full city name
     * @type {string}
     * @memberof DepositSwitchAddressData
     */
    city: string;
    /**
     * The region or state Example: `\"NC\"`
     * @type {string}
     * @memberof DepositSwitchAddressData
     */
    region: string;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof DepositSwitchAddressData
     */
    street: string;
    /**
     * The postal code
     * @type {string}
     * @memberof DepositSwitchAddressData
     */
    postal_code: string;
    /**
     * The ISO 3166-1 alpha-2 country code
     * @type {string}
     * @memberof DepositSwitchAddressData
     */
    country: string;
}
/**
 * (Deprecated) DepositSwitchAltCreateRequest defines the request schema for `/deposit_switch/alt/create`
 * @export
 * @interface DepositSwitchAltCreateRequest
 */
export interface DepositSwitchAltCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof DepositSwitchAltCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof DepositSwitchAltCreateRequest
     */
    secret?: string;
    /**
     *
     * @type {DepositSwitchTargetAccount}
     * @memberof DepositSwitchAltCreateRequest
     * @deprecated
     */
    target_account: DepositSwitchTargetAccount;
    /**
     *
     * @type {DepositSwitchTargetUser}
     * @memberof DepositSwitchAltCreateRequest
     * @deprecated
     */
    target_user: DepositSwitchTargetUser;
    /**
     *
     * @type {DepositSwitchCreateRequestOptions}
     * @memberof DepositSwitchAltCreateRequest
     * @deprecated
     */
    options?: DepositSwitchCreateRequestOptions;
    /**
     * ISO-3166-1 alpha-2 country code standard.
     * @type {string}
     * @memberof DepositSwitchAltCreateRequest
     */
    country_code?: DepositSwitchAltCreateRequestCountryCodeEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum DepositSwitchAltCreateRequestCountryCodeEnum {
    Us = "US",
    Ca = "CA"
}
/**
 * (Deprecated) DepositSwitchAltCreateResponse defines the response schema for `/deposit_switch/alt/create`
 * @export
 * @interface DepositSwitchAltCreateResponse
 */
export interface DepositSwitchAltCreateResponse {
    /**
     * ID of the deposit switch. This ID is persisted throughout the lifetime of the deposit switch.
     * @type {string}
     * @memberof DepositSwitchAltCreateResponse
     */
    deposit_switch_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof DepositSwitchAltCreateResponse
     */
    request_id: string;
}
/**
 * (Deprecated) DepositSwitchCreateRequest defines the request schema for `/deposit_switch/create`
 * @export
 * @interface DepositSwitchCreateRequest
 */
export interface DepositSwitchCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof DepositSwitchCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof DepositSwitchCreateRequest
     */
    secret?: string;
    /**
     * Access token for the target Item, typically provided in the Import Item response.
     * @type {string}
     * @memberof DepositSwitchCreateRequest
     */
    target_access_token: string;
    /**
     * Plaid Account ID that specifies the target bank account. This account will become the recipient for a user\'s direct deposit.
     * @type {string}
     * @memberof DepositSwitchCreateRequest
     */
    target_account_id: string;
    /**
     * ISO-3166-1 alpha-2 country code standard.
     * @type {string}
     * @memberof DepositSwitchCreateRequest
     */
    country_code?: DepositSwitchCreateRequestCountryCodeEnum;
    /**
     *
     * @type {DepositSwitchCreateRequestOptions}
     * @memberof DepositSwitchCreateRequest
     * @deprecated
     */
    options?: DepositSwitchCreateRequestOptions;
}
/**
    * @export
    * @enum {string}
    */
export declare enum DepositSwitchCreateRequestCountryCodeEnum {
    Us = "US",
    Ca = "CA"
}
/**
 * (Deprecated) Options to configure the `/deposit_switch/create` request. If provided, cannot be `null`.
 * @export
 * @interface DepositSwitchCreateRequestOptions
 */
export interface DepositSwitchCreateRequestOptions {
    /**
     * The URL registered to receive webhooks when the status of a deposit switch request has changed.
     * @type {string}
     * @memberof DepositSwitchCreateRequestOptions
     */
    webhook?: string | null;
    /**
     * An array of access tokens corresponding to transaction items to use when attempting to match the user to their Payroll Provider. These tokens must be created by the same client id as the one creating the switch, and have access to the transactions product.
     * @type {Array<string>}
     * @memberof DepositSwitchCreateRequestOptions
     */
    transaction_item_access_tokens?: Array<string>;
}
/**
 * (Deprecated) DepositSwitchCreateResponse defines the response schema for `/deposit_switch/create`
 * @export
 * @interface DepositSwitchCreateResponse
 */
export interface DepositSwitchCreateResponse {
    /**
     * ID of the deposit switch. This ID is persisted throughout the lifetime of the deposit switch.
     * @type {string}
     * @memberof DepositSwitchCreateResponse
     */
    deposit_switch_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof DepositSwitchCreateResponse
     */
    request_id: string;
}
/**
 * (Deprecated) DepositSwitchGetRequest defines the request schema for `/deposit_switch/get`
 * @export
 * @interface DepositSwitchGetRequest
 */
export interface DepositSwitchGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof DepositSwitchGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof DepositSwitchGetRequest
     */
    secret?: string;
    /**
     * The ID of the deposit switch
     * @type {string}
     * @memberof DepositSwitchGetRequest
     */
    deposit_switch_id: string;
}
/**
 * (Deprecated) DepositSwitchGetResponse defines the response schema for `/deposit_switch/get`
 * @export
 * @interface DepositSwitchGetResponse
 */
export interface DepositSwitchGetResponse {
    /**
     * The ID of the deposit switch.
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    deposit_switch_id: string;
    /**
     * The ID of the bank account the direct deposit was switched to.
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    target_account_id: string | null;
    /**
     * The ID of the Item the direct deposit was switched to.
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    target_item_id: string | null;
    /**
     *  The state, or status, of the deposit switch.  - `initialized` – The deposit switch has been initialized with the user entering the information required to submit the deposit switch request.  - `processing` – The deposit switch request has been submitted and is being processed.  - `completed` – The user\'s employer has fulfilled the deposit switch request.  - `error` – There was an error processing the deposit switch request.
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    state: DepositSwitchGetResponseStateEnum;
    /**
     * The method used to make the deposit switch.  - `instant` – User instantly switched their direct deposit to a new or existing bank account by connecting their payroll or employer account.  - `mail` – User requested that Plaid contact their employer by mail to make the direct deposit switch.  - `pdf` – User generated a PDF or email to be sent to their employer with the information necessary to make the deposit switch.\'
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    switch_method?: DepositSwitchGetResponseSwitchMethodEnum;
    /**
     * When `true`, user’s direct deposit goes to multiple banks. When false, user’s direct deposit only goes to the target account. Always `null` if the deposit switch has not been completed.
     * @type {boolean}
     * @memberof DepositSwitchGetResponse
     */
    account_has_multiple_allocations: boolean | null;
    /**
     * When `true`, the target account is allocated the remainder of direct deposit after all other allocations have been deducted. When `false`, user’s direct deposit is allocated as a percent or amount. Always `null` if the deposit switch has not been completed.
     * @type {boolean}
     * @memberof DepositSwitchGetResponse
     */
    is_allocated_remainder: boolean | null;
    /**
     * The percentage of direct deposit allocated to the target account. Always `null` if the target account is not allocated a percentage or if the deposit switch has not been completed or if `is_allocated_remainder` is true.
     * @type {number}
     * @memberof DepositSwitchGetResponse
     */
    percent_allocated: number | null;
    /**
     * The dollar amount of direct deposit allocated to the target account. Always `null` if the target account is not allocated an amount or if the deposit switch has not been completed.
     * @type {number}
     * @memberof DepositSwitchGetResponse
     */
    amount_allocated: number | null;
    /**
     * The name of the employer selected by the user. If the user did not select an employer, the value returned is `null`.
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    employer_name?: string | null;
    /**
     * The ID of the employer selected by the user. If the user did not select an employer, the value returned is `null`.
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    employer_id?: string | null;
    /**
     * The name of the institution selected by the user. If the user did not select an institution, the value returned is `null`.
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    institution_name?: string | null;
    /**
     * The ID of the institution selected by the user. If the user did not select an institution, the value returned is `null`.
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    institution_id?: string | null;
    /**
     * [ISO 8601](https://wikipedia.org/wiki/ISO_8601) date the deposit switch was created.
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    date_created: string;
    /**
     * [ISO 8601](https://wikipedia.org/wiki/ISO_8601) date the deposit switch was completed. Always `null` if the deposit switch has not been completed.
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    date_completed: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof DepositSwitchGetResponse
     */
    request_id: string;
}
/**
    * @export
    * @enum {string}
    */
export declare enum DepositSwitchGetResponseStateEnum {
    Initialized = "initialized",
    Processing = "processing",
    Completed = "completed",
    Error = "error"
}
/**
    * @export
    * @enum {string}
    */
export declare enum DepositSwitchGetResponseSwitchMethodEnum {
    Instant = "instant",
    Mail = "mail",
    Pdf = "pdf",
    Null = "null"
}
/**
 * (Deprecated) Fired when the status of a deposit switch request has changed.
 * @export
 * @interface DepositSwitchStateUpdateWebhook
 */
export interface DepositSwitchStateUpdateWebhook {
    /**
     * `\"DEPOSIT_SWITCH\"`
     * @type {string}
     * @memberof DepositSwitchStateUpdateWebhook
     */
    webhook_type?: string;
    /**
     * `\"SWITCH_STATE_UPDATE\"`
     * @type {string}
     * @memberof DepositSwitchStateUpdateWebhook
     */
    webhook_code?: string;
    /**
     *  The state, or status, of the deposit switch.  `initialized`: The deposit switch has been initialized with the user entering the information required to submit the deposit switch request.  `processing`: The deposit switch request has been submitted and is being processed.  `completed`: The user\'s employer has fulfilled and completed the deposit switch request.  `error`: There was an error processing the deposit switch request.  For more information, see the [Deposit Switch API reference](/docs/deposit-switch/reference#deposit_switchget).
     * @type {string}
     * @memberof DepositSwitchStateUpdateWebhook
     */
    state?: string;
    /**
     * The ID of the deposit switch.
     * @type {string}
     * @memberof DepositSwitchStateUpdateWebhook
     */
    deposit_switch_id?: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof DepositSwitchStateUpdateWebhook
     */
    environment?: WebhookEnvironmentValues;
}
/**
 * (Deprecated) The deposit switch destination account
 * @export
 * @interface DepositSwitchTargetAccount
 */
export interface DepositSwitchTargetAccount {
    /**
     * Account number for deposit switch destination
     * @type {string}
     * @memberof DepositSwitchTargetAccount
     */
    account_number: string;
    /**
     * Routing number for deposit switch destination
     * @type {string}
     * @memberof DepositSwitchTargetAccount
     */
    routing_number: string;
    /**
     * The name of the deposit switch destination account, as it will be displayed to the end user in the Deposit Switch interface. It is not required to match the name used in online banking.
     * @type {string}
     * @memberof DepositSwitchTargetAccount
     */
    account_name: string;
    /**
     * The account subtype of the account, either `checking` or `savings`.
     * @type {string}
     * @memberof DepositSwitchTargetAccount
     */
    account_subtype: DepositSwitchTargetAccountAccountSubtypeEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum DepositSwitchTargetAccountAccountSubtypeEnum {
    Checking = "checking",
    Savings = "savings"
}
/**
 * (Deprecated) The deposit switch target user
 * @export
 * @interface DepositSwitchTargetUser
 */
export interface DepositSwitchTargetUser {
    /**
     * The given name (first name) of the user.
     * @type {string}
     * @memberof DepositSwitchTargetUser
     */
    given_name: string;
    /**
     * The family name (last name) of the user.
     * @type {string}
     * @memberof DepositSwitchTargetUser
     */
    family_name: string;
    /**
     * The phone number of the user. The endpoint can accept a variety of phone number formats, including E.164.
     * @type {string}
     * @memberof DepositSwitchTargetUser
     */
    phone: string;
    /**
     * The email address of the user.
     * @type {string}
     * @memberof DepositSwitchTargetUser
     */
    email: string;
    /**
     *
     * @type {DepositSwitchAddressData}
     * @memberof DepositSwitchTargetUser
     * @deprecated
     */
    address?: DepositSwitchAddressData;
    /**
     * The taxpayer ID of the user, generally their SSN, EIN, or TIN.
     * @type {string}
     * @memberof DepositSwitchTargetUser
     */
    tax_payer_id?: string;
}
/**
 * (Deprecated) DepositSwitchTokenCreateRequest defines the request schema for `/deposit_switch/token/create`
 * @export
 * @interface DepositSwitchTokenCreateRequest
 */
export interface DepositSwitchTokenCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof DepositSwitchTokenCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof DepositSwitchTokenCreateRequest
     */
    secret?: string;
    /**
     * The ID of the deposit switch
     * @type {string}
     * @memberof DepositSwitchTokenCreateRequest
     */
    deposit_switch_id: string;
}
/**
 * (Deprecated) DepositSwitchTokenCreateResponse defines the response schema for `/deposit_switch/token/create`
 * @export
 * @interface DepositSwitchTokenCreateResponse
 */
export interface DepositSwitchTokenCreateResponse {
    /**
     * Deposit switch token, used to initialize Link for the Deposit Switch product
     * @type {string}
     * @memberof DepositSwitchTokenCreateResponse
     */
    deposit_switch_token: string;
    /**
     * Expiration time of the token, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format
     * @type {string}
     * @memberof DepositSwitchTokenCreateResponse
     */
    deposit_switch_token_expiration_time: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof DepositSwitchTokenCreateResponse
     */
    request_id: string;
}
/**
 * Valid account subtypes for depository accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-depository).
 * @export
 * @enum {string}
 */
export declare enum DepositoryAccountSubtype {
    Checking = "checking",
    Savings = "savings",
    Hsa = "hsa",
    Cd = "cd",
    MoneyMarket = "money market",
    Paypal = "paypal",
    Prepaid = "prepaid",
    CashManagement = "cash management",
    Ebt = "ebt",
    All = "all"
}
/**
 * A filter to apply to `depository`-type accounts
 * @export
 * @interface DepositoryFilter
 */
export interface DepositoryFilter {
    /**
     * An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {Array<DepositoryAccountSubtype>}
     * @memberof DepositoryFilter
     */
    account_subtypes: Array<DepositoryAccountSubtype>;
}
/**
 * Originator and their status.
 * @export
 * @interface DetailedOriginator
 */
export interface DetailedOriginator {
    /**
     * Originator’s client ID.
     * @type {string}
     * @memberof DetailedOriginator
     */
    client_id: string;
    /**
     *
     * @type {TransferDiligenceStatus}
     * @memberof DetailedOriginator
     */
    transfer_diligence_status: TransferDiligenceStatus;
    /**
     * The company name of the end customer.
     * @type {string}
     * @memberof DetailedOriginator
     */
    company_name: string;
    /**
     * List of outstanding requirements for scaled platform originators. Only populated when `transfer_diligence_status` is `more_information_required`.
     * @type {Array<TransferPlatformRequirement>}
     * @memberof DetailedOriginator
     */
    outstanding_requirements?: Array<TransferPlatformRequirement>;
}
/**
 * A possible account detected to be associated with a transaction user.
 * @export
 * @interface DetectedAccount
 */
export interface DetectedAccount {
    /**
     * The detected account type (depository, credit, loan, investment etc.).
     * @type {string}
     * @memberof DetectedAccount
     */
    account_type: string | null;
    /**
     * The detected subtype of the account, based on the transactions to/from the institution.
     * @type {string}
     * @memberof DetectedAccount
     */
    account_subtype: string | null;
    /**
     * The number of transactions associated with this detected account type at this financial institution.
     * @type {number}
     * @memberof DetectedAccount
     */
    transaction_count: number;
    /**
     * The date of the oldest transaction associated with this detected account type at this financial institution.
     * @type {string}
     * @memberof DetectedAccount
     */
    oldest_transaction_date?: string;
    /**
     * The date of the newest transaction associated with this detected account type at this financial institution.
     * @type {string}
     * @memberof DetectedAccount
     */
    newest_transaction_date?: string;
    /**
     * Amount of the most recent transaction associated with this detected account type at this financial institution.
     * @type {number}
     * @memberof DetectedAccount
     */
    newest_transaction_amount?: number;
    /**
     * Sum of outflow amounts associated with this detected account type at this financial institution.
     * @type {number}
     * @memberof DetectedAccount
     */
    total_outflows: number;
    /**
     * Sum of inflow amounts associated with this detected account type at this financial institution.
     * @type {number}
     * @memberof DetectedAccount
     */
    total_inflows: number;
}
/**
 * Device Id associated with the device used during the previous link session
 * @export
 * @interface DeviceId
 */
export interface DeviceId {
    /**
     *
     * @type {number}
     * @memberof DeviceId
     */
    type?: number;
    /**
     * Identifier for the device
     * @type {string}
     * @memberof DeviceId
     */
    id?: string;
}
/**
 * Information about the accounts that the payment was distributed to.
 * @export
 * @interface DistributionBreakdown
 */
export interface DistributionBreakdown {
    /**
     * Name of the account for the given distribution.
     * @type {string}
     * @memberof DistributionBreakdown
     */
    account_name?: string | null;
    /**
     * The name of the bank that the payment is being deposited to.
     * @type {string}
     * @memberof DistributionBreakdown
     */
    bank_name?: string | null;
    /**
     * The amount distributed to this account.
     * @type {number}
     * @memberof DistributionBreakdown
     */
    current_amount?: number | null;
    /**
     * The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof DistributionBreakdown
     */
    iso_currency_code?: string | null;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number.
     * @type {string}
     * @memberof DistributionBreakdown
     */
    mask?: string | null;
    /**
     * Type of the account that the paystub was sent to (e.g. \'checking\').
     * @type {string}
     * @memberof DistributionBreakdown
     */
    type?: string | null;
    /**
     * The unofficial currency code associated with the net pay. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof DistributionBreakdown
     */
    unofficial_currency_code?: string | null;
    /**
     *
     * @type {Pay}
     * @memberof DistributionBreakdown
     * @deprecated
     */
    current_pay?: Pay;
}
/**
 * The type of document.  `DOCUMENT_TYPE_PAYSTUB`: A paystub.  `DOCUMENT_TYPE_BANK_STATEMENT`: A bank statement.  `DOCUMENT_TYPE_US_TAX_W2`: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee.  `DOCUMENT_TYPE_US_MILITARY_ERAS`: An electronic Retirement Account Statement (eRAS) issued by the US military.  `DOCUMENT_TYPE_US_MILITARY_LES`: A Leave and Earnings Statement (LES) issued by the US military.  `DOCUMENT_TYPE_US_MILITARY_CLES`: A Civilian Leave and Earnings Statement (CLES) issued by the US military.  `DOCUMENT_TYPE_GIG`: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type.  `DOCUMENT_TYPE_NONE`: Used to indicate that there is no underlying document for the data.  `DOCUMENT_TYPE_PLAID_GENERATED_PAYSTUB_PDF`: Used to indicate that the PDF for the paystub was generated by Plaid.  `UNKNOWN`: Document type could not be determined.
 * @export
 * @enum {string}
 */
export declare enum DocType {
    Unknown = "UNKNOWN",
    DocumentTypePaystub = "DOCUMENT_TYPE_PAYSTUB",
    DocumentTypeBankStatement = "DOCUMENT_TYPE_BANK_STATEMENT",
    DocumentTypeUsTaxW2 = "DOCUMENT_TYPE_US_TAX_W2",
    DocumentTypeUsMilitaryEras = "DOCUMENT_TYPE_US_MILITARY_ERAS",
    DocumentTypeUsMilitaryLes = "DOCUMENT_TYPE_US_MILITARY_LES",
    DocumentTypeUsMilitaryCles = "DOCUMENT_TYPE_US_MILITARY_CLES",
    DocumentTypeGig = "DOCUMENT_TYPE_GIG",
    DocumentTypeNone = "DOCUMENT_TYPE_NONE",
    DocumentTypeUsTax1099Misc = "DOCUMENT_TYPE_US_TAX_1099_MISC",
    DocumentTypeUsTax1099K = "DOCUMENT_TYPE_US_TAX_1099_K",
    DocumentTypePlaidGeneratedPaystubPdf = "DOCUMENT_TYPE_PLAID_GENERATED_PAYSTUB_PDF"
}
/**
 * High level descriptions of how the associated document was processed. If a document fails verification, the details in the `analysis` object should help clarify why the document was rejected.
 * @export
 * @interface DocumentAnalysis
 */
export interface DocumentAnalysis {
    /**
     *
     * @type {DocumentAuthenticityMatchCode}
     * @memberof DocumentAnalysis
     */
    authenticity: DocumentAuthenticityMatchCode;
    /**
     *
     * @type {ImageQuality}
     * @memberof DocumentAnalysis
     */
    image_quality: ImageQuality;
    /**
     *
     * @type {PhysicalDocumentExtractedDataAnalysis}
     * @memberof DocumentAnalysis
     */
    extracted_data: PhysicalDocumentExtractedDataAnalysis | null;
    /**
     *
     * @type {FraudAnalysisDetails}
     * @memberof DocumentAnalysis
     */
    fraud_analysis_details?: FraudAnalysisDetails | null;
    /**
     *
     * @type {ImageQualityDetails}
     * @memberof DocumentAnalysis
     */
    image_quality_details?: ImageQualityDetails | null;
}
/**
 * High level summary of whether the document in the provided image matches the formatting rules and security checks for the associated jurisdiction.  For example, most identity documents have formatting rules like the following:   The image of the person\'s face must have a certain contrast in order to highlight skin tone   The subject in the document\'s image must remove eye glasses and pose in a certain way   The informational fields (name, date of birth, ID number, etc.) must be colored and aligned according to specific rules   Security features like watermarks and background patterns must be present  So a `match` status for this field indicates that the document in the provided image seems to conform to the various formatting and security rules associated with the detected document.
 * @export
 * @enum {string}
 */
export declare enum DocumentAuthenticityMatchCode {
    Match = "match",
    PartialMatch = "partial_match",
    NoMatch = "no_match",
    NoData = "no_data"
}
/**
 * A match summary describing the cross comparison between the subject\'s date of birth, extracted from the document image, and the date of birth they separately provided to the identity verification attempt.
 * @export
 * @enum {string}
 */
export declare enum DocumentDateOfBirthMatchCode {
    Match = "match",
    PartialMatch = "partial_match",
    NoMatch = "no_match",
    NoData = "no_data"
}
/**
 * An object representing metadata from the end user\'s uploaded document.
 * @export
 * @interface DocumentMetadata
 */
export interface DocumentMetadata {
    /**
     * The name of the document.
     * @type {string}
     * @memberof DocumentMetadata
     */
    name?: string;
    /**
     * The processing status of the document.  `PROCESSING_COMPLETE`: The document was successfully processed.  `DOCUMENT_ERROR`: The document could not be processed. Possible causes include: The document was an unacceptable document type such as an offer letter or bank statement, the document image was cropped or blurry, or the document was corrupted.  `UNKNOWN` or `null`: An internal error occurred. If this happens repeatedly, contact support or your Plaid account manager.
     * @type {string}
     * @memberof DocumentMetadata
     */
    status?: string | null;
    /**
     * An identifier of the document that is also present in the paystub response.
     * @type {string}
     * @memberof DocumentMetadata
     */
    doc_id?: string;
    /**
     *
     * @type {DocType}
     * @memberof DocumentMetadata
     */
    doc_type?: DocType;
}
/**
 * A match summary describing the cross comparison between the subject\'s name, extracted from the document image, and the name they separately provided to identity verification attempt.
 * @export
 * @enum {string}
 */
export declare enum DocumentNameMatchCode {
    Match = "match",
    PartialMatch = "partial_match",
    NoMatch = "no_match",
    NoData = "no_data"
}
/**
 * Details about a certain reason as to why a document could potentially be fraudulent.
 * @export
 * @interface DocumentRiskSignal
 */
export interface DocumentRiskSignal {
    /**
     * The type of risk found in the risk signal check.
     * @type {string}
     * @memberof DocumentRiskSignal
     */
    type: string | null;
    /**
     * The field which the risk signal was computed for
     * @type {string}
     * @memberof DocumentRiskSignal
     */
    field: string | null;
    /**
     * A flag used to quickly identify if the signal indicates that this field is authentic or fraudulent
     * @type {boolean}
     * @memberof DocumentRiskSignal
     */
    has_fraud_risk: boolean | null;
    /**
     *
     * @type {DocumentRiskSignalInstitutionMetadata}
     * @memberof DocumentRiskSignal
     */
    institution_metadata: DocumentRiskSignalInstitutionMetadata | null;
    /**
     * The expected value of the field, as seen on the document
     * @type {string}
     * @memberof DocumentRiskSignal
     */
    expected_value: string | null;
    /**
     * The derived value obtained in the risk signal calculation process for this field
     * @type {string}
     * @memberof DocumentRiskSignal
     */
    actual_value: string | null;
    /**
     * A human-readable explanation providing more detail into the particular risk signal
     * @type {string}
     * @memberof DocumentRiskSignal
     */
    signal_description: string | null;
    /**
     * The relevant page associated with the risk signal. If the risk signal is not associated with a specific page, the value will be 0.
     * @type {number}
     * @memberof DocumentRiskSignal
     */
    page_number: number | null;
}
/**
 * An object which contains additional metadata about the institution used to compute the verification attribute
 * @export
 * @interface DocumentRiskSignalInstitutionMetadata
 */
export interface DocumentRiskSignalInstitutionMetadata {
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof DocumentRiskSignalInstitutionMetadata
     */
    item_id: string;
}
/**
 * Object containing fraud risk data for a set of income documents.
 * @export
 * @interface DocumentRiskSignalsObject
 */
export interface DocumentRiskSignalsObject {
    /**
     * ID of the payroll provider account.
     * @type {string}
     * @memberof DocumentRiskSignalsObject
     */
    account_id: string | null;
    /**
     * Array of document metadata and associated risk signals per document
     * @type {Array<SingleDocumentRiskSignal>}
     * @memberof DocumentRiskSignalsObject
     */
    single_document_risk_signals: Array<SingleDocumentRiskSignal>;
    /**
     * Array of risk signals computed from a set of uploaded documents and the associated documents\' metadata
     * @type {Array<MultiDocumentRiskSignal>}
     * @memberof DocumentRiskSignalsObject
     */
    multi_document_risk_signals: Array<MultiDocumentRiskSignal>;
}
/**
 * A summary across all risk signals associated with a document
 * @export
 * @interface DocumentRiskSummary
 */
export interface DocumentRiskSummary {
    /**
     * A number between 0 and 100, inclusive, where a score closer to 0 indicates a document is likely to be trustworthy and a score closer to 100 indicates a document is likely to be fraudulent. You can automatically reject documents with a high risk score, automatically accept documents with a low risk score, and manually review documents in between. We suggest starting with a threshold of 80 for auto-rejection and 20 for auto-acceptance. As you gather more data points on typical risk scores for your use case, you can tune these parameters to reduce the number of documents undergoing manual review.
     * @type {number}
     * @memberof DocumentRiskSummary
     */
    risk_score: number | null;
}
/**
 * An outcome status for this specific document submission. Distinct from the overall `documentary_verification.status` that summarizes the verification outcome from one or more documents.
 * @export
 * @enum {string}
 */
export declare enum DocumentStatus {
    Success = "success",
    Failed = "failed",
    ManuallyApproved = "manually_approved"
}
/**
 * Data, images, analysis, and results from the `documentary_verification` step. This field will be `null` unless `steps.documentary_verification` has reached a terminal state of either `success` or `failed`.
 * @export
 * @interface DocumentaryVerification
 */
export interface DocumentaryVerification {
    /**
     * The outcome status for the associated Identity Verification attempt\'s `documentary_verification` step. This field will always have the same value as `steps.documentary_verification`.
     * @type {string}
     * @memberof DocumentaryVerification
     */
    status: string;
    /**
     * An array of documents submitted to the `documentary_verification` step. Each entry represents one user submission, where each submission will contain both a front and back image, or just a front image, depending on the document type.  Note: Plaid will automatically let a user submit a new set of document images up to three times if we detect that a previous attempt might have failed due to user error. For example, if the first set of document images are blurry or obscured by glare, the user will be asked to capture their documents again, resulting in at least two separate entries within `documents`. If the overall `documentary_verification` is `failed`, the user has exhausted their retry attempts.
     * @type {Array<DocumentaryVerificationDocument>}
     * @memberof DocumentaryVerification
     */
    documents: Array<DocumentaryVerificationDocument>;
}
/**
 * Images, extracted data, and analysis from a user\'s identity document
 * @export
 * @interface DocumentaryVerificationDocument
 */
export interface DocumentaryVerificationDocument {
    /**
     *
     * @type {DocumentStatus}
     * @memberof DocumentaryVerificationDocument
     */
    status: DocumentStatus;
    /**
     * The `attempt` field begins with 1 and increments with each subsequent document upload.
     * @type {number}
     * @memberof DocumentaryVerificationDocument
     */
    attempt: number;
    /**
     *
     * @type {PhysicalDocumentImages}
     * @memberof DocumentaryVerificationDocument
     */
    images: PhysicalDocumentImages;
    /**
     *
     * @type {PhysicalDocumentExtractedData}
     * @memberof DocumentaryVerificationDocument
     */
    extracted_data: PhysicalDocumentExtractedData | null;
    /**
     *
     * @type {DocumentAnalysis}
     * @memberof DocumentaryVerificationDocument
     */
    analysis: DocumentAnalysis;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof DocumentaryVerificationDocument
     */
    redacted_at: string | null;
}
/**
 * An object representing both a breakdown of earnings on a paystub and the total earnings.
 * @export
 * @interface Earnings
 */
export interface Earnings {
    /**
     *
     * @type {Array<EarningsTotal>}
     * @memberof Earnings
     * @deprecated
     */
    subtotals?: Array<EarningsTotal>;
    /**
     *
     * @type {Array<EarningsTotal>}
     * @memberof Earnings
     * @deprecated
     */
    totals?: Array<EarningsTotal>;
    /**
     *
     * @type {Array<EarningsBreakdown>}
     * @memberof Earnings
     */
    breakdown?: Array<EarningsBreakdown>;
    /**
     *
     * @type {EarningsTotal}
     * @memberof Earnings
     */
    total?: EarningsTotal;
}
/**
 * An object representing the earnings line items for the pay period.
 * @export
 * @interface EarningsBreakdown
 */
export interface EarningsBreakdown {
    /**
     *
     * @type {EarningsBreakdownCanonicalDescription}
     * @memberof EarningsBreakdown
     */
    canonical_description?: EarningsBreakdownCanonicalDescription | null;
    /**
     * Raw amount of the earning line item.
     * @type {number}
     * @memberof EarningsBreakdown
     */
    current_amount?: number | null;
    /**
     * Description of the earning line item.
     * @type {string}
     * @memberof EarningsBreakdown
     */
    description?: string | null;
    /**
     * Number of hours applicable for this earning.
     * @type {number}
     * @memberof EarningsBreakdown
     */
    hours?: number | null;
    /**
     * The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof EarningsBreakdown
     */
    iso_currency_code?: string | null;
    /**
     * Hourly rate applicable for this earning.
     * @type {number}
     * @memberof EarningsBreakdown
     */
    rate?: number | null;
    /**
     * The unofficial currency code associated with the line item. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof EarningsBreakdown
     */
    unofficial_currency_code?: string | null;
    /**
     * The year-to-date amount of the deduction.
     * @type {number}
     * @memberof EarningsBreakdown
     */
    ytd_amount?: number | null;
}
/**
 * Commonly used term to describe the earning line item.
 * @export
 * @enum {string}
 */
export declare enum EarningsBreakdownCanonicalDescription {
    Bonus = "BONUS",
    Commission = "COMMISSION",
    Overtime = "OVERTIME",
    PaidTimeOff = "PAID TIME OFF",
    RegularPay = "REGULAR PAY",
    Vacation = "VACATION",
    BasicAllowanceHousing = "BASIC ALLOWANCE HOUSING",
    BasicAllowanceSubsistence = "BASIC ALLOWANCE SUBSISTENCE",
    Other = "OTHER",
    Null = "null"
}
/**
 * An object representing both the current pay period and year to date amount for an earning category.
 * @export
 * @interface EarningsTotal
 */
export interface EarningsTotal {
    /**
     * Total amount of the earnings for this pay period
     * @type {number}
     * @memberof EarningsTotal
     */
    current_amount?: number | null;
    /**
     *
     * @type {Pay}
     * @memberof EarningsTotal
     * @deprecated
     */
    current_pay?: Pay;
    /**
     *
     * @type {Pay}
     * @memberof EarningsTotal
     * @deprecated
     */
    ytd_pay?: Pay;
    /**
     * Total number of hours worked for this pay period
     * @type {number}
     * @memberof EarningsTotal
     */
    hours?: number | null;
    /**
     * The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof EarningsTotal
     */
    iso_currency_code?: string | null;
    /**
     * The unofficial currency code associated with the security. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof EarningsTotal
     */
    unofficial_currency_code?: string | null;
    /**
     * The total year-to-date amount of the earnings
     * @type {number}
     * @memberof EarningsTotal
     */
    ytd_amount?: number | null;
}
/**
 * An object representing an email address
 * @export
 * @interface Email
 */
export interface Email {
    /**
     * The email address.
     * @type {string}
     * @memberof Email
     */
    data: string;
    /**
     * When `true`, identifies the email address as the primary email on an account.
     * @type {boolean}
     * @memberof Email
     */
    primary: boolean;
    /**
     * The type of email account as described by the financial institution.
     * @type {string}
     * @memberof Email
     */
    type: EmailTypeEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum EmailTypeEnum {
    Primary = "primary",
    Secondary = "secondary",
    Other = "other"
}
/**
 * Score found by matching email provided by the API with the email on the account at the financial institution. 100 is a perfect match and 0 is a no match. If the account contains multiple owners, the maximum match score is filled.
 * @export
 * @interface EmailAddressMatchScore
 */
export interface EmailAddressMatchScore {
    /**
     * Match score for normalized email. 100 is a perfect match, 99-70 is a partial match (matching the same email with different \'+\' extensions), anything below 70 is considered a mismatch. Typically, the match threshold should be set to a score of 70 or higher. If the email is missing from either the API or financial institution, this is null.
     * @type {number}
     * @memberof EmailAddressMatchScore
     */
    score?: number | null;
}
/**
 * Data about the employee.
 * @export
 * @interface Employee
 */
export interface Employee {
    /**
     *
     * @type {PaystubAddress}
     * @memberof Employee
     */
    address: PaystubAddress;
    /**
     * The name of the employee.
     * @type {string}
     * @memberof Employee
     */
    name: string | null;
    /**
     * Marital status of the employee - either `single` or `married`.
     * @type {string}
     * @memberof Employee
     */
    marital_status?: string | null;
    /**
     *
     * @type {TaxpayerID}
     * @memberof Employee
     */
    taxpayer_id?: TaxpayerID;
}
/**
 * The name of the employee, as reported on the paystub.
 * @export
 * @interface EmployeeIncomeSummaryFieldString
 */
export interface EmployeeIncomeSummaryFieldString {
    /**
     * The value of the field.
     * @type {string}
     * @memberof EmployeeIncomeSummaryFieldString
     */
    value: string;
    /**
     *
     * @type {VerificationStatus}
     * @memberof EmployeeIncomeSummaryFieldString
     */
    verification_status: VerificationStatus;
}
/**
 * Data about the employer.
 * @export
 * @interface Employer
 */
export interface Employer {
    /**
     * Plaid\'s unique identifier for the employer.
     * @type {string}
     * @memberof Employer
     */
    employer_id: string;
    /**
     * The name of the employer
     * @type {string}
     * @memberof Employer
     */
    name: string;
    /**
     *
     * @type {AddressDataNullable}
     * @memberof Employer
     */
    address: AddressDataNullable | null;
    /**
     * A number from 0 to 1 indicating Plaid\'s level of confidence in the pairing between the employer and the institution (not yet implemented).
     * @type {number}
     * @memberof Employer
     */
    confidence_score: number;
}
/**
 * The name of the employer, as reported on the paystub.
 * @export
 * @interface EmployerIncomeSummaryFieldString
 */
export interface EmployerIncomeSummaryFieldString {
    /**
     * The value of the field.
     * @type {string}
     * @memberof EmployerIncomeSummaryFieldString
     */
    value: string;
    /**
     *
     * @type {VerificationStatus}
     * @memberof EmployerIncomeSummaryFieldString
     */
    verification_status: VerificationStatus;
}
/**
 * An object containing employer data.
 * @export
 * @interface EmployerVerification
 */
export interface EmployerVerification {
    /**
     * Name of employer.
     * @type {string}
     * @memberof EmployerVerification
     */
    name?: string | null;
}
/**
 * EmployersSearchRequest defines the request schema for `/employers/search`.
 * @export
 * @interface EmployersSearchRequest
 */
export interface EmployersSearchRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof EmployersSearchRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof EmployersSearchRequest
     */
    secret?: string;
    /**
     * The employer name to be searched for.
     * @type {string}
     * @memberof EmployersSearchRequest
     */
    query: string;
    /**
     * The Plaid products the returned employers should support. Currently, this field must be set to `\"deposit_switch\"`.
     * @type {Array<string>}
     * @memberof EmployersSearchRequest
     */
    products: Array<string>;
}
/**
 * EmployersSearchResponse defines the response schema for `/employers/search`.
 * @export
 * @interface EmployersSearchResponse
 */
export interface EmployersSearchResponse {
    /**
     * A list of employers matching the search criteria.
     * @type {Array<Employer>}
     * @memberof EmployersSearchResponse
     */
    employers: Array<Employer>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof EmployersSearchResponse
     */
    request_id: string;
}
/**
 * An object representing employment details found on a paystub.
 * @export
 * @interface EmploymentDetails
 */
export interface EmploymentDetails {
    /**
     *
     * @type {Pay}
     * @memberof EmploymentDetails
     * @deprecated
     */
    annual_salary?: Pay;
    /**
     * Date on which the employee was hired, in the YYYY-MM-DD format.
     * @type {string}
     * @memberof EmploymentDetails
     */
    hire_date?: string | null;
}
/**
 * The types of source employment data that users should be able to share
 * @export
 * @enum {string}
 */
export declare enum EmploymentSourceType {
    Bank = "bank",
    Payroll = "payroll"
}
/**
 * An object containing proof of employment data for an individual
 * @export
 * @interface EmploymentVerification
 */
export interface EmploymentVerification {
    /**
     *
     * @type {EmploymentVerificationStatus}
     * @memberof EmploymentVerification
     */
    status?: EmploymentVerificationStatus | null;
    /**
     * Start of employment in ISO 8601 format (YYYY-MM-DD).
     * @type {string}
     * @memberof EmploymentVerification
     */
    start_date?: string | null;
    /**
     * End of employment, if applicable. Provided in ISO 8601 format (YYY-MM-DD).
     * @type {string}
     * @memberof EmploymentVerification
     */
    end_date?: string | null;
    /**
     *
     * @type {EmployerVerification}
     * @memberof EmploymentVerification
     */
    employer?: EmployerVerification;
    /**
     * Current title of employee.
     * @type {string}
     * @memberof EmploymentVerification
     */
    title?: string | null;
    /**
     *
     * @type {PlatformIds}
     * @memberof EmploymentVerification
     */
    platform_ids?: PlatformIds;
}
/**
 * EmploymentVerificationGetRequest defines the request schema for `/employment/verification/get`.
 * @export
 * @interface EmploymentVerificationGetRequest
 */
export interface EmploymentVerificationGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof EmploymentVerificationGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof EmploymentVerificationGetRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof EmploymentVerificationGetRequest
     */
    access_token: string;
}
/**
 * EmploymentVerificationGetResponse defines the response schema for `/employment/verification/get`.
 * @export
 * @interface EmploymentVerificationGetResponse
 */
export interface EmploymentVerificationGetResponse {
    /**
     * A list of employment verification summaries.
     * @type {Array<EmploymentVerification>}
     * @memberof EmploymentVerificationGetResponse
     */
    employments: Array<EmploymentVerification>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof EmploymentVerificationGetResponse
     */
    request_id: string;
}
/**
 * Current employment status.
 * @export
 * @enum {string}
 */
export declare enum EmploymentVerificationStatus {
    EmploymentStatusActive = "EMPLOYMENT_STATUS_ACTIVE",
    EmploymentStatusInactive = "EMPLOYMENT_STATUS_INACTIVE",
    Null = "null"
}
/**
 * A grouping of the Plaid produced transaction enhancement fields.
 * @export
 * @interface Enhancements
 */
export interface Enhancements {
    /**
     * The name of the primary counterparty, such as the merchant or the financial institution, as extracted by Plaid from the raw description.
     * @type {string}
     * @memberof Enhancements
     */
    merchant_name?: string | null;
    /**
     * The website associated with this transaction, if available.
     * @type {string}
     * @memberof Enhancements
     */
    website?: string | null;
    /**
     * The URL of a logo associated with this transaction, if available. The logo will always be 100×100 pixel PNG file.
     * @type {string}
     * @memberof Enhancements
     */
    logo_url?: string | null;
    /**
     * The check number of the transaction. This field is only populated for check transactions.
     * @type {string}
     * @memberof Enhancements
     */
    check_number?: string | null;
    /**
     *
     * @type {PaymentChannel}
     * @memberof Enhancements
     */
    payment_channel: PaymentChannel;
    /**
     * The ID of the category to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).
     * @type {string}
     * @memberof Enhancements
     */
    category_id: string | null;
    /**
     * A hierarchical array of the categories to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).
     * @type {Array<string>}
     * @memberof Enhancements
     */
    category: Array<string>;
    /**
     *
     * @type {Location}
     * @memberof Enhancements
     */
    location: Location;
    /**
     *
     * @type {PersonalFinanceCategory}
     * @memberof Enhancements
     */
    personal_finance_category?: PersonalFinanceCategory | null;
    /**
     * The URL of an icon associated with the primary personal finance category. The icon will always be 100×100 pixel PNG file.
     * @type {string}
     * @memberof Enhancements
     */
    personal_finance_category_icon_url?: string;
    /**
     * The counterparties present in the transaction. Counterparties, such as the merchant or the financial institution, are extracted by Plaid from the raw description.
     * @type {Array<Counterparty>}
     * @memberof Enhancements
     */
    counterparties?: Array<Counterparty>;
}
/**
 * The direction of the transaction from the perspective of the account holder:  `OUTFLOW` - Includes outgoing transfers, purchases, and fees. (Typically represented as a negative value on checking accounts and debit cards and a positive value on credit cards.)  `INFLOW` - Includes incoming transfers, refunds, and income. (Typically represented as a positive value on checking accounts and debit cards and a negative value on credit cards.)
 * @export
 * @enum {string}
 */
export declare enum EnrichTransactionDirection {
    Inflow = "INFLOW",
    Outflow = "OUTFLOW"
}
/**
 * A grouping of the Plaid produced transaction enrichment fields.
 * @export
 * @interface Enrichments
 */
export interface Enrichments {
    /**
     * The check number of the transaction. This field is only populated for check transactions.
     * @type {string}
     * @memberof Enrichments
     */
    check_number?: string | null;
    /**
     * The counterparties present in the transaction. Counterparties, such as the merchant or the financial institution, are extracted by Plaid from the raw description.
     * @type {Array<Counterparty>}
     * @memberof Enrichments
     */
    counterparties: Array<Counterparty>;
    /**
     * A unique, stable, Plaid-generated ID that maps to the primary counterparty.
     * @type {string}
     * @memberof Enrichments
     */
    entity_id?: string | null;
    /**
     * The ID of the legacy category to which this transaction belongs. For a full list of legacy categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).  We recommend using the `personal_finance_category` for transaction categorization to obtain the best results.
     * @type {string}
     * @memberof Enrichments
     * @deprecated
     */
    legacy_category_id?: string | null;
    /**
     * A hierarchical array of the legacy categories to which this transaction belongs. For a full list of legacy categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).  We recommend using the `personal_finance_category` for transaction categorization to obtain the best results.
     * @type {Array<string>}
     * @memberof Enrichments
     * @deprecated
     */
    legacy_category?: Array<string>;
    /**
     *
     * @type {Location}
     * @memberof Enrichments
     */
    location: Location;
    /**
     * The URL of a logo associated with this transaction, if available. The logo will always be 100×100 pixel PNG file.
     * @type {string}
     * @memberof Enrichments
     */
    logo_url: string | null;
    /**
     * The name of the primary counterparty, such as the merchant or the financial institution, as extracted by Plaid from the raw description.
     * @type {string}
     * @memberof Enrichments
     */
    merchant_name: string | null;
    /**
     *
     * @type {PaymentChannel}
     * @memberof Enrichments
     */
    payment_channel: PaymentChannel;
    /**
     * The phone number associated with the counterparty in E. 164 format. If there is a location match (i.e. a street address is returned in the location object), the phone number will be location specific.
     * @type {string}
     * @memberof Enrichments
     */
    phone_number: string | null;
    /**
     *
     * @type {PersonalFinanceCategory}
     * @memberof Enrichments
     */
    personal_finance_category: PersonalFinanceCategory | null;
    /**
     * The URL of an icon associated with the primary personal finance category. The icon will always be 100×100 pixel PNG file.
     * @type {string}
     * @memberof Enrichments
     */
    personal_finance_category_icon_url: string;
    /**
     *
     * @type {Recurrence}
     * @memberof Enrichments
     */
    recurrence?: Recurrence | null;
    /**
     * The website associated with this transaction.
     * @type {string}
     * @memberof Enrichments
     */
    website: string | null;
}
/**
 * An official document, usually issued by a governing body or institution, with an associated identifier.
 * @export
 * @interface EntityDocument
 */
export interface EntityDocument {
    /**
     *
     * @type {EntityDocumentType}
     * @memberof EntityDocument
     */
    type: EntityDocumentType;
    /**
     * The numeric or alphanumeric identifier associated with this document. Must be between 4 and 32 characters long, and cannot have leading or trailing spaces.
     * @type {string}
     * @memberof EntityDocument
     */
    number: string;
}
/**
 * The kind of official document represented by this object.  `bik` - Russian bank code  `business_number` - A number that uniquely identifies the business within a category of businesses  `imo` - Number assigned to the entity by the International Maritime Organization  `other` - Any document not covered by other categories  `swift` - Number identifying a bank and branch.  `tax_id` - Identification issued for the purpose of collecting taxes
 * @export
 * @enum {string}
 */
export declare enum EntityDocumentType {
    Bik = "bik",
    BusinessNumber = "business_number",
    Imo = "imo",
    Other = "other",
    Swift = "swift",
    TaxId = "tax_id"
}
/**
 * Analysis information describing why a screening hit matched the provided entity information
 * @export
 * @interface EntityScreeningHitAnalysis
 */
export interface EntityScreeningHitAnalysis {
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof EntityScreeningHitAnalysis
     */
    documents?: MatchSummaryCode;
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof EntityScreeningHitAnalysis
     */
    email_addresses?: MatchSummaryCode;
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof EntityScreeningHitAnalysis
     */
    locations?: MatchSummaryCode;
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof EntityScreeningHitAnalysis
     */
    names?: MatchSummaryCode;
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof EntityScreeningHitAnalysis
     */
    phone_numbers?: MatchSummaryCode;
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof EntityScreeningHitAnalysis
     */
    urls?: MatchSummaryCode;
    /**
     * The version of the entity screening\'s `search_terms` that were compared when the entity screening hit was added. entity screening hits are immutable once they have been reviewed. If changes are detected due to updates to the entity screening\'s `search_terms`, the associated entity program, or the list\'s source data prior to review, the entity screening hit will be updated to reflect those changes.
     * @type {number}
     * @memberof EntityScreeningHitAnalysis
     */
    search_terms_version: number;
}
/**
 * Information associated with the entity watchlist hit
 * @export
 * @interface EntityScreeningHitData
 */
export interface EntityScreeningHitData {
    /**
     * Documents associated with the watchlist hit
     * @type {Array<EntityScreeningHitDocumentsItems>}
     * @memberof EntityScreeningHitData
     */
    documents?: Array<EntityScreeningHitDocumentsItems>;
    /**
     * Email addresses associated with the watchlist hit
     * @type {Array<EntityScreeningHitEmailsItems>}
     * @memberof EntityScreeningHitData
     */
    email_addresses?: Array<EntityScreeningHitEmailsItems>;
    /**
     * Locations associated with the watchlist hit
     * @type {Array<GenericScreeningHitLocationItems>}
     * @memberof EntityScreeningHitData
     */
    locations?: Array<GenericScreeningHitLocationItems>;
    /**
     * Names associated with the watchlist hit
     * @type {Array<EntityScreeningHitNamesItems>}
     * @memberof EntityScreeningHitData
     */
    names?: Array<EntityScreeningHitNamesItems>;
    /**
     * Phone numbers associated with the watchlist hit
     * @type {Array<EntityScreeningHitsPhoneNumberItems>}
     * @memberof EntityScreeningHitData
     */
    phone_numbers?: Array<EntityScreeningHitsPhoneNumberItems>;
    /**
     * URLs associated with the watchlist hit
     * @type {Array<EntityScreeningHitUrlsItems>}
     * @memberof EntityScreeningHitData
     */
    urls?: Array<EntityScreeningHitUrlsItems>;
}
/**
 * Analyzed documents for the associated hit
 * @export
 * @interface EntityScreeningHitDocumentsItems
 */
export interface EntityScreeningHitDocumentsItems {
    /**
     *
     * @type {MatchSummary}
     * @memberof EntityScreeningHitDocumentsItems
     */
    analysis?: MatchSummary;
    /**
     *
     * @type {EntityDocument}
     * @memberof EntityScreeningHitDocumentsItems
     */
    data?: EntityDocument;
}
/**
 * Email address information for the associated entity watchlist hit
 * @export
 * @interface EntityScreeningHitEmails
 */
export interface EntityScreeningHitEmails {
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof EntityScreeningHitEmails
     */
    email_address: string;
}
/**
 * Analyzed emails for the associated hit
 * @export
 * @interface EntityScreeningHitEmailsItems
 */
export interface EntityScreeningHitEmailsItems {
    /**
     *
     * @type {MatchSummary}
     * @memberof EntityScreeningHitEmailsItems
     */
    analysis?: MatchSummary;
    /**
     *
     * @type {EntityScreeningHitEmails}
     * @memberof EntityScreeningHitEmailsItems
     */
    data?: EntityScreeningHitEmails;
}
/**
 * Name information for the associated entity watchlist hit
 * @export
 * @interface EntityScreeningHitNames
 */
export interface EntityScreeningHitNames {
    /**
     * The full name of the entity.
     * @type {string}
     * @memberof EntityScreeningHitNames
     */
    full: string;
    /**
     * Primary names are those most commonly used to refer to this entity. Only one name will ever be marked as primary.
     * @type {boolean}
     * @memberof EntityScreeningHitNames
     */
    is_primary: boolean;
    /**
     *
     * @type {WeakAliasDetermination}
     * @memberof EntityScreeningHitNames
     */
    weak_alias_determination: WeakAliasDetermination;
}
/**
 * Analyzed names for the associated hit
 * @export
 * @interface EntityScreeningHitNamesItems
 */
export interface EntityScreeningHitNamesItems {
    /**
     *
     * @type {MatchSummary}
     * @memberof EntityScreeningHitNamesItems
     */
    analysis?: MatchSummary;
    /**
     *
     * @type {EntityScreeningHitNames}
     * @memberof EntityScreeningHitNamesItems
     */
    data?: EntityScreeningHitNames;
}
/**
 * Phone number information associated with the entity screening hit
 * @export
 * @interface EntityScreeningHitPhoneNumbers
 */
export interface EntityScreeningHitPhoneNumbers {
    /**
     *
     * @type {PhoneType}
     * @memberof EntityScreeningHitPhoneNumbers
     */
    type: PhoneType;
    /**
     * A phone number in E.164 format.
     * @type {string}
     * @memberof EntityScreeningHitPhoneNumbers
     */
    phone_number: string;
}
/**
 * URLs associated with the entity screening hit
 * @export
 * @interface EntityScreeningHitUrls
 */
export interface EntityScreeningHitUrls {
    /**
     * An \'http\' or \'https\' URL (must begin with either of those).
     * @type {string}
     * @memberof EntityScreeningHitUrls
     */
    url: string;
}
/**
 * Analyzed URLs for the associated hit
 * @export
 * @interface EntityScreeningHitUrlsItems
 */
export interface EntityScreeningHitUrlsItems {
    /**
     *
     * @type {MatchSummary}
     * @memberof EntityScreeningHitUrlsItems
     */
    analysis?: MatchSummary;
    /**
     *
     * @type {EntityScreeningHitUrls}
     * @memberof EntityScreeningHitUrlsItems
     */
    data?: EntityScreeningHitUrls;
}
/**
 * Analyzed phone numbers for the associated hit
 * @export
 * @interface EntityScreeningHitsPhoneNumberItems
 */
export interface EntityScreeningHitsPhoneNumberItems {
    /**
     *
     * @type {MatchSummary}
     * @memberof EntityScreeningHitsPhoneNumberItems
     */
    analysis?: MatchSummary;
    /**
     *
     * @type {EntityScreeningHitPhoneNumbers}
     * @memberof EntityScreeningHitsPhoneNumberItems
     */
    data?: EntityScreeningHitPhoneNumbers;
}
/**
 * Fired when an entity screening status has changed, which can occur manually via the dashboard or during ongoing monitoring.
 * @export
 * @interface EntityScreeningStatusUpdatedWebhook
 */
export interface EntityScreeningStatusUpdatedWebhook {
    /**
     * `ENTITY_SCREENING`
     * @type {string}
     * @memberof EntityScreeningStatusUpdatedWebhook
     */
    webhook_type: string;
    /**
     * `STATUS_UPDATED`
     * @type {string}
     * @memberof EntityScreeningStatusUpdatedWebhook
     */
    webhook_code: string;
    /**
     * The ID of the associated entity screening.
     * @type {string}
     * @memberof EntityScreeningStatusUpdatedWebhook
     */
    entity_screening_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof EntityScreeningStatusUpdatedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Shorthand identifier for a specific screening list for entities.  `AU_CON`: Australia Department of Foreign Affairs and Trade Consolidated List  `CA_CON`: Government of Canada Consolidated List of Sanctions  `EU_CON`: European External Action Service Consolidated List  `IZ_SOE`: State Owned Enterprise List  `IZ_UNC`: United Nations Consolidated Sanctions  `IZ_WBK`: World Bank Listing of Ineligible Firms and Individuals  `US_CAP`: US OFAC Correspondent Account or Payable-Through Account Sanctions  `US_FSE`: US OFAC Foreign Sanctions Evaders  `US_MBS`: US Non-SDN Menu-Based Sanctions  `US_SDN`: US Specially Designated Nationals List  `US_SSI`: US OFAC Sectoral Sanctions Identifications  `US_CMC`: US OFAC Non-SDN Chinese Military-Industrial Complex List  `US_UVL`: Bureau of Industry and Security Unverified List  `UK_HMC`: UK HM Treasury Consolidated List
 * @export
 * @enum {string}
 */
export declare enum EntityWatchlistCode {
    CaCon = "CA_CON",
    EuCon = "EU_CON",
    IzSoe = "IZ_SOE",
    IzUnc = "IZ_UNC",
    IzWbk = "IZ_WBK",
    UsCap = "US_CAP",
    UsFse = "US_FSE",
    UsMbs = "US_MBS",
    UsSdn = "US_SDN",
    UsSsi = "US_SSI",
    UsCmc = "US_CMC",
    UsUvl = "US_UVL",
    AuCon = "AU_CON",
    UkHmc = "UK_HMC"
}
/**
 * A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of entities.
 * @export
 * @interface EntityWatchlistProgram
 */
export interface EntityWatchlistProgram {
    /**
     * ID of the associated entity program.
     * @type {string}
     * @memberof EntityWatchlistProgram
     */
    id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof EntityWatchlistProgram
     */
    created_at: string;
    /**
     * Indicator specifying whether the program is enabled and will perform daily rescans.
     * @type {boolean}
     * @memberof EntityWatchlistProgram
     */
    is_rescanning_enabled: boolean;
    /**
     * Watchlists enabled for the associated program
     * @type {Set<EntityWatchlistCode>}
     * @memberof EntityWatchlistProgram
     */
    lists_enabled: Set<EntityWatchlistCode>;
    /**
     * A name for the entity program to define its purpose. For example, \"High Risk Organizations\" or \"Applicants\".
     * @type {string}
     * @memberof EntityWatchlistProgram
     */
    name: string;
    /**
     *
     * @type {ProgramNameSensitivity}
     * @memberof EntityWatchlistProgram
     */
    name_sensitivity: ProgramNameSensitivity;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof EntityWatchlistProgram
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * Archived programs are read-only and cannot screen new customers nor participate in ongoing monitoring.
     * @type {boolean}
     * @memberof EntityWatchlistProgram
     */
    is_archived: boolean;
}
/**
 * The entity screening object allows you to represent an entity in your system, update its profile, and search for it on various watchlists. Note: Rejected entity screenings will not receive new hits, regardless of entity program configuration.
 * @export
 * @interface EntityWatchlistScreening
 */
export interface EntityWatchlistScreening {
    /**
     * ID of the associated entity screening.
     * @type {string}
     * @memberof EntityWatchlistScreening
     */
    id: string;
    /**
     *
     * @type {EntityWatchlistScreeningSearchTerms}
     * @memberof EntityWatchlistScreening
     */
    search_terms: EntityWatchlistScreeningSearchTerms;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof EntityWatchlistScreening
     */
    assignee: string | null;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof EntityWatchlistScreening
     */
    status: WatchlistScreeningStatus;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof EntityWatchlistScreening
     */
    client_user_id: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof EntityWatchlistScreening
     */
    audit_trail: WatchlistScreeningAuditTrail;
}
/**
 * Data from a government watchlist that has been attached to the screening.
 * @export
 * @interface EntityWatchlistScreeningHit
 */
export interface EntityWatchlistScreeningHit {
    /**
     * ID of the associated entity screening hit.
     * @type {string}
     * @memberof EntityWatchlistScreeningHit
     */
    id: string;
    /**
     *
     * @type {WatchlistScreeningHitStatus}
     * @memberof EntityWatchlistScreeningHit
     */
    review_status: WatchlistScreeningHitStatus;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof EntityWatchlistScreeningHit
     */
    first_active: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof EntityWatchlistScreeningHit
     */
    inactive_since: string | null;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof EntityWatchlistScreeningHit
     */
    historical_since: string | null;
    /**
     *
     * @type {EntityWatchlistCode}
     * @memberof EntityWatchlistScreeningHit
     */
    list_code: EntityWatchlistCode;
    /**
     * A universal identifier for a watchlist individual that is stable across searches and updates.
     * @type {string}
     * @memberof EntityWatchlistScreeningHit
     */
    plaid_uid: string;
    /**
     * The identifier provided by the source sanction or watchlist. When one is not provided by the source, this is `null`.
     * @type {string}
     * @memberof EntityWatchlistScreeningHit
     */
    source_uid: string | null;
    /**
     *
     * @type {EntityScreeningHitAnalysis}
     * @memberof EntityWatchlistScreeningHit
     */
    analysis?: EntityScreeningHitAnalysis;
    /**
     *
     * @type {EntityScreeningHitData}
     * @memberof EntityWatchlistScreeningHit
     */
    data?: EntityScreeningHitData;
}
/**
 * A review submitted by a team member for an entity watchlist screening. A review can be either a comment on the current screening state, actions taken against hits attached to the watchlist screening, or both.
 * @export
 * @interface EntityWatchlistScreeningReview
 */
export interface EntityWatchlistScreeningReview {
    /**
     * ID of the associated entity review.
     * @type {string}
     * @memberof EntityWatchlistScreeningReview
     */
    id: string;
    /**
     * Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
     * @type {Array<string>}
     * @memberof EntityWatchlistScreeningReview
     */
    confirmed_hits: Array<string>;
    /**
     * Hits marked as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
     * @type {Array<string>}
     * @memberof EntityWatchlistScreeningReview
     */
    dismissed_hits: Array<string>;
    /**
     * A comment submitted by a team member as part of reviewing a watchlist screening.
     * @type {string}
     * @memberof EntityWatchlistScreeningReview
     */
    comment: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof EntityWatchlistScreeningReview
     */
    audit_trail: WatchlistScreeningAuditTrail;
}
/**
 * Search terms associated with an entity used for searching against watchlists
 * @export
 * @interface EntityWatchlistScreeningSearchTerms
 */
export interface EntityWatchlistScreeningSearchTerms {
    /**
     * ID of the associated entity program.
     * @type {string}
     * @memberof EntityWatchlistScreeningSearchTerms
     */
    entity_watchlist_program_id: string;
    /**
     * The name of the organization being screened. Must have at least one alphabetical character, have a maximum length of 100 characters, and not include leading or trailing spaces.
     * @type {string}
     * @memberof EntityWatchlistScreeningSearchTerms
     */
    legal_name: string;
    /**
     * The numeric or alphanumeric identifier associated with this document. Must be between 4 and 32 characters long, and cannot have leading or trailing spaces.
     * @type {string}
     * @memberof EntityWatchlistScreeningSearchTerms
     */
    document_number: string | null;
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof EntityWatchlistScreeningSearchTerms
     */
    email_address: string | null;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof EntityWatchlistScreeningSearchTerms
     */
    country: string | null;
    /**
     * A phone number in E.164 format.
     * @type {string}
     * @memberof EntityWatchlistScreeningSearchTerms
     */
    phone_number: string | null;
    /**
     * An \'http\' or \'https\' URL (must begin with either of those).
     * @type {string}
     * @memberof EntityWatchlistScreeningSearchTerms
     */
    url: string | null;
    /**
     * The current version of the search terms. Starts at `1` and increments with each edit to `search_terms`.
     * @type {number}
     * @memberof EntityWatchlistScreeningSearchTerms
     */
    version: number;
}
/**
 * Search inputs for creating an entity watchlist screening
 * @export
 * @interface EntityWatchlistSearchTerms
 */
export interface EntityWatchlistSearchTerms {
    /**
     * ID of the associated entity program.
     * @type {string}
     * @memberof EntityWatchlistSearchTerms
     */
    entity_watchlist_program_id: string;
    /**
     * The name of the organization being screened. Must have at least one alphabetical character, have a maximum length of 100 characters, and not include leading or trailing spaces.
     * @type {string}
     * @memberof EntityWatchlistSearchTerms
     */
    legal_name: string;
    /**
     * The numeric or alphanumeric identifier associated with this document. Must be between 4 and 32 characters long, and cannot have leading or trailing spaces.
     * @type {string}
     * @memberof EntityWatchlistSearchTerms
     */
    document_number?: string | null;
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof EntityWatchlistSearchTerms
     */
    email_address?: string | null;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof EntityWatchlistSearchTerms
     */
    country?: string | null;
    /**
     * A phone number in E.164 format.
     * @type {string}
     * @memberof EntityWatchlistSearchTerms
     */
    phone_number?: string | null;
    /**
     * An \'http\' or \'https\' URL (must begin with either of those).
     * @type {string}
     * @memberof EntityWatchlistSearchTerms
     */
    url?: string | null;
}
/**
 * A description of whether the associated document was expired when the verification was performed.  Note: In the case where an expiration date is not present on the document or failed to be extracted, this value will be `no_data`.
 * @export
 * @enum {string}
 */
export declare enum ExpirationDate {
    NotExpired = "not_expired",
    Expired = "expired",
    NoData = "no_data"
}
/**
 * Plaid and FDX-defined recipient metadata fields
 * @export
 * @interface ExtendedRecipientMetadata
 */
export interface ExtendedRecipientMetadata {
    /**
     * The recipient identifier
     * @type {string}
     * @memberof ExtendedRecipientMetadata
     */
    recipient_id: string;
    /**
     * The recipient name displayed by the Data Provider during the consent flow
     * @type {string}
     * @memberof ExtendedRecipientMetadata
     */
    client_name: string;
    /**
     * Data Recipient Logo URL location
     * @type {string}
     * @memberof ExtendedRecipientMetadata
     */
    logo_uri?: string | null;
    /**
     * The legal name of the recipient
     * @type {string}
     * @memberof ExtendedRecipientMetadata
     */
    third_party_legal_name: string;
    /**
     * The category that the recipient falls under
     * @type {string}
     * @memberof ExtendedRecipientMetadata
     */
    category: string;
    /**
     * The date at which the recipient gained production access to Plaid
     * @type {string}
     * @memberof ExtendedRecipientMetadata
     */
    joined_date: string;
    /**
     * The number of Data Partner consumers that are connected to the recipient for the specific Data Partner
     * @type {number}
     * @memberof ExtendedRecipientMetadata
     */
    connection_count: number;
}
/**
 *
 * @export
 * @interface ExtendedRecipientMetadataAllOf
 */
export interface ExtendedRecipientMetadataAllOf {
    /**
     * The category that the recipient falls under
     * @type {string}
     * @memberof ExtendedRecipientMetadataAllOf
     */
    category: string;
    /**
     * The date at which the recipient gained production access to Plaid
     * @type {string}
     * @memberof ExtendedRecipientMetadataAllOf
     */
    joined_date: string;
    /**
     * The number of Data Partner consumers that are connected to the recipient for the specific Data Partner
     * @type {number}
     * @memberof ExtendedRecipientMetadataAllOf
     */
    connection_count: number;
}
/**
 * (Deprecated) Additional payment consent options. Please use `payer_details` to specify the account.
 * @export
 * @interface ExternalPaymentInitiationConsentOptions
 */
export interface ExternalPaymentInitiationConsentOptions {
    /**
     * When `true`, Plaid will attempt to request refund details from the payee\'s financial institution.  Support varies between financial institutions and will not always be available.  If refund details could be retrieved, they will be available in the `/payment_initiation/payment/get` response.
     * @type {boolean}
     * @memberof ExternalPaymentInitiationConsentOptions
     */
    request_refund_details?: boolean | null;
    /**
     * The International Bank Account Number (IBAN) for the payer\'s account. Where possible, the end user will be able to set up payment consent using only the specified bank account if provided.
     * @type {string}
     * @memberof ExternalPaymentInitiationConsentOptions
     */
    iban?: string | null;
    /**
     *
     * @type {PaymentInitiationOptionalRestrictionBacs}
     * @memberof ExternalPaymentInitiationConsentOptions
     */
    bacs?: PaymentInitiationOptionalRestrictionBacs | null;
}
/**
 * Additional payment options
 * @export
 * @interface ExternalPaymentOptions
 */
export interface ExternalPaymentOptions {
    /**
     * When `true`, Plaid will attempt to request refund details from the payee\'s financial institution.  Support varies between financial institutions and will not always be available.  If refund details could be retrieved, they will be available in the `/payment_initiation/payment/get` response.
     * @type {boolean}
     * @memberof ExternalPaymentOptions
     */
    request_refund_details?: boolean | null;
    /**
     * The International Bank Account Number (IBAN) for the payer\'s account. Where possible, the end user will be able to send payments only from the specified bank account if provided.
     * @type {string}
     * @memberof ExternalPaymentOptions
     */
    iban?: string | null;
    /**
     *
     * @type {PaymentInitiationOptionalRestrictionBacs}
     * @memberof ExternalPaymentOptions
     */
    bacs?: PaymentInitiationOptionalRestrictionBacs | null;
    /**
     *
     * @type {PaymentScheme}
     * @memberof ExternalPaymentOptions
     */
    scheme?: PaymentScheme | null;
}
/**
 * Details about external payment refund
 * @export
 * @interface ExternalPaymentRefundDetails
 */
export interface ExternalPaymentRefundDetails {
    /**
     * The name of the account holder.
     * @type {string}
     * @memberof ExternalPaymentRefundDetails
     */
    name: string;
    /**
     * The International Bank Account Number (IBAN) for the account.
     * @type {string}
     * @memberof ExternalPaymentRefundDetails
     */
    iban: string | null;
    /**
     *
     * @type {RecipientBACSNullable}
     * @memberof ExternalPaymentRefundDetails
     */
    bacs: RecipientBACSNullable | null;
}
/**
 * The schedule that the payment will be executed on. If a schedule is provided, the payment is automatically set up as a standing order. If no schedule is specified, the payment will be executed only once.
 * @export
 * @interface ExternalPaymentScheduleBase
 */
export interface ExternalPaymentScheduleBase {
    /**
     *
     * @type {PaymentScheduleInterval}
     * @memberof ExternalPaymentScheduleBase
     */
    interval?: PaymentScheduleInterval;
    /**
     * The day of the interval on which to schedule the payment.  If the payment interval is weekly, `interval_execution_day` should be an integer from 1 (Monday) to 7 (Sunday).  If the payment interval is monthly, `interval_execution_day` should be an integer indicating which day of the month to make the payment on. Integers from 1 to 28 can be used to make a payment on that day of the month. Negative integers from -1 to -5 can be used to make a payment relative to the end of the month. To make a payment on the last day of the month, use -1; to make the payment on the second-to-last day, use -2, and so on.
     * @type {number}
     * @memberof ExternalPaymentScheduleBase
     */
    interval_execution_day?: number;
    /**
     * A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Standing order payments will begin on the first `interval_execution_day` on or after the `start_date`.  If the first `interval_execution_day` on or after the start date is also the same day that `/payment_initiation/payment/create` was called, the bank *may* make the first payment on that day, but it is not guaranteed to do so.
     * @type {string}
     * @memberof ExternalPaymentScheduleBase
     */
    start_date?: string;
    /**
     * A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Standing order payments will end on the last `interval_execution_day` on or before the `end_date`. If the only `interval_execution_day` between the start date and the end date (inclusive) is also the same day that `/payment_initiation/payment/create` was called, the bank *may* make a payment on that day, but it is not guaranteed to do so.
     * @type {string}
     * @memberof ExternalPaymentScheduleBase
     */
    end_date?: string | null;
    /**
     * The start date sent to the bank after adjusting for holidays or weekends.  Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). If the start date did not require adjustment, this field will be `null`.
     * @type {string}
     * @memberof ExternalPaymentScheduleBase
     */
    adjusted_start_date?: string | null;
}
/**
 * The schedule that the payment will be executed on. If a schedule is provided, the payment is automatically set up as a standing order. If no schedule is specified, the payment will be executed only once.
 * @export
 * @interface ExternalPaymentScheduleGet
 */
export interface ExternalPaymentScheduleGet {
    /**
     *
     * @type {PaymentScheduleInterval}
     * @memberof ExternalPaymentScheduleGet
     */
    interval: PaymentScheduleInterval;
    /**
     * The day of the interval on which to schedule the payment.  If the payment interval is weekly, `interval_execution_day` should be an integer from 1 (Monday) to 7 (Sunday).  If the payment interval is monthly, `interval_execution_day` should be an integer indicating which day of the month to make the payment on. Integers from 1 to 28 can be used to make a payment on that day of the month. Negative integers from -1 to -5 can be used to make a payment relative to the end of the month. To make a payment on the last day of the month, use -1; to make the payment on the second-to-last day, use -2, and so on.
     * @type {number}
     * @memberof ExternalPaymentScheduleGet
     */
    interval_execution_day: number;
    /**
     * A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Standing order payments will begin on the first `interval_execution_day` on or after the `start_date`.  If the first `interval_execution_day` on or after the start date is also the same day that `/payment_initiation/payment/create` was called, the bank *may* make the first payment on that day, but it is not guaranteed to do so.
     * @type {string}
     * @memberof ExternalPaymentScheduleGet
     */
    start_date: string;
    /**
     * A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Standing order payments will end on the last `interval_execution_day` on or before the `end_date`. If the only `interval_execution_day` between the start date and the end date (inclusive) is also the same day that `/payment_initiation/payment/create` was called, the bank *may* make a payment on that day, but it is not guaranteed to do so.
     * @type {string}
     * @memberof ExternalPaymentScheduleGet
     */
    end_date: string | null;
    /**
     * The start date sent to the bank after adjusting for holidays or weekends.  Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). If the start date did not require adjustment, this field will be `null`.
     * @type {string}
     * @memberof ExternalPaymentScheduleGet
     */
    adjusted_start_date: string | null;
}
/**
 * The schedule that the payment will be executed on. If a schedule is provided, the payment is automatically set up as a standing order. If no schedule is specified, the payment will be executed only once.
 * @export
 * @interface ExternalPaymentScheduleRequest
 */
export interface ExternalPaymentScheduleRequest {
    /**
     *
     * @type {PaymentScheduleInterval}
     * @memberof ExternalPaymentScheduleRequest
     */
    interval: PaymentScheduleInterval;
    /**
     * The day of the interval on which to schedule the payment.  If the payment interval is weekly, `interval_execution_day` should be an integer from 1 (Monday) to 7 (Sunday).  If the payment interval is monthly, `interval_execution_day` should be an integer indicating which day of the month to make the payment on. Integers from 1 to 28 can be used to make a payment on that day of the month. Negative integers from -1 to -5 can be used to make a payment relative to the end of the month. To make a payment on the last day of the month, use -1; to make the payment on the second-to-last day, use -2, and so on.
     * @type {number}
     * @memberof ExternalPaymentScheduleRequest
     */
    interval_execution_day: number;
    /**
     * A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Standing order payments will begin on the first `interval_execution_day` on or after the `start_date`.  If the first `interval_execution_day` on or after the start date is also the same day that `/payment_initiation/payment/create` was called, the bank *may* make the first payment on that day, but it is not guaranteed to do so.
     * @type {string}
     * @memberof ExternalPaymentScheduleRequest
     */
    start_date: string;
    /**
     * A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Standing order payments will end on the last `interval_execution_day` on or before the `end_date`. If the only `interval_execution_day` between the start date and the end date (inclusive) is also the same day that `/payment_initiation/payment/create` was called, the bank *may* make a payment on that day, but it is not guaranteed to do so.
     * @type {string}
     * @memberof ExternalPaymentScheduleRequest
     */
    end_date?: string | null;
    /**
     * The start date sent to the bank after adjusting for holidays or weekends.  Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). If the start date did not require adjustment, this field will be `null`.
     * @type {string}
     * @memberof ExternalPaymentScheduleRequest
     */
    adjusted_start_date?: string | null;
}
/**
 * Types of document formats. (Suggested values)
 * @export
 * @enum {string}
 */
export declare enum FDXContentTypes {
    ApplicationPdf = "application/pdf",
    ImageGif = "image/gif",
    ImageJpeg = "image/jpeg",
    ImageTiff = "image/tiff",
    ImagePng = "image/png",
    ApplicationJson = "application/json"
}
/**
 * Financial Institution provider-specific attribute
 * @export
 * @interface FDXFiAttribute
 */
export interface FDXFiAttribute {
    /**
     * Name of attribute
     * @type {string}
     * @memberof FDXFiAttribute
     */
    name: string;
    /**
     * Value of attribute
     * @type {string}
     * @memberof FDXFiAttribute
     */
    value: string;
}
/**
 * REST application constraint (Hypermedia As The Engine Of Application State)
 * @export
 * @interface FDXHateoasLink
 */
export interface FDXHateoasLink {
    /**
     * URL to invoke the action on the resource
     * @type {string}
     * @memberof FDXHateoasLink
     */
    href: string;
    /**
     *
     * @type {FDXHateoasLinkAction}
     * @memberof FDXHateoasLink
     */
    action?: FDXHateoasLinkAction;
    /**
     * Relation of this link to its containing entity, as defined by and with many example relation values at [IETF RFC5988](https://datatracker.ietf.org/doc/html/rfc5988)
     * @type {string}
     * @memberof FDXHateoasLink
     */
    rel?: string;
    /**
     * Content-types that can be used in the Accept header
     * @type {Array<FDXContentTypes>}
     * @memberof FDXHateoasLink
     */
    types?: Array<FDXContentTypes>;
}
/**
 * HTTP Method to use for the request
 * @export
 * @enum {string}
 */
export declare enum FDXHateoasLinkAction {
    Get = "GET",
    Post = "POST",
    Patch = "PATCH",
    Delete = "DELETE",
    Put = "PUT"
}
/**
 * Initiator Fi Attribute
 * @export
 * @interface FDXInitiatorFiAttribute
 */
export interface FDXInitiatorFiAttribute {
    /**
     *
     * @type {string}
     * @memberof FDXInitiatorFiAttribute
     */
    name?: string;
    /**
     *
     * @type {FDXPartyType}
     * @memberof FDXInitiatorFiAttribute
     */
    value?: FDXPartyType;
}
/**
 * Provides the base fields of a notification. Clients will read the `type` property to determine the expected notification payload
 * @export
 * @interface FDXNotification
 */
export interface FDXNotification {
    /**
     * Id of notification
     * @type {string}
     * @memberof FDXNotification
     */
    notificationId: string;
    /**
     *
     * @type {FDXNotificationType}
     * @memberof FDXNotification
     */
    type: FDXNotificationType;
    /**
     * ISO 8601 date-time in format \'YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]\' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)
     * @type {string}
     * @memberof FDXNotification
     */
    sentOn: string;
    /**
     *
     * @type {FDXNotificationCategory}
     * @memberof FDXNotification
     */
    category: FDXNotificationCategory;
    /**
     *
     * @type {FDXNotificationSeverity}
     * @memberof FDXNotification
     */
    severity?: FDXNotificationSeverity;
    /**
     *
     * @type {FDXNotificationPriority}
     * @memberof FDXNotification
     */
    priority?: FDXNotificationPriority;
    /**
     *
     * @type {FDXParty}
     * @memberof FDXNotification
     */
    publisher?: FDXParty;
    /**
     *
     * @type {FDXParty}
     * @memberof FDXNotification
     */
    subscriber?: FDXParty;
    /**
     *
     * @type {FDXNotificationPayload}
     * @memberof FDXNotification
     */
    notificationPayload: FDXNotificationPayload;
    /**
     *
     * @type {FDXHateoasLink}
     * @memberof FDXNotification
     */
    url?: FDXHateoasLink;
}
/**
 * Category of Notification
 * @export
 * @enum {string}
 */
export declare enum FDXNotificationCategory {
    Security = "SECURITY",
    Maintenance = "MAINTENANCE",
    Fraud = "FRAUD",
    Consent = "CONSENT",
    NewData = "NEW_DATA"
}
/**
 * Custom key-value pairs payload for a notification
 * @export
 * @interface FDXNotificationPayload
 */
export interface FDXNotificationPayload {
    /**
     * ID for the origination entity related to the notification
     * @type {string}
     * @memberof FDXNotificationPayload
     */
    id?: string;
    /**
     *
     * @type {FDXNotificationPayloadIdType}
     * @memberof FDXNotificationPayload
     */
    idType?: FDXNotificationPayloadIdType;
    /**
     *
     * @type {Array<FDXFiAttribute>}
     * @memberof FDXNotificationPayload
     */
    customFields?: Array<FDXFiAttribute>;
}
/**
 * Type of entity causing origination of a notification
 * @export
 * @enum {string}
 */
export declare enum FDXNotificationPayloadIdType {
    Account = "ACCOUNT",
    Customer = "CUSTOMER",
    Party = "PARTY",
    Maintenance = "MAINTENANCE",
    Consent = "CONSENT"
}
/**
 * Priority of notification
 * @export
 * @enum {string}
 */
export declare enum FDXNotificationPriority {
    High = "HIGH",
    Medium = "MEDIUM",
    Low = "LOW"
}
/**
 * Severity level of notification
 * @export
 * @enum {string}
 */
export declare enum FDXNotificationSeverity {
    Emergency = "EMERGENCY",
    Alert = "ALERT",
    Warning = "WARNING",
    Notice = "NOTICE",
    Info = "INFO"
}
/**
 * Type of Notification
 * @export
 * @enum {string}
 */
export declare enum FDXNotificationType {
    ConsentRevoked = "CONSENT_REVOKED",
    ConsentUpdated = "CONSENT_UPDATED",
    Custom = "CUSTOM",
    Service = "SERVICE",
    Balance = "BALANCE",
    PlannedOutage = "PLANNED_OUTAGE"
}
/**
 * FDX Participant - an entity or person that is a part of a FDX API transaction
 * @export
 * @interface FDXParty
 */
export interface FDXParty {
    /**
     * Human recognizable common name
     * @type {string}
     * @memberof FDXParty
     */
    name: string;
    /**
     *
     * @type {FDXPartyType}
     * @memberof FDXParty
     */
    type: FDXPartyType;
    /**
     * URI for party, where an end user could learn more about the company or application involved in the data sharing chain
     * @type {string}
     * @memberof FDXParty
     */
    homeUri?: string;
    /**
     * URI for a logo asset to be displayed to the end user
     * @type {string}
     * @memberof FDXParty
     */
    logoUri?: string;
    /**
     *
     * @type {FDXPartyRegistry}
     * @memberof FDXParty
     */
    registry?: FDXPartyRegistry;
    /**
     * Registered name of party
     * @type {string}
     * @memberof FDXParty
     */
    registeredEntityName?: string;
    /**
     * Registered id of party
     * @type {string}
     * @memberof FDXParty
     */
    registeredEntityId?: string;
}
/**
 * The registry containing the party’s registration with name and id
 * @export
 * @enum {string}
 */
export declare enum FDXPartyRegistry {
    Fdx = "FDX",
    Gleif = "GLEIF",
    Icann = "ICANN",
    Private = "PRIVATE"
}
/**
 * Identifies the type of a party
 * @export
 * @enum {string}
 */
export declare enum FDXPartyType {
    DataAccessPlatform = "DATA_ACCESS_PLATFORM",
    DataProvider = "DATA_PROVIDER",
    DataRecipient = "DATA_RECIPIENT",
    Individual = "INDIVIDUAL",
    Merchant = "MERCHANT",
    Vendor = "VENDOR"
}
/**
 * Recipient metadata fields that are defined by FDX
 * @export
 * @interface FDXRecipientMetadata
 */
export interface FDXRecipientMetadata {
    /**
     * The recipient identifier
     * @type {string}
     * @memberof FDXRecipientMetadata
     */
    recipient_id: string;
    /**
     * The recipient name displayed by the Data Provider during the consent flow
     * @type {string}
     * @memberof FDXRecipientMetadata
     */
    client_name: string;
    /**
     * Data Recipient Logo URL location
     * @type {string}
     * @memberof FDXRecipientMetadata
     */
    logo_uri?: string | null;
    /**
     * The legal name of the recipient
     * @type {string}
     * @memberof FDXRecipientMetadata
     */
    third_party_legal_name: string;
}
/**
 * Fires when an account is automatically verified using micro-deposits
 * @export
 * @interface FallbackAuthMicrodepositAutoVerifiedWebhook
 */
export interface FallbackAuthMicrodepositAutoVerifiedWebhook {
    /**
     * `AUTH`
     * @type {string}
     * @memberof FallbackAuthMicrodepositAutoVerifiedWebhook
     */
    webhook_type: string;
    /**
     * `AUTOMATICALLY_VERIFIED`
     * @type {string}
     * @memberof FallbackAuthMicrodepositAutoVerifiedWebhook
     */
    webhook_code: string;
    /**
     * The error code associated with the webhook.
     * @type {string}
     * @memberof FallbackAuthMicrodepositAutoVerifiedWebhook
     */
    error?: string | null;
    /**
     * The external account ID associated with the micro-deposit
     * @type {string}
     * @memberof FallbackAuthMicrodepositAutoVerifiedWebhook
     */
    account_id: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof FallbackAuthMicrodepositAutoVerifiedWebhook
     */
    item_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof FallbackAuthMicrodepositAutoVerifiedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Fires when an account has an expired verification when using micro-deposits
 * @export
 * @interface FallbackAuthMicrodepositVerificationExpiredWebhook
 */
export interface FallbackAuthMicrodepositVerificationExpiredWebhook {
    /**
     * `AUTH`
     * @type {string}
     * @memberof FallbackAuthMicrodepositVerificationExpiredWebhook
     */
    webhook_type: string;
    /**
     * `VERIFICATION_EXPIRED`
     * @type {string}
     * @memberof FallbackAuthMicrodepositVerificationExpiredWebhook
     */
    webhook_code: string;
    /**
     * The error code associated with the webhook.
     * @type {string}
     * @memberof FallbackAuthMicrodepositVerificationExpiredWebhook
     */
    error?: string | null;
    /**
     * The external account ID associated with the micro-deposit
     * @type {string}
     * @memberof FallbackAuthMicrodepositVerificationExpiredWebhook
     */
    account_id: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof FallbackAuthMicrodepositVerificationExpiredWebhook
     */
    item_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof FallbackAuthMicrodepositVerificationExpiredWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Insights surrounding external financial institution counterparties associated with a user.
 * @export
 * @interface FinancialInstitutionInsights
 */
export interface FinancialInstitutionInsights {
    /**
     * Name of the financial institution counterparty.
     * @type {string}
     * @memberof FinancialInstitutionInsights
     */
    name: string;
    /**
     * A unique, stable, Plaid-generated id that maps to the counterparty.
     * @type {string}
     * @memberof FinancialInstitutionInsights
     */
    entity_id?: string | null;
    /**
     * The website associated with the counterparty.
     * @type {string}
     * @memberof FinancialInstitutionInsights
     */
    website: string | null;
    /**
     * Associated accounts, detected based on the nature of transfers to/from this institution.
     * @type {Array<DetectedAccount>}
     * @memberof FinancialInstitutionInsights
     */
    detected_accounts: Array<DetectedAccount>;
}
/**
 * Details about the fixed income security.
 * @export
 * @interface FixedIncome
 */
export interface FixedIncome {
    /**
     *
     * @type {YieldRate}
     * @memberof FixedIncome
     */
    yield_rate: YieldRate | null;
    /**
     * The maturity date for this fixed income security, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof FixedIncome
     */
    maturity_date: string | null;
    /**
     * The issue date for this fixed income security, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof FixedIncome
     */
    issue_date: string | null;
    /**
     * The face value that is paid upon maturity of the fixed income security, per unit of security.
     * @type {number}
     * @memberof FixedIncome
     */
    face_value: number | null;
}
/**
 * An object representing the predicted average monthly net income amount. This amount reflects the funds deposited into the account and may not include any withheld income such as taxes or other payroll deductions
 * @export
 * @interface ForecastedMonthlyIncome
 */
export interface ForecastedMonthlyIncome {
    /**
     * The forecasted monthly income at the time of subscription
     * @type {number}
     * @memberof ForecastedMonthlyIncome
     */
    baseline_amount: number;
    /**
     * The current forecasted monthly income
     * @type {number}
     * @memberof ForecastedMonthlyIncome
     */
    current_amount: number;
}
/**
 * Form 1099 Type
 * @export
 * @enum {string}
 */
export declare enum Form1099Type {
    Unknown = "FORM_1099_TYPE_UNKNOWN",
    Misc = "FORM_1099_TYPE_MISC",
    K = "FORM_1099_TYPE_K"
}
/**
 * An arbitrary JSON payload sent to or received from the Plaid server. Internal use only.
 * @export
 * @interface ForwardedJSONResponse
 */
export interface ForwardedJSONResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ForwardedJSONResponse
     */
    request_id: string;
}
/**
 * The amount and currency of the fraud or attempted fraud. `fraud_amount` should be omitted to indicate an unknown fraud amount.
 * @export
 * @interface FraudAmount
 */
export interface FraudAmount {
    /**
     *
     * @type {ISOCurrencyCode}
     * @memberof FraudAmount
     */
    iso_currency_code: ISOCurrencyCode;
    /**
     * The amount value. This value can be 0 to indicate no money was lost. Must not contain more than two digits of precision (e.g., `1.23`).
     * @type {number}
     * @memberof FraudAmount
     */
    value: number;
}
/**
 * Details about the fraud analysis performed on the document.
 * @export
 * @interface FraudAnalysisDetails
 */
export interface FraudAnalysisDetails {
    /**
     *
     * @type {FraudCheckOutcome}
     * @memberof FraudAnalysisDetails
     */
    type_supported: FraudCheckOutcome;
    /**
     *
     * @type {FraudCheckOutcome}
     * @memberof FraudAnalysisDetails
     */
    portrait_presence_check: FraudCheckOutcome;
    /**
     *
     * @type {FraudCheckOutcome}
     * @memberof FraudAnalysisDetails
     */
    portrait_details_check: FraudCheckOutcome;
    /**
     *
     * @type {FraudCheckOutcome}
     * @memberof FraudAnalysisDetails
     */
    image_composition_check: FraudCheckOutcome;
    /**
     *
     * @type {FraudCheckOutcome}
     * @memberof FraudAnalysisDetails
     */
    integrity_check: FraudCheckOutcome;
    /**
     *
     * @type {FraudCheckOutcome}
     * @memberof FraudAnalysisDetails
     */
    detail_check: FraudCheckOutcome;
    /**
     *
     * @type {FraudCheckOutcomeWithNoData}
     * @memberof FraudAnalysisDetails
     */
    issue_date_check: FraudCheckOutcomeWithNoData;
}
/**
 * The outcome of the fraud check.
 * @export
 * @enum {string}
 */
export declare enum FraudCheckOutcome {
    Success = "success",
    Failed = "failed"
}
/**
 * The outcome of the fraud check, when available.
 * @export
 * @enum {string}
 */
export declare enum FraudCheckOutcomeWithNoData {
    Success = "success",
    Failed = "failed",
    NoData = "no_data"
}
/**
 * Analyzed location information for the associated hit
 * @export
 * @interface GenericScreeningHitLocationItems
 */
export interface GenericScreeningHitLocationItems {
    /**
     *
     * @type {MatchSummary}
     * @memberof GenericScreeningHitLocationItems
     */
    analysis?: MatchSummary;
    /**
     *
     * @type {WatchlistScreeningHitLocations}
     * @memberof GenericScreeningHitLocationItems
     */
    data?: WatchlistScreeningHitLocations;
}
/**
 * GetRecipientResponse defines the response schema for `/fdx/recipient/{recipientId}`
 * @export
 * @interface GetRecipientResponse
 */
export interface GetRecipientResponse {
    /**
     * The recipient identifier
     * @type {string}
     * @memberof GetRecipientResponse
     */
    recipient_id: string;
    /**
     * The recipient name displayed by the Data Provider during the consent flow
     * @type {string}
     * @memberof GetRecipientResponse
     */
    client_name: string;
    /**
     * Data Recipient Logo URL location
     * @type {string}
     * @memberof GetRecipientResponse
     */
    logo_uri?: string | null;
    /**
     * The legal name of the recipient
     * @type {string}
     * @memberof GetRecipientResponse
     */
    third_party_legal_name: string;
}
/**
 * GetRecipientsResponse defines the response schema for `/fdx/recipients`
 * @export
 * @interface GetRecipientsResponse
 */
export interface GetRecipientsResponse {
    /**
     *
     * @type {Array<ExtendedRecipientMetadata>}
     * @memberof GetRecipientsResponse
     */
    recipients: Array<ExtendedRecipientMetadata>;
}
/**
 * A status health incident
 * @export
 * @interface HealthIncident
 */
export interface HealthIncident {
    /**
     * The start date of the incident, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2020-10-30T15:26:48Z\"`.
     * @type {string}
     * @memberof HealthIncident
     */
    start_date: string;
    /**
     * The end date of the incident, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2020-10-30T15:26:48Z\"`.
     * @type {string}
     * @memberof HealthIncident
     */
    end_date?: string | null;
    /**
     * The title of the incident
     * @type {string}
     * @memberof HealthIncident
     */
    title: string;
    /**
     * Updates on the health incident.
     * @type {Array<IncidentUpdate>}
     * @memberof HealthIncident
     */
    incident_updates: Array<IncidentUpdate>;
}
/**
 * An enum indicating the match type between data provided by user and data checked against an external data source.   `match` indicates that the provided input data was a strong match against external data.  `partial_match` indicates the data approximately matched against external data. For example, \"Knope\" vs. \"Knope-Wyatt\" for last name.  `no_match` indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data.  `no_data` indicates that Plaid was unable to find external data to compare against the provided input data.  `no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
 * @export
 * @enum {string}
 */
export declare enum HiddenMatchSummaryCode {
    Match = "match",
    PartialMatch = "partial_match",
    NoMatch = "no_match",
    NoData = "no_data",
    NoInput = "no_input"
}
/**
 * An object representing the historical annual income amount.
 * @export
 * @interface HistoricalAnnualIncome
 */
export interface HistoricalAnnualIncome {
    /**
     * The historical annual income at the time of subscription
     * @type {number}
     * @memberof HistoricalAnnualIncome
     */
    baseline_amount: number;
    /**
     * The current historical annual income
     * @type {number}
     * @memberof HistoricalAnnualIncome
     */
    current_amount: number;
}
/**
 * An object representing a balance held by an account in the past
 * @export
 * @interface HistoricalBalance
 */
export interface HistoricalBalance {
    /**
     * The date of the calculated historical balance, in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)
     * @type {string}
     * @memberof HistoricalBalance
     */
    date: string;
    /**
     * The total amount of funds in the account, calculated from the `current` balance in the `balance` object by subtracting inflows and adding back outflows according to the posted date of each transaction.  If the account has any pending transactions, historical balance amounts on or after the date of the earliest pending transaction may differ if retrieved in subsequent Asset Reports as a result of those pending transactions posting.
     * @type {number}
     * @memberof HistoricalBalance
     */
    current: number;
    /**
     * The ISO-4217 currency code of the balance. Always `null` if `unofficial_currency_code` is non-`null`.
     * @type {string}
     * @memberof HistoricalBalance
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the balance. Always `null` if `iso_currency_code` is non-`null`.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
     * @type {string}
     * @memberof HistoricalBalance
     */
    unofficial_currency_code: string | null;
}
/**
 * Fired when an Item\'s historical transaction pull is completed and Plaid has prepared as much historical transaction data as possible for the Item. Once this webhook has been fired, transaction data beyond the most recent 30 days can be fetched for the Item. This webhook will also be fired if account selections for the Item are updated, with `new_transactions` set to the number of net new transactions pulled after the account selection update.  This webhook is intended for use with `/transactions/get`; if you are using the newer `/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
 * @export
 * @interface HistoricalUpdateWebhook
 */
export interface HistoricalUpdateWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof HistoricalUpdateWebhook
     */
    webhook_type: string;
    /**
     * `HISTORICAL_UPDATE`
     * @type {string}
     * @memberof HistoricalUpdateWebhook
     */
    webhook_code: string;
    /**
     *
     * @type {PlaidError}
     * @memberof HistoricalUpdateWebhook
     */
    error?: PlaidError | null;
    /**
     * The number of new transactions available
     * @type {number}
     * @memberof HistoricalUpdateWebhook
     */
    new_transactions: number;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof HistoricalUpdateWebhook
     */
    item_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof HistoricalUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * A securities holding at an institution.
 * @export
 * @interface Holding
 */
export interface Holding {
    /**
     * The Plaid `account_id` associated with the holding.
     * @type {string}
     * @memberof Holding
     */
    account_id: string;
    /**
     * The Plaid `security_id` associated with the holding. Security data is not specific to a user\'s account; any user who held the same security at the same financial institution at the same time would have identical security data. The `security_id` for the same security will typically be the same across different institutions, but this is not guaranteed. The `security_id` does not typically change, but may change if inherent details of the security change due to a corporate action, for example, in the event of a ticker symbol change or CUSIP change.
     * @type {string}
     * @memberof Holding
     */
    security_id: string;
    /**
     * The last price given by the institution for this security.
     * @type {number}
     * @memberof Holding
     */
    institution_price: number;
    /**
     * The date at which `institution_price` was current.
     * @type {string}
     * @memberof Holding
     */
    institution_price_as_of?: string | null;
    /**
     * Date and time at which `institution_price` was current, in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ).  This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00).
     * @type {string}
     * @memberof Holding
     */
    institution_price_datetime?: string | null;
    /**
     * The value of the holding, as reported by the institution.
     * @type {number}
     * @memberof Holding
     */
    institution_value: number;
    /**
     * The total cost basis of the holding (e.g., the total amount spent to acquire all assets currently in the holding).
     * @type {number}
     * @memberof Holding
     */
    cost_basis: number | null;
    /**
     * The total quantity of the asset held, as reported by the financial institution. If the security is an option, `quantity` will reflect the total number of options (typically the number of contracts multiplied by 100), not the number of contracts.
     * @type {number}
     * @memberof Holding
     */
    quantity: number;
    /**
     * The ISO-4217 currency code of the holding. Always `null` if `unofficial_currency_code` is non-`null`.
     * @type {string}
     * @memberof Holding
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the holding. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof Holding
     */
    unofficial_currency_code: string | null;
    /**
     * The total quantity of vested assets held, as reported by the financial institution. Vested assets are only associated with [equities](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-type).
     * @type {number}
     * @memberof Holding
     */
    vested_quantity?: number | null;
    /**
     * The value of the vested holdings as reported by the institution.
     * @type {number}
     * @memberof Holding
     */
    vested_value?: number | null;
}
/**
 * Fired when new or updated holdings have been detected on an investment account. The webhook typically fires in response to any newly added holdings or price changes to existing holdings, most commonly after market close.
 * @export
 * @interface HoldingsDefaultUpdateWebhook
 */
export interface HoldingsDefaultUpdateWebhook {
    /**
     * `HOLDINGS`
     * @type {string}
     * @memberof HoldingsDefaultUpdateWebhook
     */
    webhook_type: string;
    /**
     * `DEFAULT_UPDATE`
     * @type {string}
     * @memberof HoldingsDefaultUpdateWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof HoldingsDefaultUpdateWebhook
     */
    item_id: string;
    /**
     *
     * @type {PlaidError}
     * @memberof HoldingsDefaultUpdateWebhook
     */
    error?: PlaidError | null;
    /**
     * The number of new holdings reported since the last time this webhook was fired.
     * @type {number}
     * @memberof HoldingsDefaultUpdateWebhook
     */
    new_holdings: number;
    /**
     * The number of updated holdings reported since the last time this webhook was fired.
     * @type {number}
     * @memberof HoldingsDefaultUpdateWebhook
     */
    updated_holdings: number;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof HoldingsDefaultUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Specify the holdings on the account.
 * @export
 * @interface HoldingsOverride
 */
export interface HoldingsOverride {
    /**
     * The last price given by the institution for this security
     * @type {number}
     * @memberof HoldingsOverride
     */
    institution_price: number;
    /**
     * The date at which `institution_price` was current. Must be formatted as an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) date.
     * @type {string}
     * @memberof HoldingsOverride
     */
    institution_price_as_of?: string;
    /**
     * The total cost basis of the holding (e.g., the total amount spent to acquire all assets currently in the holding).
     * @type {number}
     * @memberof HoldingsOverride
     */
    cost_basis?: number;
    /**
     * The total quantity of the asset held, as reported by the financial institution.
     * @type {number}
     * @memberof HoldingsOverride
     */
    quantity: number;
    /**
     * Either a valid `iso_currency_code` or `unofficial_currency_code`
     * @type {string}
     * @memberof HoldingsOverride
     */
    currency: string;
    /**
     *
     * @type {SecurityOverride}
     * @memberof HoldingsOverride
     */
    security: SecurityOverride;
}
/**
 * How Plaid should deliver the Plaid Link session to the customer. Only available to customers enabled for Link Delivery (beta). To request Link Delivery access, contact your account manager. \'sms\' will deliver via SMS. Must pass `user.phone_number`. \'email\' will deliver via email. Must pass `user.email_address`. In the Sandbox environment, this field will be ignored; use the Production environment to test Link Delivery instead.
 * @export
 * @enum {string}
 */
export declare enum HostedLinkDeliveryMethod {
    Sms = "sms",
    Email = "email"
}
/**
 * Contains the state of a SMS same-day microdeposits verification session.
 * @export
 * @interface HostedMMDVerificationWebhook
 */
export interface HostedMMDVerificationWebhook {
    /**
     * `AUTH`
     * @type {string}
     * @memberof HostedMMDVerificationWebhook
     */
    webhook_type: string;
    /**
     * `SMS_MICRODEPOSITS_VERIFICATION`
     * @type {string}
     * @memberof HostedMMDVerificationWebhook
     */
    webhook_code: string;
    /**
     * The final status of the same-day microdeposits verification. Will always be `MANUALLY_VERIFIED` or `VERIFICATION_FAILED`.
     * @type {string}
     * @memberof HostedMMDVerificationWebhook
     */
    status: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof HostedMMDVerificationWebhook
     */
    item_id: string;
    /**
     * The external account ID of the affected account
     * @type {string}
     * @memberof HostedMMDVerificationWebhook
     */
    account_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof HostedMMDVerificationWebhook
     */
    environment?: WebhookEnvironmentValues;
}
/**
 * A globally unique and human readable ID type, specific to the country and document category. For more context on this field, see [Hybrid Input Validation](https://plaid.com/docs/identity-verification/hybrid-input-validation).
 * @export
 * @enum {string}
 */
export declare enum IDNumberType {
    ArDni = "ar_dni",
    AuDriversLicense = "au_drivers_license",
    AuPassport = "au_passport",
    BrCpf = "br_cpf",
    CaSin = "ca_sin",
    ClRun = "cl_run",
    CnResidentCard = "cn_resident_card",
    CoNit = "co_nit",
    DkCpr = "dk_cpr",
    EgNationalId = "eg_national_id",
    EsDni = "es_dni",
    EsNie = "es_nie",
    HkHkid = "hk_hkid",
    InPan = "in_pan",
    ItCf = "it_cf",
    JoCivilId = "jo_civil_id",
    JpMyNumber = "jp_my_number",
    KeHudumaNamba = "ke_huduma_namba",
    KwCivilId = "kw_civil_id",
    MxCurp = "mx_curp",
    MxRfc = "mx_rfc",
    MyNric = "my_nric",
    NgNin = "ng_nin",
    NzDriversLicense = "nz_drivers_license",
    OmCivilId = "om_civil_id",
    PhPsn = "ph_psn",
    PlPesel = "pl_pesel",
    RoCnp = "ro_cnp",
    SaNationalId = "sa_national_id",
    SePin = "se_pin",
    SgNric = "sg_nric",
    TrTcKimlik = "tr_tc_kimlik",
    UsSsn = "us_ssn",
    UsSsnLast4 = "us_ssn_last_4",
    ZaSmartId = "za_smart_id"
}
/**
 * An ISO-4217 currency code.
 * @export
 * @enum {string}
 */
export declare enum ISOCurrencyCode {
    Usd = "USD"
}
/**
 * Fired when a change to identity data has been detected on an Item. Items are checked for identity updates every 30-90 days. We recommend that upon receiving this webhook you make another call to `/identity/get` to fetch the user\'s latest identity data.
 * @export
 * @interface IdentityDefaultUpdateWebhook
 */
export interface IdentityDefaultUpdateWebhook {
    /**
     * `IDENTITY`
     * @type {string}
     * @memberof IdentityDefaultUpdateWebhook
     */
    webhook_type: string;
    /**
     * `DEFAULT_UPDATE`
     * @type {string}
     * @memberof IdentityDefaultUpdateWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof IdentityDefaultUpdateWebhook
     */
    item_id: string;
    /**
     * An object with keys of `account_id`\'s that are mapped to their respective identity attributes that changed.  Example: `{ \"XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58\": [\"PHONES\"] }`
     * @type {{ [key: string]: Array<IdentityUpdateTypes>; }}
     * @memberof IdentityDefaultUpdateWebhook
     */
    account_ids_with_updated_identity: {
        [key: string]: Array<IdentityUpdateTypes>;
    };
    /**
     *
     * @type {PlaidError}
     * @memberof IdentityDefaultUpdateWebhook
     */
    error: PlaidError | null;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof IdentityDefaultUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * In closed beta. Object representing metadata pertaining to the document.
 * @export
 * @interface IdentityDocumentMetadata
 */
export interface IdentityDocumentMetadata {
    /**
     * Boolean field indicating if the uploaded document\'s account number matches the account number we have on file
     * @type {boolean}
     * @memberof IdentityDocumentMetadata
     */
    is_account_number_match?: boolean;
    /**
     *
     * @type {string}
     * @memberof IdentityDocumentMetadata
     */
    last_updated?: string;
    /**
     *
     * @type {string}
     * @memberof IdentityDocumentMetadata
     */
    uploaded_at?: string;
}
/**
 * Document object with metadata of the uploaded document
 * @export
 * @interface IdentityDocumentUpload
 */
export interface IdentityDocumentUpload {
    /**
     * A UUID identifying the document.
     * @type {string}
     * @memberof IdentityDocumentUpload
     */
    document_id?: string;
    /**
     *
     * @type {IdentityDocumentUploadMetadata}
     * @memberof IdentityDocumentUpload
     */
    metadata?: IdentityDocumentUploadMetadata;
    /**
     *
     * @type {IdentityDocumentUploadRiskInsights}
     * @memberof IdentityDocumentUpload
     */
    risk_insights?: IdentityDocumentUploadRiskInsights;
}
/**
 * Metadata pertaining to the document.
 * @export
 * @interface IdentityDocumentUploadMetadata
 */
export interface IdentityDocumentUploadMetadata {
    /**
     * The submitted document type. Currently, this will always be `BANK_STATEMENT`.
     * @type {string}
     * @memberof IdentityDocumentUploadMetadata
     */
    document_type?: string | null;
    /**
     * Boolean field indicating whether the uploaded document\'s account number matches the account number we have on file. If `false`, it is not recommended to accept the uploaded identity data as accurate without further verification.
     * @type {boolean}
     * @memberof IdentityDocumentUploadMetadata
     */
    is_account_number_match?: boolean | null;
    /**
     * The number of pages in the uploaded document.
     * @type {number}
     * @memberof IdentityDocumentUploadMetadata
     */
    page_count?: number | null;
    /**
     * The timestamp when the document was last updated.
     * @type {string}
     * @memberof IdentityDocumentUploadMetadata
     */
    last_updated?: string;
    /**
     * The timestamp when the document was originally uploaded.
     * @type {string}
     * @memberof IdentityDocumentUploadMetadata
     */
    uploaded_at?: string;
}
/**
 * Object representing fraud risk data of the uploaded document. Only provided when using Identity Document Upload with Fraud Risk enabled.
 * @export
 * @interface IdentityDocumentUploadRiskInsights
 */
export interface IdentityDocumentUploadRiskInsights {
    /**
     *
     * @type {IdentityDocumentUploadRiskSummary}
     * @memberof IdentityDocumentUploadRiskInsights
     */
    risk_summary?: IdentityDocumentUploadRiskSummary;
    /**
     * An array of risk signals.
     * @type {Array<IdentityDocumentUploadRiskSignal>}
     * @memberof IdentityDocumentUploadRiskInsights
     */
    risk_signals?: Array<IdentityDocumentUploadRiskSignal>;
}
/**
 * Risk signals tied to the document
 * @export
 * @interface IdentityDocumentUploadRiskSignal
 */
export interface IdentityDocumentUploadRiskSignal {
    /**
     * The type of risk found.
     * @type {string}
     * @memberof IdentityDocumentUploadRiskSignal
     */
    type?: string | null;
    /**
     * Indicates whether fraud risk was detected on the field.
     * @type {boolean}
     * @memberof IdentityDocumentUploadRiskSignal
     */
    has_fraud_risk?: boolean | null;
    /**
     * A human-readable explanation providing more detail about the specific risk signal.
     * @type {string}
     * @memberof IdentityDocumentUploadRiskSignal
     */
    signal_description?: string | null;
    /**
     * The relevant page associated with the risk signal. If the risk signal is not associated with a specific page, the value will be 0.
     * @type {number}
     * @memberof IdentityDocumentUploadRiskSignal
     */
    page_number?: number | null;
}
/**
 * Risk summary of an uploaded document.
 * @export
 * @interface IdentityDocumentUploadRiskSummary
 */
export interface IdentityDocumentUploadRiskSummary {
    /**
     * A number between 0 and 100, inclusive, where a score closer to 0 indicates a document is likely to be trustworthy and a score closer to 100 indicates a document is likely to be fraudulent.
     * @type {number}
     * @memberof IdentityDocumentUploadRiskSummary
     */
    risk_score?: number | null;
}
/**
 * IdentityDocumentsUploadsGetRequest defines the request schema for `/identity/documents/uploads/get`
 * @export
 * @interface IdentityDocumentsUploadsGetRequest
 */
export interface IdentityDocumentsUploadsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IdentityDocumentsUploadsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IdentityDocumentsUploadsGetRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof IdentityDocumentsUploadsGetRequest
     */
    access_token: string;
    /**
     *
     * @type {IdentityDocumentsUploadsGetRequestOptions}
     * @memberof IdentityDocumentsUploadsGetRequest
     */
    options?: IdentityDocumentsUploadsGetRequestOptions;
}
/**
 * An optional object to filter `/identity/documents/uploads/get` results.
 * @export
 * @interface IdentityDocumentsUploadsGetRequestOptions
 */
export interface IdentityDocumentsUploadsGetRequestOptions {
    /**
     * A list of `account_ids` to retrieve for the Item. Note: An error will be returned if a provided `account_id` is not associated with the Item.
     * @type {Array<string>}
     * @memberof IdentityDocumentsUploadsGetRequestOptions
     */
    account_ids?: Array<string>;
}
/**
 * IdentityDocumentsUploadsGetResponse defines the response schema for `/identity/documents/uploads/get`
 * @export
 * @interface IdentityDocumentsUploadsGetResponse
 */
export interface IdentityDocumentsUploadsGetResponse {
    /**
     * The accounts for which Identity data has been requested
     * @type {Array<AccountIdentityDocumentUpload>}
     * @memberof IdentityDocumentsUploadsGetResponse
     */
    accounts: Array<AccountIdentityDocumentUpload>;
    /**
     *
     * @type {Item}
     * @memberof IdentityDocumentsUploadsGetResponse
     */
    item: Item;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IdentityDocumentsUploadsGetResponse
     */
    request_id: string;
}
/**
 * IdentityGetRequest defines the request schema for `/identity/get`
 * @export
 * @interface IdentityGetRequest
 */
export interface IdentityGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IdentityGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IdentityGetRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof IdentityGetRequest
     */
    access_token: string;
    /**
     *
     * @type {IdentityGetRequestOptions}
     * @memberof IdentityGetRequest
     */
    options?: IdentityGetRequestOptions;
}
/**
 * An optional object to filter `/identity/get` results.
 * @export
 * @interface IdentityGetRequestOptions
 */
export interface IdentityGetRequestOptions {
    /**
     * A list of `account_ids` to retrieve for the Item. Note: An error will be returned if a provided `account_id` is not associated with the Item.
     * @type {Array<string>}
     * @memberof IdentityGetRequestOptions
     */
    account_ids?: Array<string>;
}
/**
 * IdentityGetResponse defines the response schema for `/identity/get`
 * @export
 * @interface IdentityGetResponse
 */
export interface IdentityGetResponse {
    /**
     * The accounts for which Identity data has been requested
     * @type {Array<AccountIdentity>}
     * @memberof IdentityGetResponse
     */
    accounts: Array<AccountIdentity>;
    /**
     *
     * @type {Item}
     * @memberof IdentityGetResponse
     */
    item: Item;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IdentityGetResponse
     */
    request_id: string;
}
/**
 * IdentityMatchRequest defines the request schema for `/identity/match`
 * @export
 * @interface IdentityMatchRequest
 */
export interface IdentityMatchRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IdentityMatchRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IdentityMatchRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof IdentityMatchRequest
     */
    access_token: string;
    /**
     *
     * @type {IdentityMatchUser}
     * @memberof IdentityMatchRequest
     */
    user?: IdentityMatchUser;
    /**
     *
     * @type {IdentityMatchRequestOptions}
     * @memberof IdentityMatchRequest
     */
    options?: IdentityMatchRequestOptions;
}
/**
 * An optional object to filter /identity/match results
 * @export
 * @interface IdentityMatchRequestOptions
 */
export interface IdentityMatchRequestOptions {
    /**
     * An array of `account_ids` to perform fuzzy match
     * @type {Array<string>}
     * @memberof IdentityMatchRequestOptions
     */
    account_ids?: Array<string>;
}
/**
 * IdentityMatchResponse defines the response schema for `/identity/match`
 * @export
 * @interface IdentityMatchResponse
 */
export interface IdentityMatchResponse {
    /**
     * The accounts for which Identity match has been requested
     * @type {Array<AccountIdentityMatchScore>}
     * @memberof IdentityMatchResponse
     */
    accounts: Array<AccountIdentityMatchScore>;
    /**
     *
     * @type {Item}
     * @memberof IdentityMatchResponse
     */
    item: Item;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IdentityMatchResponse
     */
    request_id: string;
}
/**
 * The user\'s legal name, phone number, email address and address used to perform fuzzy match. If Financial Account Matching is enabled in the Identity Verification product, leave this field empty to automatically match against PII collected from the Identity Verification checks.
 * @export
 * @interface IdentityMatchUser
 */
export interface IdentityMatchUser {
    /**
     * The user\'s full legal name.
     * @type {string}
     * @memberof IdentityMatchUser
     */
    legal_name?: string | null;
    /**
     * The user\'s phone number, in E.164 format: +{countrycode}{number}. For example: \"+14157452130\". Phone numbers provided in other formats will be parsed on a best-effort basis. Phone number input is validated against valid number ranges; number strings that do not match a real-world phone numbering scheme may cause the request to fail, even in the Sandbox test environment.
     * @type {string}
     * @memberof IdentityMatchUser
     */
    phone_number?: string | null;
    /**
     * The user\'s email address.
     * @type {string}
     * @memberof IdentityMatchUser
     */
    email_address?: string | null;
    /**
     *
     * @type {AddressDataNullableNoRequiredFields}
     * @memberof IdentityMatchUser
     */
    address?: AddressDataNullableNoRequiredFields | null;
}
/**
 * IdentityRefreshRequest defines the request schema for `/identity/refresh`
 * @export
 * @interface IdentityRefreshRequest
 */
export interface IdentityRefreshRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IdentityRefreshRequest
     */
    client_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof IdentityRefreshRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IdentityRefreshRequest
     */
    secret?: string;
}
/**
 * IdentityRefreshResponse defines the response schema for `/identity/refresh`
 * @export
 * @interface IdentityRefreshResponse
 */
export interface IdentityRefreshResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IdentityRefreshResponse
     */
    request_id: string;
}
/**
 * The possible types of identity data that may have changed.
 * @export
 * @enum {string}
 */
export declare enum IdentityUpdateTypes {
    Phones = "PHONES",
    Addresses = "ADDRESSES",
    Emails = "EMAILS",
    Names = "NAMES"
}
/**
 * A identity verification attempt represents a customer\'s attempt to verify their identity, reflecting the required steps for completing the session, the results for each step, and information collected in the process.
 * @export
 * @interface IdentityVerification
 */
export interface IdentityVerification {
    /**
     * ID of the associated Identity Verification attempt.
     * @type {string}
     * @memberof IdentityVerification
     */
    id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof IdentityVerification
     */
    client_user_id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerification
     */
    created_at: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerification
     */
    completed_at: string | null;
    /**
     * The ID for the Identity Verification preceding this session. This field will only be filled if the current Identity Verification is a retry of a previous attempt.
     * @type {string}
     * @memberof IdentityVerification
     */
    previous_attempt_id: string | null;
    /**
     * A shareable URL that can be sent directly to the user to complete verification
     * @type {string}
     * @memberof IdentityVerification
     */
    shareable_url: string | null;
    /**
     *
     * @type {IdentityVerificationTemplateReference}
     * @memberof IdentityVerification
     */
    template: IdentityVerificationTemplateReference;
    /**
     *
     * @type {IdentityVerificationUserData}
     * @memberof IdentityVerification
     */
    user: IdentityVerificationUserData;
    /**
     *
     * @type {IdentityVerificationStatus}
     * @memberof IdentityVerification
     */
    status: IdentityVerificationStatus;
    /**
     *
     * @type {IdentityVerificationStepSummary}
     * @memberof IdentityVerification
     */
    steps: IdentityVerificationStepSummary;
    /**
     *
     * @type {DocumentaryVerification}
     * @memberof IdentityVerification
     */
    documentary_verification: DocumentaryVerification | null;
    /**
     *
     * @type {SelfieCheck}
     * @memberof IdentityVerification
     */
    selfie_check: SelfieCheck | null;
    /**
     *
     * @type {KYCCheckDetails}
     * @memberof IdentityVerification
     */
    kyc_check: KYCCheckDetails | null;
    /**
     *
     * @type {RiskCheckDetails}
     * @memberof IdentityVerification
     */
    risk_check: RiskCheckDetails | null;
    /**
     *
     * @type {VerifySMSDetails}
     * @memberof IdentityVerification
     */
    verify_sms: VerifySMSDetails | null;
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof IdentityVerification
     */
    watchlist_screening_id: string | null;
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof IdentityVerification
     */
    beacon_user_id: string | null;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerification
     */
    redacted_at: string | null;
}
/**
 * Even if an address has been autofilled, some fields may be null depending on the region\'s addressing system. For example:  Addresses from the United Kingdom will not include a region  Addresses from Hong Kong will not include postal code
 * @export
 * @interface IdentityVerificationAutofillAddress
 */
export interface IdentityVerificationAutofillAddress {
    /**
     * The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
     * @type {string}
     * @memberof IdentityVerificationAutofillAddress
     */
    street: string;
    /**
     * Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
     * @type {string}
     * @memberof IdentityVerificationAutofillAddress
     */
    street2: string | null;
    /**
     * City from the end user\'s address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters.\"
     * @type {string}
     * @memberof IdentityVerificationAutofillAddress
     */
    city: string | null;
    /**
     * An ISO 3166-2 subdivision code. Related terms would be \"state\", \"province\", \"prefecture\", \"zone\", \"subdivision\", etc.
     * @type {string}
     * @memberof IdentityVerificationAutofillAddress
     */
    region: string | null;
    /**
     * The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
     * @type {string}
     * @memberof IdentityVerificationAutofillAddress
     */
    postal_code: string | null;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof IdentityVerificationAutofillAddress
     */
    country: string;
    /**
     *
     * @type {POBoxStatus}
     * @memberof IdentityVerificationAutofillAddress
     */
    po_box: POBoxStatus;
    /**
     *
     * @type {AddressPurposeLabel}
     * @memberof IdentityVerificationAutofillAddress
     */
    type: AddressPurposeLabel;
}
/**
 * Request input to autofill an Identity Verification
 * @export
 * @interface IdentityVerificationAutofillCreateRequest
 */
export interface IdentityVerificationAutofillCreateRequest {
    /**
     * ID of the associated Identity Verification attempt.
     * @type {string}
     * @memberof IdentityVerificationAutofillCreateRequest
     */
    identity_verification_id: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IdentityVerificationAutofillCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IdentityVerificationAutofillCreateRequest
     */
    secret?: string;
}
/**
 * Autofill represents unverified customer information. This needs to be confirmed by the customer before using.
 * @export
 * @interface IdentityVerificationAutofillCreateResponse
 */
export interface IdentityVerificationAutofillCreateResponse {
    /**
     *
     * @type {IdentityVerificationAutofillStatus}
     * @memberof IdentityVerificationAutofillCreateResponse
     */
    status: IdentityVerificationAutofillStatus;
    /**
     *
     * @type {IdentityVerificationAutofillUserData}
     * @memberof IdentityVerificationAutofillCreateResponse
     */
    user: IdentityVerificationAutofillUserData | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IdentityVerificationAutofillCreateResponse
     */
    request_id: string;
}
/**
 * A status enum indicating whether autofill succeeded or failed.
 * @export
 * @enum {string}
 */
export declare enum IdentityVerificationAutofillStatus {
    Success = "success",
    Failed = "failed"
}
/**
 * User information that was autofilled. All this information should be confirmed by the user before using.
 * @export
 * @interface IdentityVerificationAutofillUserData
 */
export interface IdentityVerificationAutofillUserData {
    /**
     *
     * @type {IdentityVerificationResponseUserName}
     * @memberof IdentityVerificationAutofillUserData
     */
    name: IdentityVerificationResponseUserName | null;
    /**
     *
     * @type {IdentityVerificationAutofillAddress}
     * @memberof IdentityVerificationAutofillUserData
     */
    address: IdentityVerificationAutofillAddress | null;
    /**
     *
     * @type {UserIDNumber}
     * @memberof IdentityVerificationAutofillUserData
     */
    id_number: UserIDNumber | null;
}
/**
 * Request schema for \'/identity_verification/create\'
 * @export
 * @interface IdentityVerificationCreateRequest
 */
export interface IdentityVerificationCreateRequest {
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof IdentityVerificationCreateRequest
     */
    client_user_id?: string;
    /**
     * A flag specifying whether you would like Plaid to expose a shareable URL for the verification being created.
     * @type {boolean}
     * @memberof IdentityVerificationCreateRequest
     */
    is_shareable: boolean;
    /**
     * ID of the associated Identity Verification template.
     * @type {string}
     * @memberof IdentityVerificationCreateRequest
     */
    template_id: string;
    /**
     * A flag specifying whether the end user has already agreed to a privacy policy specifying that their data will be shared with Plaid for verification purposes.  If `gave_consent` is set to `true`, the `accept_tos` step will be marked as `skipped` and the end user\'s session will start at the next step requirement.
     * @type {boolean}
     * @memberof IdentityVerificationCreateRequest
     */
    gave_consent: boolean;
    /**
     *
     * @type {IdentityVerificationCreateRequestUser}
     * @memberof IdentityVerificationCreateRequest
     */
    user?: IdentityVerificationCreateRequestUser | null;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IdentityVerificationCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IdentityVerificationCreateRequest
     */
    secret?: string;
    /**
     * An optional flag specifying how you would like Plaid to handle attempts to create an Identity Verification when an Identity Verification already exists for the provided `client_user_id` and `template_id`. If idempotency is enabled, Plaid will return the existing Identity Verification. If idempotency is disabled, Plaid will reject the request with a `400 Bad Request` status code if an Identity Verification already exists for the supplied `client_user_id` and `template_id`.
     * @type {boolean}
     * @memberof IdentityVerificationCreateRequest
     */
    is_idempotent?: boolean | null;
}
/**
 * User information collected outside of Link, most likely via your own onboarding process.  Each of the following identity fields are optional:  `email_address`  `phone_number`  `date_of_birth`  `name`  `address`  `id_number`  Specifically, these fields are optional in that they can either be fully provided (satisfying every required field in their subschema) or omitted from the request entirely by not providing the key or value. Providing these fields via the API will result in Link skipping the data collection process for the associated user. All verification steps enabled in the associated Identity Verification Template will still be run. Verification steps will either be run immediately, or once the user completes the `accept_tos` step, depending on the value provided to the `gave_consent` field. If you are not using the shareable URL feature, you can optionally provide these fields via `/link/token/create` instead; both `/identity_verification/create` and `/link/token/create` are valid ways to provide this information. Note that if you provide a non-`null` user data object via `/identity_verification/create`, any user data fields entered via `/link/token/create` for the same `client_user_id` will be ignored when prefilling Link.
 * @export
 * @interface IdentityVerificationCreateRequestUser
 */
export interface IdentityVerificationCreateRequestUser {
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof IdentityVerificationCreateRequestUser
     */
    email_address?: string;
    /**
     * A valid phone number in E.164 format.
     * @type {string}
     * @memberof IdentityVerificationCreateRequestUser
     */
    phone_number?: string | null;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof IdentityVerificationCreateRequestUser
     */
    date_of_birth?: string;
    /**
     *
     * @type {IdentityVerificationRequestUserName}
     * @memberof IdentityVerificationCreateRequestUser
     */
    name?: IdentityVerificationRequestUserName | null;
    /**
     *
     * @type {UserAddress}
     * @memberof IdentityVerificationCreateRequestUser
     */
    address?: UserAddress | null;
    /**
     *
     * @type {UserIDNumber}
     * @memberof IdentityVerificationCreateRequestUser
     */
    id_number?: UserIDNumber | null;
    /**
     * Specifying `user.client_user_id` is deprecated. Please provide `client_user_id` at the root level instead.
     * @type {string}
     * @memberof IdentityVerificationCreateRequestUser
     * @deprecated
     */
    client_user_id?: string | null;
}
/**
 * A identity verification attempt represents a customer\'s attempt to verify their identity, reflecting the required steps for completing the session, the results for each step, and information collected in the process.
 * @export
 * @interface IdentityVerificationCreateResponse
 */
export interface IdentityVerificationCreateResponse {
    /**
     * ID of the associated Identity Verification attempt.
     * @type {string}
     * @memberof IdentityVerificationCreateResponse
     */
    id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof IdentityVerificationCreateResponse
     */
    client_user_id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerificationCreateResponse
     */
    created_at: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerificationCreateResponse
     */
    completed_at: string | null;
    /**
     * The ID for the Identity Verification preceding this session. This field will only be filled if the current Identity Verification is a retry of a previous attempt.
     * @type {string}
     * @memberof IdentityVerificationCreateResponse
     */
    previous_attempt_id: string | null;
    /**
     * A shareable URL that can be sent directly to the user to complete verification
     * @type {string}
     * @memberof IdentityVerificationCreateResponse
     */
    shareable_url: string | null;
    /**
     *
     * @type {IdentityVerificationTemplateReference}
     * @memberof IdentityVerificationCreateResponse
     */
    template: IdentityVerificationTemplateReference;
    /**
     *
     * @type {IdentityVerificationUserData}
     * @memberof IdentityVerificationCreateResponse
     */
    user: IdentityVerificationUserData;
    /**
     *
     * @type {IdentityVerificationStatus}
     * @memberof IdentityVerificationCreateResponse
     */
    status: IdentityVerificationStatus;
    /**
     *
     * @type {IdentityVerificationStepSummary}
     * @memberof IdentityVerificationCreateResponse
     */
    steps: IdentityVerificationStepSummary;
    /**
     *
     * @type {DocumentaryVerification}
     * @memberof IdentityVerificationCreateResponse
     */
    documentary_verification: DocumentaryVerification | null;
    /**
     *
     * @type {SelfieCheck}
     * @memberof IdentityVerificationCreateResponse
     */
    selfie_check: SelfieCheck | null;
    /**
     *
     * @type {KYCCheckDetails}
     * @memberof IdentityVerificationCreateResponse
     */
    kyc_check: KYCCheckDetails | null;
    /**
     *
     * @type {RiskCheckDetails}
     * @memberof IdentityVerificationCreateResponse
     */
    risk_check: RiskCheckDetails | null;
    /**
     *
     * @type {VerifySMSDetails}
     * @memberof IdentityVerificationCreateResponse
     */
    verify_sms: VerifySMSDetails | null;
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof IdentityVerificationCreateResponse
     */
    watchlist_screening_id: string | null;
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof IdentityVerificationCreateResponse
     */
    beacon_user_id: string | null;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerificationCreateResponse
     */
    redacted_at: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IdentityVerificationCreateResponse
     */
    request_id: string;
}
/**
 * The address extracted from the document. The address must at least contain the following fields to be a valid address: `street`, `city`, `country`. If any are missing or unable to be extracted, the address will be null.  `region`, and `postal_code` may be null based on the addressing system. For example:  Addresses from the United Kingdom will not include a region  Addresses from Hong Kong will not include postal code  Note: Optical Character Recognition (OCR) technology may sometimes extract incorrect data from a document.
 * @export
 * @interface IdentityVerificationDocumentAddressResponse
 */
export interface IdentityVerificationDocumentAddressResponse {
    /**
     * The full street address extracted from the document.
     * @type {string}
     * @memberof IdentityVerificationDocumentAddressResponse
     */
    street: string;
    /**
     * City extracted from the document.
     * @type {string}
     * @memberof IdentityVerificationDocumentAddressResponse
     */
    city: string;
    /**
     * An ISO 3166-2 subdivision code extracted from the document. Related terms would be \"state\", \"province\", \"prefecture\", \"zone\", \"subdivision\", etc.
     * @type {string}
     * @memberof IdentityVerificationDocumentAddressResponse
     */
    region: string | null;
    /**
     * The postal code extracted from the document. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
     * @type {string}
     * @memberof IdentityVerificationDocumentAddressResponse
     */
    postal_code: string | null;
    /**
     * Valid, capitalized, two-letter ISO code representing the country extracted from the document. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof IdentityVerificationDocumentAddressResponse
     */
    country: string;
}
/**
 * The individual\'s name extracted from the document.
 * @export
 * @interface IdentityVerificationDocumentNameResponse
 */
export interface IdentityVerificationDocumentNameResponse {
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof IdentityVerificationDocumentNameResponse
     */
    given_name: string;
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof IdentityVerificationDocumentNameResponse
     */
    family_name: string;
}
/**
 * Request input for fetching an Identity Verification
 * @export
 * @interface IdentityVerificationGetRequest
 */
export interface IdentityVerificationGetRequest {
    /**
     * ID of the associated Identity Verification attempt.
     * @type {string}
     * @memberof IdentityVerificationGetRequest
     */
    identity_verification_id: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IdentityVerificationGetRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IdentityVerificationGetRequest
     */
    client_id?: string;
}
/**
 * A identity verification attempt represents a customer\'s attempt to verify their identity, reflecting the required steps for completing the session, the results for each step, and information collected in the process.
 * @export
 * @interface IdentityVerificationGetResponse
 */
export interface IdentityVerificationGetResponse {
    /**
     * ID of the associated Identity Verification attempt.
     * @type {string}
     * @memberof IdentityVerificationGetResponse
     */
    id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof IdentityVerificationGetResponse
     */
    client_user_id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerificationGetResponse
     */
    created_at: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerificationGetResponse
     */
    completed_at: string | null;
    /**
     * The ID for the Identity Verification preceding this session. This field will only be filled if the current Identity Verification is a retry of a previous attempt.
     * @type {string}
     * @memberof IdentityVerificationGetResponse
     */
    previous_attempt_id: string | null;
    /**
     * A shareable URL that can be sent directly to the user to complete verification
     * @type {string}
     * @memberof IdentityVerificationGetResponse
     */
    shareable_url: string | null;
    /**
     *
     * @type {IdentityVerificationTemplateReference}
     * @memberof IdentityVerificationGetResponse
     */
    template: IdentityVerificationTemplateReference;
    /**
     *
     * @type {IdentityVerificationUserData}
     * @memberof IdentityVerificationGetResponse
     */
    user: IdentityVerificationUserData;
    /**
     *
     * @type {IdentityVerificationStatus}
     * @memberof IdentityVerificationGetResponse
     */
    status: IdentityVerificationStatus;
    /**
     *
     * @type {IdentityVerificationStepSummary}
     * @memberof IdentityVerificationGetResponse
     */
    steps: IdentityVerificationStepSummary;
    /**
     *
     * @type {DocumentaryVerification}
     * @memberof IdentityVerificationGetResponse
     */
    documentary_verification: DocumentaryVerification | null;
    /**
     *
     * @type {SelfieCheck}
     * @memberof IdentityVerificationGetResponse
     */
    selfie_check: SelfieCheck | null;
    /**
     *
     * @type {KYCCheckDetails}
     * @memberof IdentityVerificationGetResponse
     */
    kyc_check: KYCCheckDetails | null;
    /**
     *
     * @type {RiskCheckDetails}
     * @memberof IdentityVerificationGetResponse
     */
    risk_check: RiskCheckDetails | null;
    /**
     *
     * @type {VerifySMSDetails}
     * @memberof IdentityVerificationGetResponse
     */
    verify_sms: VerifySMSDetails | null;
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof IdentityVerificationGetResponse
     */
    watchlist_screening_id: string | null;
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof IdentityVerificationGetResponse
     */
    beacon_user_id: string | null;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerificationGetResponse
     */
    redacted_at: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IdentityVerificationGetResponse
     */
    request_id: string;
}
/**
 * Request input for listing Identity Verifications
 * @export
 * @interface IdentityVerificationListRequest
 */
export interface IdentityVerificationListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IdentityVerificationListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IdentityVerificationListRequest
     */
    client_id?: string;
    /**
     * ID of the associated Identity Verification template.
     * @type {string}
     * @memberof IdentityVerificationListRequest
     */
    template_id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof IdentityVerificationListRequest
     */
    client_user_id: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof IdentityVerificationListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of Plaid sessions.
 * @export
 * @interface IdentityVerificationListResponse
 */
export interface IdentityVerificationListResponse {
    /**
     * List of Plaid sessions
     * @type {Array<IdentityVerification>}
     * @memberof IdentityVerificationListResponse
     */
    identity_verifications: Array<IdentityVerification>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof IdentityVerificationListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IdentityVerificationListResponse
     */
    request_id: string;
}
/**
 * User information collected outside of Link, most likely via your own onboarding process.  Each of the following identity fields are optional:  `email_address`  `phone_number`  `date_of_birth`  `name`  `address`  `id_number`  Specifically, these fields are optional in that they can either be fully provided (satisfying every required field in their subschema) or omitted from the request entirely by not providing the key or value. Providing these fields via the API will result in Link skipping the data collection process for the associated user. All verification steps enabled in the associated Identity Verification Template will still be run. Verification steps will either be run immediately, or once the user completes the `accept_tos` step, depending on the value provided to the `gave_consent` field.
 * @export
 * @interface IdentityVerificationRequestUser
 */
export interface IdentityVerificationRequestUser {
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof IdentityVerificationRequestUser
     */
    email_address?: string;
    /**
     * A valid phone number in E.164 format.
     * @type {string}
     * @memberof IdentityVerificationRequestUser
     */
    phone_number?: string | null;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof IdentityVerificationRequestUser
     */
    date_of_birth?: string;
    /**
     *
     * @type {IdentityVerificationRequestUserName}
     * @memberof IdentityVerificationRequestUser
     */
    name?: IdentityVerificationRequestUserName | null;
    /**
     *
     * @type {UserAddress}
     * @memberof IdentityVerificationRequestUser
     */
    address?: UserAddress | null;
    /**
     *
     * @type {UserIDNumber}
     * @memberof IdentityVerificationRequestUser
     */
    id_number?: UserIDNumber | null;
}
/**
 * You can use this field to pre-populate the user\'s legal name; if it is provided here, they will not be prompted to enter their name in the identity verification attempt.
 * @export
 * @interface IdentityVerificationRequestUserName
 */
export interface IdentityVerificationRequestUserName {
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof IdentityVerificationRequestUserName
     */
    given_name: string;
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof IdentityVerificationRequestUserName
     */
    family_name: string;
}
/**
 * The full name provided by the user. If the user has not submitted their name, this field will be null. Otherwise, both fields are guaranteed to be filled.
 * @export
 * @interface IdentityVerificationResponseUserName
 */
export interface IdentityVerificationResponseUserName {
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof IdentityVerificationResponseUserName
     */
    given_name: string;
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof IdentityVerificationResponseUserName
     */
    family_name: string;
}
/**
 * Fired when identity verification has been retried, which can be triggered via the dashboard or the API.
 * @export
 * @interface IdentityVerificationRetriedWebhook
 */
export interface IdentityVerificationRetriedWebhook {
    /**
     * `IDENTITY_VERIFICATION`
     * @type {string}
     * @memberof IdentityVerificationRetriedWebhook
     */
    webhook_type: string;
    /**
     * `RETRIED`
     * @type {string}
     * @memberof IdentityVerificationRetriedWebhook
     */
    webhook_code: string;
    /**
     * The ID of the associated Identity Verification attempt.
     * @type {string}
     * @memberof IdentityVerificationRetriedWebhook
     */
    identity_verification_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof IdentityVerificationRetriedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Request input for retrying an identity verification attempt
 * @export
 * @interface IdentityVerificationRetryRequest
 */
export interface IdentityVerificationRetryRequest {
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof IdentityVerificationRetryRequest
     */
    client_user_id: string;
    /**
     * ID of the associated Identity Verification template.
     * @type {string}
     * @memberof IdentityVerificationRetryRequest
     */
    template_id: string;
    /**
     *
     * @type {Strategy}
     * @memberof IdentityVerificationRetryRequest
     */
    strategy: Strategy;
    /**
     *
     * @type {IdentityVerificationRequestUser}
     * @memberof IdentityVerificationRetryRequest
     */
    user?: IdentityVerificationRequestUser | null;
    /**
     *
     * @type {IdentityVerificationRetryRequestStepsObject}
     * @memberof IdentityVerificationRetryRequest
     */
    steps?: IdentityVerificationRetryRequestStepsObject | null;
    /**
     * A flag specifying whether you would like Plaid to expose a shareable URL for the verification being retried. If a value for this flag is not specified, the `is_shareable` setting from the original verification attempt will be used.
     * @type {boolean}
     * @memberof IdentityVerificationRetryRequest
     */
    is_shareable?: boolean | null;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IdentityVerificationRetryRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IdentityVerificationRetryRequest
     */
    secret?: string;
}
/**
 * Instructions for the `custom` retry strategy specifying which steps should be required or skipped.   Note:   This field must be provided when the retry strategy is `custom` and must be omitted otherwise.  Custom retries override settings in your Plaid Template. For example, if your Plaid Template has `verify_sms` disabled, a custom retry with `verify_sms` enabled will still require the step.  The `selfie_check` step is currently not supported on the sandbox server. Sandbox requests will silently disable the `selfie_check` step when provided.
 * @export
 * @interface IdentityVerificationRetryRequestStepsObject
 */
export interface IdentityVerificationRetryRequestStepsObject {
    /**
     * A boolean field specifying whether the new session should require or skip the `verify_sms` step.
     * @type {boolean}
     * @memberof IdentityVerificationRetryRequestStepsObject
     */
    verify_sms: boolean;
    /**
     * A boolean field specifying whether the new session should require or skip the `kyc_check` (Data Source Verification) step.
     * @type {boolean}
     * @memberof IdentityVerificationRetryRequestStepsObject
     */
    kyc_check: boolean;
    /**
     * A boolean field specifying whether the new session should require or skip the `documentary_verification` step.
     * @type {boolean}
     * @memberof IdentityVerificationRetryRequestStepsObject
     */
    documentary_verification: boolean;
    /**
     * A boolean field specifying whether the new session should require or skip the `selfie_check` step.
     * @type {boolean}
     * @memberof IdentityVerificationRetryRequestStepsObject
     */
    selfie_check: boolean;
}
/**
 * A identity verification attempt represents a customer\'s attempt to verify their identity, reflecting the required steps for completing the session, the results for each step, and information collected in the process.
 * @export
 * @interface IdentityVerificationRetryResponse
 */
export interface IdentityVerificationRetryResponse {
    /**
     * ID of the associated Identity Verification attempt.
     * @type {string}
     * @memberof IdentityVerificationRetryResponse
     */
    id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof IdentityVerificationRetryResponse
     */
    client_user_id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerificationRetryResponse
     */
    created_at: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerificationRetryResponse
     */
    completed_at: string | null;
    /**
     * The ID for the Identity Verification preceding this session. This field will only be filled if the current Identity Verification is a retry of a previous attempt.
     * @type {string}
     * @memberof IdentityVerificationRetryResponse
     */
    previous_attempt_id: string | null;
    /**
     * A shareable URL that can be sent directly to the user to complete verification
     * @type {string}
     * @memberof IdentityVerificationRetryResponse
     */
    shareable_url: string | null;
    /**
     *
     * @type {IdentityVerificationTemplateReference}
     * @memberof IdentityVerificationRetryResponse
     */
    template: IdentityVerificationTemplateReference;
    /**
     *
     * @type {IdentityVerificationUserData}
     * @memberof IdentityVerificationRetryResponse
     */
    user: IdentityVerificationUserData;
    /**
     *
     * @type {IdentityVerificationStatus}
     * @memberof IdentityVerificationRetryResponse
     */
    status: IdentityVerificationStatus;
    /**
     *
     * @type {IdentityVerificationStepSummary}
     * @memberof IdentityVerificationRetryResponse
     */
    steps: IdentityVerificationStepSummary;
    /**
     *
     * @type {DocumentaryVerification}
     * @memberof IdentityVerificationRetryResponse
     */
    documentary_verification: DocumentaryVerification | null;
    /**
     *
     * @type {SelfieCheck}
     * @memberof IdentityVerificationRetryResponse
     */
    selfie_check: SelfieCheck | null;
    /**
     *
     * @type {KYCCheckDetails}
     * @memberof IdentityVerificationRetryResponse
     */
    kyc_check: KYCCheckDetails | null;
    /**
     *
     * @type {RiskCheckDetails}
     * @memberof IdentityVerificationRetryResponse
     */
    risk_check: RiskCheckDetails | null;
    /**
     *
     * @type {VerifySMSDetails}
     * @memberof IdentityVerificationRetryResponse
     */
    verify_sms: VerifySMSDetails | null;
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof IdentityVerificationRetryResponse
     */
    watchlist_screening_id: string | null;
    /**
     * ID of the associated Beacon User.
     * @type {string}
     * @memberof IdentityVerificationRetryResponse
     */
    beacon_user_id: string | null;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IdentityVerificationRetryResponse
     */
    redacted_at: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IdentityVerificationRetryResponse
     */
    request_id: string;
}
/**
 * The status of this Identity Verification attempt.   `active` - The Identity Verification attempt is incomplete. The user may have completed part of the session, but has neither failed or passed.  `success` - The Identity Verification attempt has completed, passing all steps defined to the associated Identity Verification template  `failed` - The user failed one or more steps in the session and was told to contact support.  `expired` - The Identity Verification attempt was active for a long period of time without being completed and was automatically marked as expired. Note that sessions currently do not expire. Automatic expiration is expected to be enabled in the future.  `canceled` - The Identity Verification attempt was canceled, either via the dashboard by a user, or via API. The user may have completed part of the session, but has neither failed or passed.  `pending_review` - The Identity Verification attempt template was configured to perform a screening that had one or more hits needing review.
 * @export
 * @enum {string}
 */
export declare enum IdentityVerificationStatus {
    Active = "active",
    Success = "success",
    Failed = "failed",
    Expired = "expired",
    Canceled = "canceled",
    PendingReview = "pending_review"
}
/**
 * Fired when the status of an identity verification has been updated, which can be triggered via the dashboard or the API.
 * @export
 * @interface IdentityVerificationStatusUpdatedWebhook
 */
export interface IdentityVerificationStatusUpdatedWebhook {
    /**
     * `IDENTITY_VERIFICATION`
     * @type {string}
     * @memberof IdentityVerificationStatusUpdatedWebhook
     */
    webhook_type: string;
    /**
     * `STATUS_UPDATED`
     * @type {string}
     * @memberof IdentityVerificationStatusUpdatedWebhook
     */
    webhook_code: string;
    /**
     * The ID of the associated Identity Verification attempt.
     * @type {string}
     * @memberof IdentityVerificationStatusUpdatedWebhook
     */
    identity_verification_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof IdentityVerificationStatusUpdatedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * The status of a step in the Identity Verification process.
 * @export
 * @enum {string}
 */
export declare enum IdentityVerificationStepStatus {
    Success = "success",
    Active = "active",
    Failed = "failed",
    WaitingForPrerequisite = "waiting_for_prerequisite",
    NotApplicable = "not_applicable",
    Skipped = "skipped",
    Expired = "expired",
    Canceled = "canceled",
    PendingReview = "pending_review",
    ManuallyApproved = "manually_approved",
    ManuallyRejected = "manually_rejected"
}
/**
 * Each step will be one of the following values:   `active` - This step is the user\'s current step. They are either in the process of completing this step, or they recently closed their Identity Verification attempt while in the middle of this step. Only one step will be marked as `active` at any given point.  `success` - The Identity Verification attempt has completed this step.  `failed` - The user failed this step. This can either call the user to fail the session as a whole, or cause them to fallback to another step depending on how the Identity Verification template is configured. A failed step does not imply a failed session.  `waiting_for_prerequisite` - The user needs to complete another step first, before they progress to this step. This step may never run, depending on if the user fails an earlier step or if the step is only run as a fallback.  `not_applicable` - This step will not be run for this session.  `skipped` - The retry instructions that created this Identity Verification attempt specified that this step should be skipped.  `expired` - This step had not yet been completed when the Identity Verification attempt as a whole expired.  `canceled` - The Identity Verification attempt was canceled before the user completed this step.  `pending_review` - The Identity Verification attempt template was configured to perform a screening that had one or more hits needing review.  `manually_approved` - The step was manually overridden to pass by a team member in the dashboard.  `manually_rejected` - The step was manually overridden to fail by a team member in the dashboard.
 * @export
 * @interface IdentityVerificationStepSummary
 */
export interface IdentityVerificationStepSummary {
    /**
     *
     * @type {IdentityVerificationStepStatus}
     * @memberof IdentityVerificationStepSummary
     */
    accept_tos: IdentityVerificationStepStatus;
    /**
     *
     * @type {IdentityVerificationStepStatus}
     * @memberof IdentityVerificationStepSummary
     */
    verify_sms: IdentityVerificationStepStatus;
    /**
     *
     * @type {IdentityVerificationStepStatus}
     * @memberof IdentityVerificationStepSummary
     */
    kyc_check: IdentityVerificationStepStatus;
    /**
     *
     * @type {IdentityVerificationStepStatus}
     * @memberof IdentityVerificationStepSummary
     */
    documentary_verification: IdentityVerificationStepStatus;
    /**
     *
     * @type {IdentityVerificationStepStatus}
     * @memberof IdentityVerificationStepSummary
     */
    selfie_check: IdentityVerificationStepStatus;
    /**
     *
     * @type {IdentityVerificationStepStatus}
     * @memberof IdentityVerificationStepSummary
     */
    watchlist_screening: IdentityVerificationStepStatus;
    /**
     *
     * @type {IdentityVerificationStepStatus}
     * @memberof IdentityVerificationStepSummary
     */
    risk_check: IdentityVerificationStepStatus;
}
/**
 * Fired when an end user has completed a step of the Identity Verification process.
 * @export
 * @interface IdentityVerificationStepUpdatedWebhook
 */
export interface IdentityVerificationStepUpdatedWebhook {
    /**
     * `IDENTITY_VERIFICATION`
     * @type {string}
     * @memberof IdentityVerificationStepUpdatedWebhook
     */
    webhook_type: string;
    /**
     * `STEP_UPDATED`
     * @type {string}
     * @memberof IdentityVerificationStepUpdatedWebhook
     */
    webhook_code: string;
    /**
     * The ID of the associated Identity Verification attempt.
     * @type {string}
     * @memberof IdentityVerificationStepUpdatedWebhook
     */
    identity_verification_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof IdentityVerificationStepUpdatedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * The resource ID and version number of the template configuring the behavior of a given Identity Verification.
 * @export
 * @interface IdentityVerificationTemplateReference
 */
export interface IdentityVerificationTemplateReference {
    /**
     * ID of the associated Identity Verification template.
     * @type {string}
     * @memberof IdentityVerificationTemplateReference
     */
    id: string;
    /**
     * Version of the associated Identity Verification template.
     * @type {number}
     * @memberof IdentityVerificationTemplateReference
     */
    version: number;
}
/**
 * Even if an address has been collected, some fields may be null depending on the region\'s addressing system. For example:  Addresses from the United Kingdom will not include a region  Addresses from Hong Kong will not include postal code
 * @export
 * @interface IdentityVerificationUserAddress
 */
export interface IdentityVerificationUserAddress {
    /**
     * The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
     * @type {string}
     * @memberof IdentityVerificationUserAddress
     */
    street: string | null;
    /**
     * Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
     * @type {string}
     * @memberof IdentityVerificationUserAddress
     */
    street2: string | null;
    /**
     * City from the end user\'s address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters.\"
     * @type {string}
     * @memberof IdentityVerificationUserAddress
     */
    city: string | null;
    /**
     * An ISO 3166-2 subdivision code. Related terms would be \"state\", \"province\", \"prefecture\", \"zone\", \"subdivision\", etc.
     * @type {string}
     * @memberof IdentityVerificationUserAddress
     */
    region: string | null;
    /**
     * The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
     * @type {string}
     * @memberof IdentityVerificationUserAddress
     */
    postal_code: string | null;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof IdentityVerificationUserAddress
     */
    country: string;
}
/**
 * The identity data that was either collected from the user or provided via API in order to perform an Identity Verification.
 * @export
 * @interface IdentityVerificationUserData
 */
export interface IdentityVerificationUserData {
    /**
     * A valid phone number in E.164 format.
     * @type {string}
     * @memberof IdentityVerificationUserData
     */
    phone_number?: string | null;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof IdentityVerificationUserData
     */
    date_of_birth: string | null;
    /**
     * An IPv4 or IPV6 address.
     * @type {string}
     * @memberof IdentityVerificationUserData
     */
    ip_address: string | null;
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof IdentityVerificationUserData
     */
    email_address: string | null;
    /**
     *
     * @type {IdentityVerificationResponseUserName}
     * @memberof IdentityVerificationUserData
     */
    name: IdentityVerificationResponseUserName | null;
    /**
     *
     * @type {IdentityVerificationUserAddress}
     * @memberof IdentityVerificationUserData
     */
    address: IdentityVerificationUserAddress | null;
    /**
     *
     * @type {UserIDNumber}
     * @memberof IdentityVerificationUserData
     */
    id_number: UserIDNumber | null;
}
/**
 * A high level description of the quality of the image the user submitted.  For example, an image that is blurry, distorted by glare from a nearby light source, or improperly framed might be marked as low or medium quality. Poor quality images are more likely to fail OCR and/or template conformity checks.  Note: By default, Plaid will let a user recapture document images twice before failing the entire session if we attribute the failure to low image quality.
 * @export
 * @enum {string}
 */
export declare enum ImageQuality {
    High = "high",
    Medium = "medium",
    Low = "low"
}
/**
 * Details about the image quality of the document.
 * @export
 * @interface ImageQualityDetails
 */
export interface ImageQualityDetails {
    /**
     *
     * @type {ImageQualityOutcome}
     * @memberof ImageQualityDetails
     */
    glare_check: ImageQualityOutcome;
    /**
     *
     * @type {ImageQualityOutcome}
     * @memberof ImageQualityDetails
     */
    dimensions_check: ImageQualityOutcome;
    /**
     *
     * @type {ImageQualityOutcome}
     * @memberof ImageQualityDetails
     */
    blur_check: ImageQualityOutcome;
}
/**
 * The outcome of the image quality check.
 * @export
 * @enum {string}
 */
export declare enum ImageQualityOutcome {
    Success = "success",
    Failed = "failed"
}
/**
 * An update on the health incident
 * @export
 * @interface IncidentUpdate
 */
export interface IncidentUpdate {
    /**
     * The content of the update.
     * @type {string}
     * @memberof IncidentUpdate
     */
    description?: string;
    /**
     * The status of the incident.
     * @type {string}
     * @memberof IncidentUpdate
     */
    status?: IncidentUpdateStatusEnum;
    /**
     * The date when the update was published, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2020-10-30T15:26:48Z\"`.
     * @type {string}
     * @memberof IncidentUpdate
     */
    updated_date?: string;
}
/**
    * @export
    * @enum {string}
    */
export declare enum IncidentUpdateStatusEnum {
    Investigating = "INVESTIGATING",
    Identified = "IDENTIFIED",
    Scheduled = "SCHEDULED",
    Resolved = "RESOLVED",
    Unknown = "UNKNOWN"
}
/**
 * An object representing a breakdown of the different income types on the paystub.
 * @export
 * @interface IncomeBreakdown
 */
export interface IncomeBreakdown {
    /**
     *
     * @type {IncomeBreakdownType}
     * @memberof IncomeBreakdown
     */
    type: IncomeBreakdownType | null;
    /**
     * The hourly rate at which the income is paid.
     * @type {number}
     * @memberof IncomeBreakdown
     */
    rate: number | null;
    /**
     * The number of hours logged for this income for this pay period.
     * @type {number}
     * @memberof IncomeBreakdown
     */
    hours: number | null;
    /**
     * The total pay for this pay period.
     * @type {number}
     * @memberof IncomeBreakdown
     */
    total: number | null;
}
/**
 * The type of income. Possible values include:   `\"regular\"`: regular income   `\"overtime\"`: overtime income   `\"bonus\"`: bonus income
 * @export
 * @enum {string}
 */
export declare enum IncomeBreakdownType {
    Bonus = "bonus",
    Overtime = "overtime",
    Regular = "regular",
    Null = "null"
}
/**
 * Specify payroll data on the account.
 * @export
 * @interface IncomeOverride
 */
export interface IncomeOverride {
    /**
     * A list of paystubs associated with the account.
     * @type {Array<PaystubOverride>}
     * @memberof IncomeOverride
     */
    paystubs?: Array<PaystubOverride>;
    /**
     * A list of w2s associated with the account.
     * @type {Array<W2Override>}
     * @memberof IncomeOverride
     */
    w2s?: Array<W2Override>;
}
/**
 * Details about the number of income sources
 * @export
 * @interface IncomeSourcesCounts
 */
export interface IncomeSourcesCounts {
    /**
     * The number of income sources detected at the subscription date
     * @type {number}
     * @memberof IncomeSourcesCounts
     */
    baseline_count: number;
    /**
     * The number of income sources currently detected
     * @type {number}
     * @memberof IncomeSourcesCounts
     */
    current_count: number;
}
/**
 * The verified fields from a paystub verification. All fields are provided as reported on the paystub.
 * @export
 * @interface IncomeSummary
 */
export interface IncomeSummary {
    /**
     *
     * @type {EmployerIncomeSummaryFieldString}
     * @memberof IncomeSummary
     */
    employer_name: EmployerIncomeSummaryFieldString;
    /**
     *
     * @type {EmployeeIncomeSummaryFieldString}
     * @memberof IncomeSummary
     */
    employee_name: EmployeeIncomeSummaryFieldString;
    /**
     *
     * @type {YTDGrossIncomeSummaryFieldNumber}
     * @memberof IncomeSummary
     */
    ytd_gross_income: YTDGrossIncomeSummaryFieldNumber;
    /**
     *
     * @type {YTDNetIncomeSummaryFieldNumber}
     * @memberof IncomeSummary
     */
    ytd_net_income: YTDNetIncomeSummaryFieldNumber;
    /**
     *
     * @type {PayFrequency}
     * @memberof IncomeSummary
     */
    pay_frequency: PayFrequency | null;
    /**
     *
     * @type {ProjectedIncomeSummaryFieldNumber}
     * @memberof IncomeSummary
     */
    projected_wage: ProjectedIncomeSummaryFieldNumber;
    /**
     *
     * @type {TransactionData}
     * @memberof IncomeSummary
     */
    verified_transaction: TransactionData | null;
}
/**
 * Field number for income summary
 * @export
 * @interface IncomeSummaryFieldNumber
 */
export interface IncomeSummaryFieldNumber {
    /**
     * The value of the field.
     * @type {number}
     * @memberof IncomeSummaryFieldNumber
     */
    value: number;
    /**
     *
     * @type {VerificationStatus}
     * @memberof IncomeSummaryFieldNumber
     */
    verification_status: VerificationStatus;
}
/**
 * Data about the income summary
 * @export
 * @interface IncomeSummaryFieldString
 */
export interface IncomeSummaryFieldString {
    /**
     * The value of the field.
     * @type {string}
     * @memberof IncomeSummaryFieldString
     */
    value: string;
    /**
     *
     * @type {VerificationStatus}
     * @memberof IncomeSummaryFieldString
     */
    verification_status: VerificationStatus;
}
/**
 * IncomeVerificationCreateRequest defines the request schema for `/income/verification/create`
 * @export
 * @interface IncomeVerificationCreateRequest
 */
export interface IncomeVerificationCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IncomeVerificationCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IncomeVerificationCreateRequest
     */
    secret?: string;
    /**
     * The URL endpoint to which Plaid should send webhooks related to the progress of the income verification process.
     * @type {string}
     * @memberof IncomeVerificationCreateRequest
     */
    webhook: string;
    /**
     * The ID of a precheck created with `/income/verification/precheck`. Will be used to improve conversion of the income verification flow.
     * @type {string}
     * @memberof IncomeVerificationCreateRequest
     */
    precheck_id?: string;
    /**
     *
     * @type {IncomeVerificationCreateRequestOptions}
     * @memberof IncomeVerificationCreateRequest
     */
    options?: IncomeVerificationCreateRequestOptions;
}
/**
 * Optional arguments for `/income/verification/create`
 * @export
 * @interface IncomeVerificationCreateRequestOptions
 */
export interface IncomeVerificationCreateRequestOptions {
    /**
     * An array of access tokens corresponding to the Items that will be cross-referenced with the product data. Plaid will attempt to correlate transaction history from these Items with data from the user\'s paystub, such as date and amount. If the `transactions` product was not initialized for the Items during Link, it will be initialized after this Link session.
     * @type {Array<string>}
     * @memberof IncomeVerificationCreateRequestOptions
     */
    access_tokens?: Array<string>;
}
/**
 * IncomeVerificationCreateResponse defines the response schema for `/income/verification/create`.
 * @export
 * @interface IncomeVerificationCreateResponse
 */
export interface IncomeVerificationCreateResponse {
    /**
     * ID of the verification. This ID is persisted throughout the lifetime of the verification.
     * @type {string}
     * @memberof IncomeVerificationCreateResponse
     */
    income_verification_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IncomeVerificationCreateResponse
     */
    request_id: string;
}
/**
 * Analysis options to enable for document parsing
 * @export
 * @enum {string}
 */
export declare enum IncomeVerificationDocParsingConfig {
    Ocr = "ocr",
    RiskSignals = "risk_signals"
}
/**
 * IncomeVerificationDocumentsDownloadRequest defines the request schema for `/income/verification/documents/download`.
 * @export
 * @interface IncomeVerificationDocumentsDownloadRequest
 */
export interface IncomeVerificationDocumentsDownloadRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IncomeVerificationDocumentsDownloadRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IncomeVerificationDocumentsDownloadRequest
     */
    secret?: string;
    /**
     * The ID of the verification.
     * @type {string}
     * @memberof IncomeVerificationDocumentsDownloadRequest
     * @deprecated
     */
    income_verification_id?: string | null;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof IncomeVerificationDocumentsDownloadRequest
     */
    access_token?: string | null;
    /**
     * The document ID to download. If passed, a single document will be returned in the resulting zip file, rather than all document
     * @type {string}
     * @memberof IncomeVerificationDocumentsDownloadRequest
     */
    document_id?: string | null;
}
/**
 * Flow types to retrieve payroll income data
 * @export
 * @enum {string}
 */
export declare enum IncomeVerificationPayrollFlowType {
    DigitalIncome = "payroll_digital_income",
    DocumentIncome = "payroll_document_income"
}
/**
 * IncomeVerificationPaystubsGetRequest defines the request schema for `/income/verification/paystubs/get`.
 * @export
 * @interface IncomeVerificationPaystubsGetRequest
 */
export interface IncomeVerificationPaystubsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IncomeVerificationPaystubsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IncomeVerificationPaystubsGetRequest
     */
    secret?: string;
    /**
     * The ID of the verification for which to get paystub information.
     * @type {string}
     * @memberof IncomeVerificationPaystubsGetRequest
     * @deprecated
     */
    income_verification_id?: string | null;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof IncomeVerificationPaystubsGetRequest
     */
    access_token?: string | null;
}
/**
 * IncomeVerificationPaystubsGetResponse defines the response schema for `/income/verification/paystubs/get`.
 * @export
 * @interface IncomeVerificationPaystubsGetResponse
 */
export interface IncomeVerificationPaystubsGetResponse {
    /**
     * Metadata for an income document.
     * @type {Array<DocumentMetadata>}
     * @memberof IncomeVerificationPaystubsGetResponse
     */
    document_metadata?: Array<DocumentMetadata>;
    /**
     *
     * @type {Array<Paystub>}
     * @memberof IncomeVerificationPaystubsGetResponse
     */
    paystubs: Array<Paystub>;
    /**
     *
     * @type {PlaidError}
     * @memberof IncomeVerificationPaystubsGetResponse
     */
    error?: PlaidError | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IncomeVerificationPaystubsGetResponse
     */
    request_id: string;
}
/**
 * The confidence that Plaid can support the user in the digital income verification flow instead of requiring a manual paystub upload. One of the following:  `\"HIGH\"`: It is very likely that this user can use the digital income verification flow.  \"`LOW`\": It is unlikely that this user can use the digital income verification flow.  `\"UNKNOWN\"`: It was not possible to determine if the user is supportable with the information passed.
 * @export
 * @enum {string}
 */
export declare enum IncomeVerificationPrecheckConfidence {
    High = "HIGH",
    Low = "LOW",
    Unknown = "UNKNOWN"
}
/**
 * Information about the end user\'s employer
 * @export
 * @interface IncomeVerificationPrecheckEmployer
 */
export interface IncomeVerificationPrecheckEmployer {
    /**
     * The employer\'s name
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployer
     */
    name?: string | null;
    /**
     *
     * @type {IncomeVerificationPrecheckEmployerAddress}
     * @memberof IncomeVerificationPrecheckEmployer
     */
    address?: IncomeVerificationPrecheckEmployerAddress | null;
    /**
     * The employer\'s tax id
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployer
     */
    tax_id?: string | null;
    /**
     * The URL for the employer\'s public website
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployer
     */
    url?: string | null;
}
/**
 * The address of the employer
 * @export
 * @interface IncomeVerificationPrecheckEmployerAddress
 */
export interface IncomeVerificationPrecheckEmployerAddress {
    /**
     * The full city name
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployerAddress
     */
    city?: string;
    /**
     * The ISO 3166-1 alpha-2 country code
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployerAddress
     */
    country?: string;
    /**
     * The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployerAddress
     */
    postal_code?: string;
    /**
     * The region or state. In API versions 2018-05-22 and earlier, this field is called `state`. Example: `\"NC\"`
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployerAddress
     */
    region?: string;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployerAddress
     */
    street?: string;
}
/**
 * Data about the components comprising an address.
 * @export
 * @interface IncomeVerificationPrecheckEmployerAddressData
 */
export interface IncomeVerificationPrecheckEmployerAddressData {
    /**
     * The full city name
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployerAddressData
     */
    city?: string;
    /**
     * The ISO 3166-1 alpha-2 country code
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployerAddressData
     */
    country?: string;
    /**
     * The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployerAddressData
     */
    postal_code?: string;
    /**
     * The region or state. In API versions 2018-05-22 and earlier, this field is called `state`. Example: `\"NC\"`
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployerAddressData
     */
    region?: string;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof IncomeVerificationPrecheckEmployerAddressData
     */
    street?: string;
}
/**
 * Data about military info in the income verification precheck.
 * @export
 * @interface IncomeVerificationPrecheckMilitaryInfo
 */
export interface IncomeVerificationPrecheckMilitaryInfo {
    /**
     * Is the user currently active duty in the US military
     * @type {boolean}
     * @memberof IncomeVerificationPrecheckMilitaryInfo
     */
    is_active_duty?: boolean | null;
    /**
     * If the user is currently serving in the US military, the branch of the military in which they are serving Valid values: \'AIR FORCE\', \'ARMY\', \'COAST GUARD\', \'MARINES\', \'NAVY\', \'UNKNOWN\'
     * @type {string}
     * @memberof IncomeVerificationPrecheckMilitaryInfo
     */
    branch?: string | null;
}
/**
 * Information about the end user\'s payroll institution
 * @export
 * @interface IncomeVerificationPrecheckPayrollInstitution
 */
export interface IncomeVerificationPrecheckPayrollInstitution {
    /**
     * The name of payroll institution
     * @type {string}
     * @memberof IncomeVerificationPrecheckPayrollInstitution
     */
    name?: string | null;
}
/**
 * IncomeVerificationPrecheckRequest defines the request schema for `/income/verification/precheck`
 * @export
 * @interface IncomeVerificationPrecheckRequest
 */
export interface IncomeVerificationPrecheckRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IncomeVerificationPrecheckRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IncomeVerificationPrecheckRequest
     */
    secret?: string;
    /**
     *
     * @type {IncomeVerificationPrecheckUser}
     * @memberof IncomeVerificationPrecheckRequest
     */
    user?: IncomeVerificationPrecheckUser | null;
    /**
     *
     * @type {IncomeVerificationPrecheckEmployer}
     * @memberof IncomeVerificationPrecheckRequest
     */
    employer?: IncomeVerificationPrecheckEmployer | null;
    /**
     *
     * @type {IncomeVerificationPrecheckPayrollInstitution}
     * @memberof IncomeVerificationPrecheckRequest
     */
    payroll_institution?: IncomeVerificationPrecheckPayrollInstitution | null;
    /**
     *
     * @type {string}
     * @memberof IncomeVerificationPrecheckRequest
     * @deprecated
     */
    transactions_access_token?: string;
    /**
     * An array of access tokens corresponding to Items belonging to the user whose eligibility is being checked. Note that if the Items specified here are not already initialized with `transactions`, providing them in this field will cause these Items to be initialized with (and billed for) the Transactions product.
     * @type {Array<string>}
     * @memberof IncomeVerificationPrecheckRequest
     */
    transactions_access_tokens?: Array<string>;
    /**
     *
     * @type {IncomeVerificationPrecheckMilitaryInfo}
     * @memberof IncomeVerificationPrecheckRequest
     */
    us_military_info?: IncomeVerificationPrecheckMilitaryInfo | null;
}
/**
 * IncomeVerificationPrecheckResponse defines the response schema for `/income/verification/precheck`.
 * @export
 * @interface IncomeVerificationPrecheckResponse
 */
export interface IncomeVerificationPrecheckResponse {
    /**
     * ID of the precheck. Provide this value when calling `/link/token/create` in order to optimize Link conversion.
     * @type {string}
     * @memberof IncomeVerificationPrecheckResponse
     */
    precheck_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IncomeVerificationPrecheckResponse
     */
    request_id: string;
    /**
     *
     * @type {IncomeVerificationPrecheckConfidence}
     * @memberof IncomeVerificationPrecheckResponse
     */
    confidence: IncomeVerificationPrecheckConfidence;
}
/**
 * Information about the user whose eligibility is being evaluated.
 * @export
 * @interface IncomeVerificationPrecheckUser
 */
export interface IncomeVerificationPrecheckUser {
    /**
     * The user\'s first name
     * @type {string}
     * @memberof IncomeVerificationPrecheckUser
     */
    first_name?: string | null;
    /**
     * The user\'s last name
     * @type {string}
     * @memberof IncomeVerificationPrecheckUser
     */
    last_name?: string | null;
    /**
     * The user\'s email address
     * @type {string}
     * @memberof IncomeVerificationPrecheckUser
     */
    email_address?: string | null;
    /**
     *
     * @type {SignalAddressData}
     * @memberof IncomeVerificationPrecheckUser
     */
    home_address?: SignalAddressData | null;
}
/**
 * Fired when the attempt to refresh Payroll Income data for a user via `/credit/payroll_income/refresh` failed because the user must re-connect their payroll account.
 * @export
 * @interface IncomeVerificationRefreshReconnectNeededWebhook
 */
export interface IncomeVerificationRefreshReconnectNeededWebhook {
    /**
     * `INCOME`
     * @type {string}
     * @memberof IncomeVerificationRefreshReconnectNeededWebhook
     */
    webhook_type: string;
    /**
     * `INCOME_VERIFICATION_REFRESH_RECONNECT_NEEDED`
     * @type {string}
     * @memberof IncomeVerificationRefreshReconnectNeededWebhook
     */
    webhook_code: string;
    /**
     * The `user_id` corresponding to the user the webhook has fired for.
     * @type {string}
     * @memberof IncomeVerificationRefreshReconnectNeededWebhook
     */
    user_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof IncomeVerificationRefreshReconnectNeededWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Fired when risk signals have been processed for documents uploaded via Document Income. It will typically take a minute or two for this webhook to fire after the end user has uploaded their documents in the Document Income flow. Once this webhook has fired, `/credit/payroll_income/risk_signals/get` may then be called to determine whether the documents were successfully processed and to retrieve risk data.
 * @export
 * @interface IncomeVerificationRiskSignalsStatusWebhook
 */
export interface IncomeVerificationRiskSignalsStatusWebhook {
    /**
     * `\"INCOME\"`
     * @type {string}
     * @memberof IncomeVerificationRiskSignalsStatusWebhook
     */
    webhook_type: string;
    /**
     * `INCOME_VERIFICATION_RISK_SIGNALS`
     * @type {string}
     * @memberof IncomeVerificationRiskSignalsStatusWebhook
     */
    webhook_code: string;
    /**
     * The Item ID associated with the verification.
     * @type {string}
     * @memberof IncomeVerificationRiskSignalsStatusWebhook
     */
    item_id: string;
    /**
     * The Plaid `user_id` of the User associated with this webhook, warning, or error.
     * @type {string}
     * @memberof IncomeVerificationRiskSignalsStatusWebhook
     */
    user_id?: string;
    /**
     * `RISK_SIGNALS_PROCESSING_COMPLETE`: The income verification fraud detection processing has completed. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the `/credit/payroll_income/risk_signals/get` endpoint to get all risk signal data.
     * @type {string}
     * @memberof IncomeVerificationRiskSignalsStatusWebhook
     */
    risk_signals_status?: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof IncomeVerificationRiskSignalsStatusWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * The types of source income data that users should be able to share
 * @export
 * @enum {string}
 */
export declare enum IncomeVerificationSourceType {
    Bank = "bank",
    Payroll = "payroll"
}
/**
 * Fired when the status of an income verification instance has changed. This webhook is fired for both the Document and Payroll Income flows, but not the Bank Income flow. It will typically take several minutes for this webhook to fire after the end user has uploaded their documents in the Document Income flow.
 * @export
 * @interface IncomeVerificationStatusWebhook
 */
export interface IncomeVerificationStatusWebhook {
    /**
     * `\"INCOME\"`
     * @type {string}
     * @memberof IncomeVerificationStatusWebhook
     */
    webhook_type: string;
    /**
     * `INCOME_VERIFICATION`
     * @type {string}
     * @memberof IncomeVerificationStatusWebhook
     */
    webhook_code: string;
    /**
     * The Item ID associated with the verification.
     * @type {string}
     * @memberof IncomeVerificationStatusWebhook
     */
    item_id: string;
    /**
     * The Plaid `user_id` of the User associated with this webhook, warning, or error.
     * @type {string}
     * @memberof IncomeVerificationStatusWebhook
     */
    user_id?: string;
    /**
     * `VERIFICATION_STATUS_PROCESSING_COMPLETE`:  The income verification processing has completed. This indicates that the documents have been parsed successfully or that the documents were not parsable. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the `/credit/payroll_income/get` endpoint and check the document metadata to see which documents were successfully parsed.  `VERIFICATION_STATUS_PROCESSING_FAILED`: An unexpected internal error occurred when attempting to process the verification documentation.  `VERIFICATION_STATUS_PENDING_APPROVAL`: (deprecated) The income verification has been sent to the user for review.
     * @type {string}
     * @memberof IncomeVerificationStatusWebhook
     */
    verification_status: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof IncomeVerificationStatusWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * IncomeVerificationTaxformsGetRequest defines the request schema for `/income/verification/taxforms/get`
 * @export
 * @interface IncomeVerificationTaxformsGetRequest
 */
export interface IncomeVerificationTaxformsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IncomeVerificationTaxformsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IncomeVerificationTaxformsGetRequest
     */
    secret?: string;
    /**
     * The ID of the verification.
     * @type {string}
     * @memberof IncomeVerificationTaxformsGetRequest
     * @deprecated
     */
    income_verification_id?: string | null;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof IncomeVerificationTaxformsGetRequest
     */
    access_token?: string | null;
}
/**
 * IncomeVerificationTaxformsGetResponse defines the response schema for `/income/verification/taxforms/get`
 * @export
 * @interface IncomeVerificationTaxformsGetResponse
 */
export interface IncomeVerificationTaxformsGetResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof IncomeVerificationTaxformsGetResponse
     */
    request_id?: string;
    /**
     *
     * @type {Array<DocumentMetadata>}
     * @memberof IncomeVerificationTaxformsGetResponse
     */
    document_metadata: Array<DocumentMetadata>;
    /**
     * A list of forms.
     * @type {Array<Taxform>}
     * @memberof IncomeVerificationTaxformsGetResponse
     */
    taxforms: Array<Taxform>;
    /**
     *
     * @type {PlaidError}
     * @memberof IncomeVerificationTaxformsGetResponse
     */
    error?: PlaidError | null;
}
/**
 * Status of the income verification webhook
 * @export
 * @interface IncomeVerificationWebhookStatus
 */
export interface IncomeVerificationWebhookStatus {
    /**
     *
     * @type {string}
     * @memberof IncomeVerificationWebhookStatus
     */
    id: string;
}
/**
 * Parent container for name that allows for choice group between parsed and unparsed containers.Parent container for name that allows for choice group between parsed and unparsed containers.
 * @export
 * @interface IndividualName
 */
export interface IndividualName {
    /**
     * The first name of the individual represented by the parent object.
     * @type {string}
     * @memberof IndividualName
     */
    FirstName: string;
    /**
     * The last name of the individual represented by the parent object.
     * @type {string}
     * @memberof IndividualName
     */
    LastName: string;
}
/**
 * Name information for the associated individual watchlist hit
 * @export
 * @interface IndividualScreeningHitNames
 */
export interface IndividualScreeningHitNames {
    /**
     * The full name of the individual, including all parts.
     * @type {string}
     * @memberof IndividualScreeningHitNames
     */
    full: string;
    /**
     * Primary names are those most commonly used to refer to this person. Only one name will ever be marked as primary.
     * @type {boolean}
     * @memberof IndividualScreeningHitNames
     */
    is_primary: boolean;
    /**
     *
     * @type {WeakAliasDetermination}
     * @memberof IndividualScreeningHitNames
     */
    weak_alias_determination: WeakAliasDetermination;
}
/**
 * Shorthand identifier for a specific screening list for individuals.  `AU_CON`: Australia Department of Foreign Affairs and Trade Consolidated List  `CA_CON`: Government of Canada Consolidated List of Sanctions  `EU_CON`: European External Action Service Consolidated List  `IZ_CIA`: CIA List of Chiefs of State and Cabinet Members  `IZ_IPL`: Interpol Red Notices for Wanted Persons List  `IZ_PEP`: Politically Exposed Persons List  `IZ_UNC`: United Nations Consolidated Sanctions  `IZ_WBK`: World Bank Listing of Ineligible Firms and Individuals  `UK_HMC`: UK HM Treasury Consolidated List  `US_DPL`: Bureau of Industry and Security Denied Persons List  `US_DTC`: US Department of State AECA Debarred  `US_FBI`: US Department of Justice FBI Wanted List  `US_FSE`: US OFAC Foreign Sanctions Evaders  `US_ISN`: US Department of State Nonproliferation Sanctions  `US_PLC`: US OFAC Palestinian Legislative Council  `US_SDN`: US OFAC Specially Designated Nationals List  `US_SSI`: US OFAC Sectoral Sanctions Identifications  `SG_SOF`: Government of Singapore Terrorists and Terrorist Entities  `TR_TWL`: Government of Turkey Terrorist Wanted List  `TR_DFD`: Government of Turkey Domestic Freezing Decisions  `TR_FOR`: Government of Turkey Foreign Freezing Requests  `TR_WMD`: Government of Turkey Weapons of Mass Destruction  `TR_CMB`: Government of Turkey Capital Markets Board
 * @export
 * @enum {string}
 */
export declare enum IndividualWatchlistCode {
    AuCon = "AU_CON",
    CaCon = "CA_CON",
    EuCon = "EU_CON",
    IzCia = "IZ_CIA",
    IzIpl = "IZ_IPL",
    IzPep = "IZ_PEP",
    IzUnc = "IZ_UNC",
    IzWbk = "IZ_WBK",
    UkHmc = "UK_HMC",
    UsDpl = "US_DPL",
    UsDtc = "US_DTC",
    UsFbi = "US_FBI",
    UsFse = "US_FSE",
    UsIsn = "US_ISN",
    UsMbs = "US_MBS",
    UsPlc = "US_PLC",
    UsSdn = "US_SDN",
    UsSsi = "US_SSI",
    SgSof = "SG_SOF",
    TrTwl = "TR_TWL",
    TrDfd = "TR_DFD",
    TrFor = "TR_FOR",
    TrWmd = "TR_WMD",
    TrCmb = "TR_CMB"
}
/**
 * A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of individuals.
 * @export
 * @interface IndividualWatchlistProgram
 */
export interface IndividualWatchlistProgram {
    /**
     * ID of the associated program.
     * @type {string}
     * @memberof IndividualWatchlistProgram
     */
    id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof IndividualWatchlistProgram
     */
    created_at: string;
    /**
     * Indicator specifying whether the program is enabled and will perform daily rescans.
     * @type {boolean}
     * @memberof IndividualWatchlistProgram
     */
    is_rescanning_enabled: boolean;
    /**
     * Watchlists enabled for the associated program
     * @type {Set<IndividualWatchlistCode>}
     * @memberof IndividualWatchlistProgram
     */
    lists_enabled: Set<IndividualWatchlistCode>;
    /**
     * A name for the program to define its purpose. For example, \"High Risk Individuals\", \"US Cardholders\", or \"Applicants\".
     * @type {string}
     * @memberof IndividualWatchlistProgram
     */
    name: string;
    /**
     *
     * @type {ProgramNameSensitivity}
     * @memberof IndividualWatchlistProgram
     */
    name_sensitivity: ProgramNameSensitivity;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof IndividualWatchlistProgram
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * Archived programs are read-only and cannot screen new customers nor participate in ongoing monitoring.
     * @type {boolean}
     * @memberof IndividualWatchlistProgram
     */
    is_archived: boolean;
}
/**
 * The `inflow_model` allows you to model a test account that receives regular income or make regular payments on a loan. Any transactions generated by the `inflow_model` will appear in addition to randomly generated test data or transactions specified by `override_accounts`.
 * @export
 * @interface InflowModel
 */
export interface InflowModel {
    /**
     * Inflow model. One of the following:  `none`: No income  `monthly-income`: Income occurs once per month `monthly-balance-payment`: Pays off the balance on a liability account at the given statement day of month.  `monthly-interest-only-payment`: Makes an interest-only payment on a liability account at the given statement day of month.  Note that account types supported by Liabilities will accrue interest in the Sandbox. The types impacted are account type `credit` with subtype `credit` or `paypal`, and account type `loan` with subtype `student` or `mortgage`.
     * @type {string}
     * @memberof InflowModel
     */
    type: string;
    /**
     * Amount of income per month. This value is required if `type` is `monthly-income`.
     * @type {number}
     * @memberof InflowModel
     */
    income_amount: number;
    /**
     * Number between 1 and 28, or `last` meaning the last day of the month. The day of the month on which the income transaction will appear. The name of the income transaction. This field is required if `type` is `monthly-income`, `monthly-balance-payment` or `monthly-interest-only-payment`.
     * @type {number}
     * @memberof InflowModel
     */
    payment_day_of_month: number;
    /**
     * The name of the income transaction. This field is required if `type` is `monthly-income`, `monthly-balance-payment` or `monthly-interest-only-payment`.
     * @type {string}
     * @memberof InflowModel
     */
    transaction_name: string;
    /**
     * Number between 1 and 28, or `last` meaning the last day of the month. The day of the month on which the balance is calculated for the next payment. The name of the income transaction. This field is required if `type` is `monthly-balance-payment` or `monthly-interest-only-payment`.
     * @type {string}
     * @memberof InflowModel
     */
    statement_day_of_month: string;
}
/**
 * Fired when an Item\'s initial transaction pull is completed. Once this webhook has been fired, transaction data for the most recent 30 days can be fetched for the Item. This webhook will also be fired if account selections for the Item are updated, with `new_transactions` set to the number of net new transactions pulled after the account selection update.  This webhook is intended for use with `/transactions/get`; if you are using the newer `/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
 * @export
 * @interface InitialUpdateWebhook
 */
export interface InitialUpdateWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof InitialUpdateWebhook
     */
    webhook_type: string;
    /**
     * `INITIAL_UPDATE`
     * @type {string}
     * @memberof InitialUpdateWebhook
     */
    webhook_code: string;
    /**
     * The error code associated with the webhook.
     * @type {string}
     * @memberof InitialUpdateWebhook
     */
    error?: string | null;
    /**
     * The number of new transactions available.
     * @type {number}
     * @memberof InitialUpdateWebhook
     */
    new_transactions: number;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof InitialUpdateWebhook
     */
    item_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof InitialUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Details relating to a specific financial institution
 * @export
 * @interface Institution
 */
export interface Institution {
    /**
     * Unique identifier for the institution. Note that the same institution may have multiple records, each with different institution IDs; for example, if the institution has migrated to OAuth, there may be separate `institution_id`s for the OAuth and non-OAuth versions of the institution. Institutions that operate in different countries or with multiple login portals may also have separate `institution_id`s for each country or portal.
     * @type {string}
     * @memberof Institution
     */
    institution_id: string;
    /**
     * The official name of the institution.
     * @type {string}
     * @memberof Institution
     */
    name: string;
    /**
     * A list of the Plaid products supported by the institution. Note that only institutions that support Instant Auth will return `auth` in the product array; institutions that do not list `auth` may still support other Auth methods such as Instant Match or Automated Micro-deposit Verification. To identify institutions that support those methods, use the `auth_metadata` object. For more details, see [Full Auth coverage](https://plaid.com/docs/auth/coverage/). The `income_verification` product here indicates support for Bank Income.
     * @type {Array<Products>}
     * @memberof Institution
     */
    products: Array<Products>;
    /**
     * A list of the country codes supported by the institution.
     * @type {Array<CountryCode>}
     * @memberof Institution
     */
    country_codes: Array<CountryCode>;
    /**
     * The URL for the institution\'s website
     * @type {string}
     * @memberof Institution
     */
    url?: string | null;
    /**
     * Hexadecimal representation of the primary color used by the institution
     * @type {string}
     * @memberof Institution
     */
    primary_color?: string | null;
    /**
     * Base64 encoded representation of the institution\'s logo, returned as a base64 encoded 152x152 PNG. Not all institutions\' logos are available.
     * @type {string}
     * @memberof Institution
     */
    logo?: string | null;
    /**
     * A list of routing numbers known to be associated with the institution. This list is provided for the purpose of looking up institutions by routing number. It is generally comprehensive but is not guaranteed to be a complete list of routing numbers for an institution.
     * @type {Array<string>}
     * @memberof Institution
     */
    routing_numbers: Array<string>;
    /**
     * A partial list of DTC numbers associated with the institution.
     * @type {Array<string>}
     * @memberof Institution
     */
    dtc_numbers?: Array<string>;
    /**
     * Indicates that the institution has an OAuth login flow. This will be `true` if OAuth is supported for any Items associated with the institution, even if the institution also supports non-OAuth connections.
     * @type {boolean}
     * @memberof Institution
     */
    oauth: boolean;
    /**
     *
     * @type {InstitutionStatus}
     * @memberof Institution
     */
    status?: InstitutionStatus | null;
    /**
     *
     * @type {PaymentInitiationMetadata}
     * @memberof Institution
     */
    payment_initiation_metadata?: PaymentInitiationMetadata | null;
    /**
     *
     * @type {AuthMetadata}
     * @memberof Institution
     */
    auth_metadata?: AuthMetadata | null;
}
/**
 * The status of an institution is determined by the health of its Item logins, Transactions updates, Investments updates, Liabilities updates, Auth requests, Balance requests, Identity requests, Investments requests, and Liabilities requests. A login attempt is conducted during the initial Item add in Link. If there is not enough traffic to accurately calculate an institution\'s status, Plaid will return null rather than potentially inaccurate data.  Institution status is accessible in the Dashboard and via the API using the `/institutions/get_by_id` endpoint with the `include_status` option set to true. Note that institution status is not available in the Sandbox environment.
 * @export
 * @interface InstitutionStatus
 */
export interface InstitutionStatus {
    /**
     *
     * @type {ProductStatus}
     * @memberof InstitutionStatus
     */
    item_logins?: ProductStatus | null;
    /**
     *
     * @type {ProductStatus}
     * @memberof InstitutionStatus
     */
    transactions_updates?: ProductStatus | null;
    /**
     *
     * @type {ProductStatus}
     * @memberof InstitutionStatus
     */
    auth?: ProductStatus | null;
    /**
     *
     * @type {ProductStatus}
     * @memberof InstitutionStatus
     */
    identity?: ProductStatus | null;
    /**
     *
     * @type {ProductStatus}
     * @memberof InstitutionStatus
     */
    investments_updates?: ProductStatus | null;
    /**
     *
     * @type {ProductStatus}
     * @memberof InstitutionStatus
     */
    liabilities_updates?: ProductStatus | null;
    /**
     *
     * @type {ProductStatus}
     * @memberof InstitutionStatus
     */
    liabilities?: ProductStatus | null;
    /**
     *
     * @type {ProductStatus}
     * @memberof InstitutionStatus
     */
    investments?: ProductStatus | null;
    /**
     * Details of recent health incidents associated with the institution.
     * @type {Array<HealthIncident>}
     * @memberof InstitutionStatus
     */
    health_incidents?: Array<HealthIncident> | null;
}
/**
 * Fired when institution status meets the conditions configured in the developer dashboard.
 * @export
 * @interface InstitutionStatusAlertWebhook
 */
export interface InstitutionStatusAlertWebhook {
    /**
     * `DASHBOARD_CONFIGURED_ALERT`
     * @type {string}
     * @memberof InstitutionStatusAlertWebhook
     */
    webhook_type: string;
    /**
     * `INSTITUTION_STATUS_ALERT_TRIGGERED`
     * @type {string}
     * @memberof InstitutionStatusAlertWebhook
     */
    webhook_code: string;
    /**
     * The ID of the associated institution.
     * @type {string}
     * @memberof InstitutionStatusAlertWebhook
     */
    institution_id: string;
    /**
     * The global success rate of the institution, calculated based on item add health.
     * @type {number}
     * @memberof InstitutionStatusAlertWebhook
     */
    institution_overall_success_rate: number;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof InstitutionStatusAlertWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Contains the RTP and RfP network and types supported by the linked Item\'s institution.
 * @export
 * @interface InstitutionSupportedNetworks
 */
export interface InstitutionSupportedNetworks {
    /**
     *
     * @type {TransferCapabilitiesGetRTP}
     * @memberof InstitutionSupportedNetworks
     */
    rtp: TransferCapabilitiesGetRTP;
    /**
     *
     * @type {TransferCapabilitiesGetRfP}
     * @memberof InstitutionSupportedNetworks
     */
    rfp: TransferCapabilitiesGetRfP;
}
/**
 * InstitutionsGetByIdRequest defines the request schema for `/institutions/get_by_id`
 * @export
 * @interface InstitutionsGetByIdRequest
 */
export interface InstitutionsGetByIdRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof InstitutionsGetByIdRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof InstitutionsGetByIdRequest
     */
    secret?: string;
    /**
     * The ID of the institution to get details about
     * @type {string}
     * @memberof InstitutionsGetByIdRequest
     */
    institution_id: string;
    /**
     * Specify which country or countries to include institutions from, using the ISO-3166-1 alpha-2 country code standard. In API versions 2019-05-29 and earlier, the `country_codes` parameter is an optional parameter within the `options` object and will default to `[US]` if it is not supplied.
     * @type {Array<CountryCode>}
     * @memberof InstitutionsGetByIdRequest
     */
    country_codes: Array<CountryCode>;
    /**
     *
     * @type {InstitutionsGetByIdRequestOptions}
     * @memberof InstitutionsGetByIdRequest
     */
    options?: InstitutionsGetByIdRequestOptions;
}
/**
 * Specifies optional parameters for `/institutions/get_by_id`. If provided, must not be `null`.
 * @export
 * @interface InstitutionsGetByIdRequestOptions
 */
export interface InstitutionsGetByIdRequestOptions {
    /**
     * When `true`, return an institution\'s logo, brand color, and URL. When available, the bank\'s logo is returned as a base64 encoded 152x152 PNG, the brand color is in hexadecimal format. The default value is `false`.  Note that Plaid does not own any of the logos shared by the API and that by accessing or using these logos, you agree that you are doing so at your own risk and will, if necessary, obtain all required permissions from the appropriate rights holders and adhere to any applicable usage guidelines. Plaid disclaims all express or implied warranties with respect to the logos.
     * @type {boolean}
     * @memberof InstitutionsGetByIdRequestOptions
     */
    include_optional_metadata?: boolean;
    /**
     * If `true`, the response will include status information about the institution. Default value is `false`.
     * @type {boolean}
     * @memberof InstitutionsGetByIdRequestOptions
     */
    include_status?: boolean;
    /**
     * When `true`, returns metadata related to the Auth product indicating which auth methods are supported.
     * @type {boolean}
     * @memberof InstitutionsGetByIdRequestOptions
     */
    include_auth_metadata?: boolean;
    /**
     * When `true`, returns metadata related to the Payment Initiation product indicating which payment configurations are supported.
     * @type {boolean}
     * @memberof InstitutionsGetByIdRequestOptions
     */
    include_payment_initiation_metadata?: boolean;
}
/**
 * InstitutionsGetByIdResponse defines the response schema for `/institutions/get_by_id`
 * @export
 * @interface InstitutionsGetByIdResponse
 */
export interface InstitutionsGetByIdResponse {
    /**
     *
     * @type {Institution}
     * @memberof InstitutionsGetByIdResponse
     */
    institution: Institution;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof InstitutionsGetByIdResponse
     */
    request_id: string;
}
/**
 * InstitutionsGetRequest defines the request schema for `/institutions/get`
 * @export
 * @interface InstitutionsGetRequest
 */
export interface InstitutionsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof InstitutionsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof InstitutionsGetRequest
     */
    secret?: string;
    /**
     * The total number of Institutions to return.
     * @type {number}
     * @memberof InstitutionsGetRequest
     */
    count: number;
    /**
     * The number of Institutions to skip.
     * @type {number}
     * @memberof InstitutionsGetRequest
     */
    offset: number;
    /**
     * Specify which country or countries to include institutions from, using the ISO-3166-1 alpha-2 country code standard.  In API versions 2019-05-29 and earlier, the `country_codes` parameter is an optional parameter within the `options` object and will default to `[US]` if it is not supplied.
     * @type {Array<CountryCode>}
     * @memberof InstitutionsGetRequest
     */
    country_codes: Array<CountryCode>;
    /**
     *
     * @type {InstitutionsGetRequestOptions}
     * @memberof InstitutionsGetRequest
     */
    options?: InstitutionsGetRequestOptions;
}
/**
 * An optional object to filter `/institutions/get` results.
 * @export
 * @interface InstitutionsGetRequestOptions
 */
export interface InstitutionsGetRequestOptions {
    /**
     * Filter the Institutions based on which products they support. Will only return institutions that support all listed products. When filtering based on `auth`, an institution must support Instant Auth to match the criterion.
     * @type {Array<Products>}
     * @memberof InstitutionsGetRequestOptions
     */
    products?: Array<Products> | null;
    /**
     * Specify an array of routing numbers to filter institutions. The response will only return institutions that match all of the routing numbers in the array. Routing number records used for this matching are generally comprehensive; however, failure to match a given routing number to an institution does not necessarily mean that the institution is unsupported by Plaid.
     * @type {Array<string>}
     * @memberof InstitutionsGetRequestOptions
     */
    routing_numbers?: Array<string> | null;
    /**
     * Limit results to institutions with or without OAuth login flows. Note that institutions will have `oauth` set to `true` if some Items associated with that institution are required to use OAuth flows; institutions in a state of migration to OAuth will have the `oauth` attribute set to `true`.
     * @type {boolean}
     * @memberof InstitutionsGetRequestOptions
     */
    oauth?: boolean | null;
    /**
     * When `true`, return the institution\'s homepage URL, logo and primary brand color. Not all institutions\' logos are available.  Note that Plaid does not own any of the logos shared by the API, and that by accessing or using these logos, you agree that you are doing so at your own risk and will, if necessary, obtain all required permissions from the appropriate rights holders and adhere to any applicable usage guidelines. Plaid disclaims all express or implied warranties with respect to the logos.
     * @type {boolean}
     * @memberof InstitutionsGetRequestOptions
     */
    include_optional_metadata?: boolean;
    /**
     * When `true`, returns metadata related to the Auth product indicating which auth methods are supported.
     * @type {boolean}
     * @memberof InstitutionsGetRequestOptions
     */
    include_auth_metadata?: boolean;
    /**
     * When `true`, returns metadata related to the Payment Initiation product indicating which payment configurations are supported.
     * @type {boolean}
     * @memberof InstitutionsGetRequestOptions
     */
    include_payment_initiation_metadata?: boolean;
}
/**
 * InstitutionsGetResponse defines the response schema for `/institutions/get`
 * @export
 * @interface InstitutionsGetResponse
 */
export interface InstitutionsGetResponse {
    /**
     * A list of Plaid institutions
     * @type {Array<Institution>}
     * @memberof InstitutionsGetResponse
     */
    institutions: Array<Institution>;
    /**
     * The total number of institutions available via this endpoint
     * @type {number}
     * @memberof InstitutionsGetResponse
     */
    total: number;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof InstitutionsGetResponse
     */
    request_id: string;
}
/**
 * An account filter to apply to institutions search requests
 * @export
 * @interface InstitutionsSearchAccountFilter
 */
export interface InstitutionsSearchAccountFilter {
    /**
     *
     * @type {Array<AccountSubtype>}
     * @memberof InstitutionsSearchAccountFilter
     */
    loan?: Array<AccountSubtype>;
    /**
     *
     * @type {Array<AccountSubtype>}
     * @memberof InstitutionsSearchAccountFilter
     */
    depository?: Array<AccountSubtype>;
    /**
     *
     * @type {Array<AccountSubtype>}
     * @memberof InstitutionsSearchAccountFilter
     */
    credit?: Array<AccountSubtype>;
    /**
     *
     * @type {Array<AccountSubtype>}
     * @memberof InstitutionsSearchAccountFilter
     */
    investment?: Array<AccountSubtype>;
}
/**
 * Additional options that will be used to filter institutions by various Payment Initiation configurations.
 * @export
 * @interface InstitutionsSearchPaymentInitiationOptions
 */
export interface InstitutionsSearchPaymentInitiationOptions {
    /**
     * A unique ID identifying the payment
     * @type {string}
     * @memberof InstitutionsSearchPaymentInitiationOptions
     */
    payment_id?: string | null;
    /**
     * A unique ID identifying the payment consent
     * @type {string}
     * @memberof InstitutionsSearchPaymentInitiationOptions
     */
    consent_id?: string | null;
}
/**
 * InstitutionsSearchRequest defines the request schema for `/institutions/search`
 * @export
 * @interface InstitutionsSearchRequest
 */
export interface InstitutionsSearchRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof InstitutionsSearchRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof InstitutionsSearchRequest
     */
    secret?: string;
    /**
     * The search query. Institutions with names matching the query are returned
     * @type {string}
     * @memberof InstitutionsSearchRequest
     */
    query: string;
    /**
     * Filter the Institutions based on whether they support all products listed in `products`. Provide `null` to get institutions regardless of supported products. Note that when `auth` is specified as a product, if you are enabled for Instant Match or Automated Micro-deposits, institutions that support those products will be returned even if `auth` is not present in their product array.
     * @type {Array<Products>}
     * @memberof InstitutionsSearchRequest
     */
    products?: Array<Products> | null;
    /**
     * Specify which country or countries to include institutions from, using the ISO-3166-1 alpha-2 country code standard. In API versions 2019-05-29 and earlier, the `country_codes` parameter is an optional parameter within the `options` object and will default to `[US]` if it is not supplied.
     * @type {Array<CountryCode>}
     * @memberof InstitutionsSearchRequest
     */
    country_codes: Array<CountryCode>;
    /**
     *
     * @type {InstitutionsSearchRequestOptions}
     * @memberof InstitutionsSearchRequest
     */
    options?: InstitutionsSearchRequestOptions;
}
/**
 * An optional object to filter `/institutions/search` results.
 * @export
 * @interface InstitutionsSearchRequestOptions
 */
export interface InstitutionsSearchRequestOptions {
    /**
     * Limit results to institutions with or without OAuth login flows. Note that institutions will have `oauth` set to `true` if some Items associated with that institution are required to use OAuth flows; institutions in a state of migration to OAuth will have the `oauth` attribute set to `true`.
     * @type {boolean}
     * @memberof InstitutionsSearchRequestOptions
     */
    oauth?: boolean | null;
    /**
     * When true, return the institution\'s homepage URL, logo and primary brand color.
     * @type {boolean}
     * @memberof InstitutionsSearchRequestOptions
     */
    include_optional_metadata?: boolean;
    /**
     * When `true`, returns metadata related to the Auth product indicating which auth methods are supported.
     * @type {boolean}
     * @memberof InstitutionsSearchRequestOptions
     */
    include_auth_metadata?: boolean | null;
    /**
     * When `true`, returns metadata related to the Payment Initiation product indicating which payment configurations are supported.
     * @type {boolean}
     * @memberof InstitutionsSearchRequestOptions
     */
    include_payment_initiation_metadata?: boolean | null;
    /**
     *
     * @type {InstitutionsSearchPaymentInitiationOptions}
     * @memberof InstitutionsSearchRequestOptions
     */
    payment_initiation?: InstitutionsSearchPaymentInitiationOptions | null;
}
/**
 * InstitutionsSearchResponse defines the response schema for `/institutions/search`
 * @export
 * @interface InstitutionsSearchResponse
 */
export interface InstitutionsSearchResponse {
    /**
     * An array of institutions matching the search criteria
     * @type {Array<Institution>}
     * @memberof InstitutionsSearchResponse
     */
    institutions: Array<Institution>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof InstitutionsSearchResponse
     */
    request_id: string;
}
/**
 * Valid account subtypes for investment accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-investment).
 * @export
 * @enum {string}
 */
export declare enum InvestmentAccountSubtype {
    _529 = "529",
    _401a = "401a",
    _401k = "401k",
    _403B = "403B",
    _457b = "457b",
    Brokerage = "brokerage",
    CashIsa = "cash isa",
    CryptoExchange = "crypto exchange",
    EducationSavingsAccount = "education savings account",
    FixedAnnuity = "fixed annuity",
    Gic = "gic",
    HealthReimbursementArrangement = "health reimbursement arrangement",
    Hsa = "hsa",
    Ira = "ira",
    Isa = "isa",
    Keogh = "keogh",
    Lif = "lif",
    LifeInsurance = "life insurance",
    Lira = "lira",
    Lrif = "lrif",
    Lrsp = "lrsp",
    MutualFund = "mutual fund",
    NonCustodialWallet = "non-custodial wallet",
    NonTaxableBrokerageAccount = "non-taxable brokerage account",
    Other = "other",
    OtherAnnuity = "other annuity",
    OtherInsurance = "other insurance",
    Pension = "pension",
    Prif = "prif",
    ProfitSharingPlan = "profit sharing plan",
    Qshr = "qshr",
    Rdsp = "rdsp",
    Resp = "resp",
    Retirement = "retirement",
    Rlif = "rlif",
    Roth = "roth",
    Roth401k = "roth 401k",
    Rrif = "rrif",
    Rrsp = "rrsp",
    Sarsep = "sarsep",
    SepIra = "sep ira",
    SimpleIra = "simple ira",
    Sipp = "sipp",
    StockPlan = "stock plan",
    Tfsa = "tfsa",
    Trust = "trust",
    Ugma = "ugma",
    Utma = "utma",
    VariableAnnuity = "variable annuity",
    All = "all"
}
/**
 * A filter to apply to `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier).
 * @export
 * @interface InvestmentFilter
 */
export interface InvestmentFilter {
    /**
     * An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {Array<InvestmentAccountSubtype>}
     * @memberof InvestmentFilter
     */
    account_subtypes: Array<InvestmentAccountSubtype>;
}
/**
 * An optional object to filter `/investments/holdings/get` results. If provided, must not be `null`.
 * @export
 * @interface InvestmentHoldingsGetRequestOptions
 */
export interface InvestmentHoldingsGetRequestOptions {
    /**
     * An array of `account_id`s to retrieve for the Item. An error will be returned if a provided `account_id` is not associated with the Item.
     * @type {Array<string>}
     * @memberof InvestmentHoldingsGetRequestOptions
     */
    account_ids?: Array<string>;
}
/**
 * A transaction within an investment account.
 * @export
 * @interface InvestmentTransaction
 */
export interface InvestmentTransaction {
    /**
     * The ID of the Investment transaction, unique across all Plaid transactions. Like all Plaid identifiers, the `investment_transaction_id` is case sensitive.
     * @type {string}
     * @memberof InvestmentTransaction
     */
    investment_transaction_id: string;
    /**
     * A legacy field formerly used internally by Plaid to identify certain canceled transactions.
     * @type {string}
     * @memberof InvestmentTransaction
     * @deprecated
     */
    cancel_transaction_id?: string | null;
    /**
     * The `account_id` of the account against which this transaction posted.
     * @type {string}
     * @memberof InvestmentTransaction
     */
    account_id: string;
    /**
     * The `security_id` to which this transaction is related.
     * @type {string}
     * @memberof InvestmentTransaction
     */
    security_id: string | null;
    /**
     * The [ISO 8601](https://wikipedia.org/wiki/ISO_8601) posting date for the transaction.
     * @type {string}
     * @memberof InvestmentTransaction
     */
    date: string;
    /**
     * The institution’s description of the transaction.
     * @type {string}
     * @memberof InvestmentTransaction
     */
    name: string;
    /**
     * The number of units of the security involved in this transaction. Positive for buy transactions; negative for sell transactions.
     * @type {number}
     * @memberof InvestmentTransaction
     */
    quantity: number;
    /**
     * The complete value of the transaction. Positive values when cash is debited, e.g. purchases of stock; negative values when cash is credited, e.g. sales of stock. Treatment remains the same for cash-only movements unassociated with securities.
     * @type {number}
     * @memberof InvestmentTransaction
     */
    amount: number;
    /**
     * The price of the security at which this transaction occurred.
     * @type {number}
     * @memberof InvestmentTransaction
     */
    price: number;
    /**
     * The combined value of all fees applied to this transaction
     * @type {number}
     * @memberof InvestmentTransaction
     */
    fees: number | null;
    /**
     *
     * @type {InvestmentTransactionType}
     * @memberof InvestmentTransaction
     */
    type: InvestmentTransactionType;
    /**
     *
     * @type {InvestmentTransactionSubtype}
     * @memberof InvestmentTransaction
     */
    subtype: InvestmentTransactionSubtype;
    /**
     * The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-`null`.
     * @type {string}
     * @memberof InvestmentTransaction
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the holding. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof InvestmentTransaction
     */
    unofficial_currency_code: string | null;
}
/**
 * For descriptions of possible transaction types and subtypes, see the [Investment transaction types schema](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).
 * @export
 * @enum {string}
 */
export declare enum InvestmentTransactionSubtype {
    AccountFee = "account fee",
    Adjustment = "adjustment",
    Assignment = "assignment",
    Buy = "buy",
    BuyToCover = "buy to cover",
    Contribution = "contribution",
    Deposit = "deposit",
    Distribution = "distribution",
    Dividend = "dividend",
    DividendReinvestment = "dividend reinvestment",
    Exercise = "exercise",
    Expire = "expire",
    FundFee = "fund fee",
    Interest = "interest",
    InterestReceivable = "interest receivable",
    InterestReinvestment = "interest reinvestment",
    LegalFee = "legal fee",
    LoanPayment = "loan payment",
    LongTermCapitalGain = "long-term capital gain",
    LongTermCapitalGainReinvestment = "long-term capital gain reinvestment",
    ManagementFee = "management fee",
    MarginExpense = "margin expense",
    Merger = "merger",
    MiscellaneousFee = "miscellaneous fee",
    NonQualifiedDividend = "non-qualified dividend",
    NonResidentTax = "non-resident tax",
    PendingCredit = "pending credit",
    PendingDebit = "pending debit",
    QualifiedDividend = "qualified dividend",
    Rebalance = "rebalance",
    ReturnOfPrincipal = "return of principal",
    Request = "request",
    Sell = "sell",
    SellShort = "sell short",
    Send = "send",
    ShortTermCapitalGain = "short-term capital gain",
    ShortTermCapitalGainReinvestment = "short-term capital gain reinvestment",
    SpinOff = "spin off",
    Split = "split",
    StockDistribution = "stock distribution",
    Tax = "tax",
    TaxWithheld = "tax withheld",
    Trade = "trade",
    Transfer = "transfer",
    TransferFee = "transfer fee",
    TrustFee = "trust fee",
    UnqualifiedGain = "unqualified gain",
    Withdrawal = "withdrawal"
}
/**
 * Value is one of the following: `buy`: Buying an investment `sell`: Selling an investment `cancel`: A cancellation of a pending transaction `cash`: Activity that modifies a cash position `fee`: A fee on the account `transfer`: Activity which modifies a position, but not through buy/sell activity e.g. options exercise, portfolio transfer  For descriptions of possible transaction types and subtypes, see the [Investment transaction types schema](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).
 * @export
 * @enum {string}
 */
export declare enum InvestmentTransactionType {
    Buy = "buy",
    Sell = "sell",
    Cancel = "cancel",
    Cash = "cash",
    Fee = "fee",
    Transfer = "transfer"
}
/**
 * Object containing information on contribution transactions for the 401k account.
 * @export
 * @interface InvestmentsAuth401kContributionDetails
 */
export interface InvestmentsAuth401kContributionDetails {
    /**
     * A list of the most recent contribution transactions for the 401k account. Includes all contributions made on the same day.
     * @type {Array<InvestmentTransaction>}
     * @memberof InvestmentsAuth401kContributionDetails
     */
    last_contribution_transactions: Array<InvestmentTransaction>;
    /**
     * Number of contribution transactions on this account, for the past month.
     * @type {number}
     * @memberof InvestmentsAuth401kContributionDetails
     */
    contribution_count_1m: number;
    /**
     * Sum of the contribution transactions on this account, for the past month.
     * @type {number}
     * @memberof InvestmentsAuth401kContributionDetails
     */
    contribution_amount_1m: number;
    /**
     * Number of contribution transactions on this account, for the past 6 months.
     * @type {number}
     * @memberof InvestmentsAuth401kContributionDetails
     */
    contribution_count_6m: number;
    /**
     * Sum of the contribution transactions on this account, for the past 6 months.
     * @type {number}
     * @memberof InvestmentsAuth401kContributionDetails
     */
    contribution_amount_6m: number;
    /**
     * Number of contribution transactions on this account, for the past 12 months.
     * @type {number}
     * @memberof InvestmentsAuth401kContributionDetails
     */
    contribution_count_12m: number;
    /**
     * Sum of the contribution transactions on this account, for the past 12 months.
     * @type {number}
     * @memberof InvestmentsAuth401kContributionDetails
     */
    contribution_amount_12m: number;
}
/**
 * Object containing information on account fee transactions for the 401k account.
 * @export
 * @interface InvestmentsAuth401kFeeDetails
 */
export interface InvestmentsAuth401kFeeDetails {
    /**
     * Number of account fee transactions on this account, for the past 12 months.
     * @type {number}
     * @memberof InvestmentsAuth401kFeeDetails
     */
    account_fee_count_12m: number;
    /**
     * Sum of account fee transactions on this account, for the past 12 months.
     * @type {number}
     * @memberof InvestmentsAuth401kFeeDetails
     */
    account_fee_amount_12m: number;
}
/**
 * Additional account fee and contribution information for 401k type accounts.
 * @export
 * @interface InvestmentsAuthAccountDetails401k
 */
export interface InvestmentsAuthAccountDetails401k {
    /**
     * The ID of the 401k account.
     * @type {string}
     * @memberof InvestmentsAuthAccountDetails401k
     */
    account_id?: string;
    /**
     *
     * @type {InvestmentsAuth401kFeeDetails}
     * @memberof InvestmentsAuthAccountDetails401k
     */
    fee_details?: InvestmentsAuth401kFeeDetails;
    /**
     *
     * @type {InvestmentsAuth401kContributionDetails}
     * @memberof InvestmentsAuthAccountDetails401k
     */
    contribution_details?: InvestmentsAuth401kContributionDetails;
}
/**
 * Object with metadata pertaining to the source of data for the account numbers, owners, and holdings that are returned.
 * @export
 * @interface InvestmentsAuthDataSources
 */
export interface InvestmentsAuthDataSources {
    /**
     *
     * @type {DataSources}
     * @memberof InvestmentsAuthDataSources
     */
    numbers?: DataSources;
    /**
     *
     * @type {DataSources}
     * @memberof InvestmentsAuthDataSources
     */
    owners?: DataSources;
    /**
     *
     * @type {DataSources}
     * @memberof InvestmentsAuthDataSources
     */
    holdings?: DataSources;
}
/**
 * Identifying information for transferring holdings to an investments account.
 * @export
 * @interface InvestmentsAuthGetNumbers
 */
export interface InvestmentsAuthGetNumbers {
    /**
     *
     * @type {Array<NumbersACATS>}
     * @memberof InvestmentsAuthGetNumbers
     */
    acats?: Array<NumbersACATS>;
    /**
     *
     * @type {Array<NumbersATON>}
     * @memberof InvestmentsAuthGetNumbers
     */
    aton?: Array<NumbersATON>;
    /**
     *
     * @type {Array<NumbersRetirement401k>}
     * @memberof InvestmentsAuthGetNumbers
     */
    retirement_401k?: Array<NumbersRetirement401k>;
}
/**
 * InvestmentsAuthGetRequest defines the request schema for `/investments/auth/get`
 * @export
 * @interface InvestmentsAuthGetRequest
 */
export interface InvestmentsAuthGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof InvestmentsAuthGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof InvestmentsAuthGetRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof InvestmentsAuthGetRequest
     */
    access_token: string;
    /**
     *
     * @type {InvestmentsAuthGetRequestOptions}
     * @memberof InvestmentsAuthGetRequest
     */
    options?: InvestmentsAuthGetRequestOptions;
}
/**
 * An optional object to filter `/investments/auth/get` results.
 * @export
 * @interface InvestmentsAuthGetRequestOptions
 */
export interface InvestmentsAuthGetRequestOptions {
    /**
     * An array of `account_id`s to retrieve for the Item. An error will be returned if a provided `account_id` is not associated with the Item.
     * @type {Array<string>}
     * @memberof InvestmentsAuthGetRequestOptions
     */
    account_ids?: Array<string>;
}
/**
 * InvestmentsAuthGetResponse defines the response schema for `/investments/auth/get`
 * @export
 * @interface InvestmentsAuthGetResponse
 */
export interface InvestmentsAuthGetResponse {
    /**
     * The accounts for which data is being retrieved
     * @type {Array<AccountBase>}
     * @memberof InvestmentsAuthGetResponse
     */
    accounts: Array<AccountBase>;
    /**
     * The holdings belonging to investment accounts associated with the Item. Details of the securities in the holdings are provided in the `securities` field.
     * @type {Array<Holding>}
     * @memberof InvestmentsAuthGetResponse
     */
    holdings: Array<Holding>;
    /**
     * Objects describing the securities held in the accounts associated with the Item.
     * @type {Array<Security>}
     * @memberof InvestmentsAuthGetResponse
     */
    securities: Array<Security>;
    /**
     * Information about the account owners for the accounts associated with the Item.
     * @type {Array<InvestmentsAuthOwner>}
     * @memberof InvestmentsAuthGetResponse
     */
    owners: Array<InvestmentsAuthOwner>;
    /**
     *
     * @type {InvestmentsAuthGetNumbers}
     * @memberof InvestmentsAuthGetResponse
     */
    numbers: InvestmentsAuthGetNumbers;
    /**
     *
     * @type {InvestmentsAuthDataSources}
     * @memberof InvestmentsAuthGetResponse
     */
    data_sources: InvestmentsAuthDataSources;
    /**
     * Additional information for accounts of 401k subtype.
     * @type {Array<InvestmentsAuthAccountDetails401k>}
     * @memberof InvestmentsAuthGetResponse
     */
    account_details_401k?: Array<InvestmentsAuthAccountDetails401k>;
    /**
     *
     * @type {Item}
     * @memberof InvestmentsAuthGetResponse
     */
    item: Item;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof InvestmentsAuthGetResponse
     */
    request_id: string;
}
/**
 * Information on the ownership of an investments account
 * @export
 * @interface InvestmentsAuthOwner
 */
export interface InvestmentsAuthOwner {
    /**
     * The ID of the account that this identity information pertains to
     * @type {string}
     * @memberof InvestmentsAuthOwner
     */
    account_id?: string;
    /**
     * A list of names associated with the account by the financial institution. In the case of a joint account, Plaid will make a best effort to report the names of all account holders.  If an Item contains multiple accounts with different owner names, some institutions will report all names associated with the Item in each account\'s `names` array.
     * @type {Array<string>}
     * @memberof InvestmentsAuthOwner
     */
    names?: Array<string>;
}
/**
 * Fired when new transactions have been detected on an investment account.
 * @export
 * @interface InvestmentsDefaultUpdateWebhook
 */
export interface InvestmentsDefaultUpdateWebhook {
    /**
     * `INVESTMENTS_TRANSACTIONS`
     * @type {string}
     * @memberof InvestmentsDefaultUpdateWebhook
     */
    webhook_type: string;
    /**
     * `DEFAULT_UPDATE`
     * @type {string}
     * @memberof InvestmentsDefaultUpdateWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof InvestmentsDefaultUpdateWebhook
     */
    item_id: string;
    /**
     *
     * @type {PlaidError}
     * @memberof InvestmentsDefaultUpdateWebhook
     */
    error?: PlaidError | null;
    /**
     * The number of new transactions reported since the last time this webhook was fired.
     * @type {number}
     * @memberof InvestmentsDefaultUpdateWebhook
     */
    new_investments_transactions: number;
    /**
     * The number of canceled transactions reported since the last time this webhook was fired.
     * @type {number}
     * @memberof InvestmentsDefaultUpdateWebhook
     */
    canceled_investments_transactions: number;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof InvestmentsDefaultUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Fired after an asynchronous extraction on an investments account.
 * @export
 * @interface InvestmentsHistoricalUpdateWebhook
 */
export interface InvestmentsHistoricalUpdateWebhook {
    /**
     * `INVESTMENTS_TRANSACTIONS`
     * @type {string}
     * @memberof InvestmentsHistoricalUpdateWebhook
     */
    webhook_type: string;
    /**
     * `HISTORICAL_UPDATE`
     * @type {string}
     * @memberof InvestmentsHistoricalUpdateWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof InvestmentsHistoricalUpdateWebhook
     */
    item_id: string;
    /**
     *
     * @type {PlaidError}
     * @memberof InvestmentsHistoricalUpdateWebhook
     */
    error?: PlaidError | null;
    /**
     * The number of new transactions reported since the last time this webhook was fired.
     * @type {number}
     * @memberof InvestmentsHistoricalUpdateWebhook
     */
    new_investments_transactions: number;
    /**
     * The number of canceled transactions reported since the last time this webhook was fired.
     * @type {number}
     * @memberof InvestmentsHistoricalUpdateWebhook
     */
    canceled_investments_transactions: number;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof InvestmentsHistoricalUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * InvestmentsHoldingsGetRequest defines the request schema for `/investments/holdings/get`
 * @export
 * @interface InvestmentsHoldingsGetRequest
 */
export interface InvestmentsHoldingsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof InvestmentsHoldingsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof InvestmentsHoldingsGetRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof InvestmentsHoldingsGetRequest
     */
    access_token: string;
    /**
     *
     * @type {InvestmentHoldingsGetRequestOptions}
     * @memberof InvestmentsHoldingsGetRequest
     */
    options?: InvestmentHoldingsGetRequestOptions;
}
/**
 * InvestmentsHoldingsGetResponse defines the response schema for `/investments/holdings/get`
 * @export
 * @interface InvestmentsHoldingsGetResponse
 */
export interface InvestmentsHoldingsGetResponse {
    /**
     * The accounts associated with the Item
     * @type {Array<AccountBase>}
     * @memberof InvestmentsHoldingsGetResponse
     */
    accounts: Array<AccountBase>;
    /**
     * The holdings belonging to investment accounts associated with the Item. Details of the securities in the holdings are provided in the `securities` field.
     * @type {Array<Holding>}
     * @memberof InvestmentsHoldingsGetResponse
     */
    holdings: Array<Holding>;
    /**
     * Objects describing the securities held in the accounts associated with the Item.
     * @type {Array<Security>}
     * @memberof InvestmentsHoldingsGetResponse
     */
    securities: Array<Security>;
    /**
     *
     * @type {Item}
     * @memberof InvestmentsHoldingsGetResponse
     */
    item: Item;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof InvestmentsHoldingsGetResponse
     */
    request_id: string;
    /**
     * When true, this field indicates that the Item\'s portfolio was manually created with the Investments Fallback flow.
     * @type {boolean}
     * @memberof InvestmentsHoldingsGetResponse
     */
    is_investments_fallback_item?: boolean;
}
/**
 * InvestmentsRefreshRequest defines the request schema for `/investments/refresh`
 * @export
 * @interface InvestmentsRefreshRequest
 */
export interface InvestmentsRefreshRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof InvestmentsRefreshRequest
     */
    client_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof InvestmentsRefreshRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof InvestmentsRefreshRequest
     */
    secret?: string;
}
/**
 * InvestmentsRefreshResponse defines the response schema for `/investments/refresh`
 * @export
 * @interface InvestmentsRefreshResponse
 */
export interface InvestmentsRefreshResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof InvestmentsRefreshResponse
     */
    request_id: string;
}
/**
 * InvestmentsTransactionsGetRequest defines the request schema for `/investments/transactions/get`
 * @export
 * @interface InvestmentsTransactionsGetRequest
 */
export interface InvestmentsTransactionsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof InvestmentsTransactionsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof InvestmentsTransactionsGetRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof InvestmentsTransactionsGetRequest
     */
    access_token: string;
    /**
     * The earliest date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof InvestmentsTransactionsGetRequest
     */
    start_date: string;
    /**
     * The most recent date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof InvestmentsTransactionsGetRequest
     */
    end_date: string;
    /**
     *
     * @type {InvestmentsTransactionsGetRequestOptions}
     * @memberof InvestmentsTransactionsGetRequest
     */
    options?: InvestmentsTransactionsGetRequestOptions;
}
/**
 * An optional object to filter `/investments/transactions/get` results. If provided, must be non-`null`.
 * @export
 * @interface InvestmentsTransactionsGetRequestOptions
 */
export interface InvestmentsTransactionsGetRequestOptions {
    /**
     * An array of `account_ids` to retrieve for the Item.
     * @type {Array<string>}
     * @memberof InvestmentsTransactionsGetRequestOptions
     */
    account_ids?: Array<string>;
    /**
     * The number of transactions to fetch.
     * @type {number}
     * @memberof InvestmentsTransactionsGetRequestOptions
     */
    count?: number;
    /**
     * The number of transactions to skip when fetching transaction history
     * @type {number}
     * @memberof InvestmentsTransactionsGetRequestOptions
     */
    offset?: number;
    /**
     * If the Item was not initialized with the investments product via the `products`, `required_if_supported_products`, or `optional_products` array when calling `/link/token/create`, and `async_update` is set to true, the initial Investments extraction will happen asynchronously. Plaid will subsequently fire a `HISTORICAL_UPDATE` webhook when the extraction completes. When `false`, Plaid will wait to return a response until extraction completion and no `HISTORICAL_UPDATE` webhook will fire. Note that while the extraction is happening asynchronously, calls to `/investments/transactions/get` and `/investments/refresh` will return `PRODUCT_NOT_READY` errors until the extraction completes.
     * @type {boolean}
     * @memberof InvestmentsTransactionsGetRequestOptions
     */
    async_update?: boolean;
}
/**
 * InvestmentsTransactionsGetResponse defines the response schema for `/investments/transactions/get`
 * @export
 * @interface InvestmentsTransactionsGetResponse
 */
export interface InvestmentsTransactionsGetResponse {
    /**
     *
     * @type {Item}
     * @memberof InvestmentsTransactionsGetResponse
     */
    item: Item;
    /**
     * The accounts for which transaction history is being fetched.
     * @type {Array<AccountBase>}
     * @memberof InvestmentsTransactionsGetResponse
     */
    accounts: Array<AccountBase>;
    /**
     * All securities for which there is a corresponding transaction being fetched.
     * @type {Array<Security>}
     * @memberof InvestmentsTransactionsGetResponse
     */
    securities: Array<Security>;
    /**
     * The transactions being fetched
     * @type {Array<InvestmentTransaction>}
     * @memberof InvestmentsTransactionsGetResponse
     */
    investment_transactions: Array<InvestmentTransaction>;
    /**
     * The total number of transactions available within the date range specified. If `total_investment_transactions` is larger than the size of the `transactions` array, more transactions are available and can be fetched via manipulating the `offset` parameter.
     * @type {number}
     * @memberof InvestmentsTransactionsGetResponse
     */
    total_investment_transactions: number;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof InvestmentsTransactionsGetResponse
     */
    request_id: string;
    /**
     * When true, this field indicates that the Item\'s portfolio was manually created with the Investments Fallback flow.
     * @type {boolean}
     * @memberof InvestmentsTransactionsGetResponse
     */
    is_investments_fallback_item?: boolean;
}
/**
 * Specify the list of investments transactions on the account.
 * @export
 * @interface InvestmentsTransactionsOverride
 */
export interface InvestmentsTransactionsOverride {
    /**
     * Posting date for the transaction. Must be formatted as an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) date.
     * @type {string}
     * @memberof InvestmentsTransactionsOverride
     */
    date: string;
    /**
     * The institution\'s description of the transaction.
     * @type {string}
     * @memberof InvestmentsTransactionsOverride
     */
    name: string;
    /**
     * The number of units of the security involved in this transaction. Must be positive if the type is a buy and negative if the type is a sell.
     * @type {number}
     * @memberof InvestmentsTransactionsOverride
     */
    quantity: number;
    /**
     * The price of the security at which this transaction occurred.
     * @type {number}
     * @memberof InvestmentsTransactionsOverride
     */
    price: number;
    /**
     * The combined value of all fees applied to this transaction.
     * @type {number}
     * @memberof InvestmentsTransactionsOverride
     */
    fees?: number;
    /**
     * The type of the investment transaction. Possible values are: `buy`: Buying an investment `sell`: Selling an investment `cash`: Activity that modifies a cash position `fee`: A fee on the account `transfer`: Activity that modifies a position, but not through buy/sell activity e.g. options exercise, portfolio transfer
     * @type {string}
     * @memberof InvestmentsTransactionsOverride
     */
    type: string;
    /**
     * Either a valid `iso_currency_code` or `unofficial_currency_code`
     * @type {string}
     * @memberof InvestmentsTransactionsOverride
     */
    currency: string;
    /**
     *
     * @type {SecurityOverride}
     * @memberof InvestmentsTransactionsOverride
     */
    security?: SecurityOverride;
}
/**
 * Information on an issue encountered with financial institutions interactions with financial institutions during Linking.
 * @export
 * @interface Issue
 */
export interface Issue {
    /**
     * The unique identifier of the issue.
     * @type {string}
     * @memberof Issue
     */
    issue_id?: string;
    /**
     * A list of names of the financial institutions affected.
     * @type {Array<string>}
     * @memberof Issue
     */
    institution_names?: Array<string>;
    /**
     * A list of ids of the financial institutions affected.
     * @type {Array<string>}
     * @memberof Issue
     */
    institution_ids?: Array<string>;
    /**
     * The creation time of the record tracking this issue.
     * @type {string}
     * @memberof Issue
     */
    created_at?: string;
    /**
     * A simple summary of the error for the end user.
     * @type {string}
     * @memberof Issue
     */
    summary?: string;
    /**
     * A more detailed description for the customer.
     * @type {string}
     * @memberof Issue
     */
    detailed_description?: string;
    /**
     *
     * @type {IssuesStatus}
     * @memberof Issue
     */
    status?: IssuesStatus;
}
/**
 * Webhook notifications are sent only when a subscribed issue is marked as resolved. The payload contains details about the issue at the time of its resolution, focusing on the most essential information.
 * @export
 * @interface IssueResolvedWebhook
 */
export interface IssueResolvedWebhook {
    /**
     * `ISSUES`
     * @type {string}
     * @memberof IssueResolvedWebhook
     */
    webhook_type: string;
    /**
     * `ISSUE_RESOLVED`
     * @type {string}
     * @memberof IssueResolvedWebhook
     */
    webhook_code: string;
    /**
     * The unique identifier of the connectivity issue.
     * @type {string}
     * @memberof IssueResolvedWebhook
     */
    issue_id: string;
    /**
     * A simple description of the error for the end user.
     * @type {string}
     * @memberof IssueResolvedWebhook
     */
    issue_description: string;
    /**
     * The time when the issue was marked as resolved.
     * @type {string}
     * @memberof IssueResolvedWebhook
     */
    issue_resolved_at: string;
    /**
     * The unique identifier of the financial institution involved.
     * @type {string}
     * @memberof IssueResolvedWebhook
     */
    institution_id: string;
    /**
     * The name of the financial institution involved.
     * @type {string}
     * @memberof IssueResolvedWebhook
     */
    institution_name: string;
}
/**
 * IssuesGetRequest defines the request schema for `/issues/get`.
 * @export
 * @interface IssuesGetRequest
 */
export interface IssuesGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IssuesGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IssuesGetRequest
     */
    secret?: string;
    /**
     * The unique identifier of the issue to retrieve.
     * @type {string}
     * @memberof IssuesGetRequest
     */
    issue_id: string;
}
/**
 * IssuesGetResponse defines the response schema for `/issues/get`.
 * @export
 * @interface IssuesGetResponse
 */
export interface IssuesGetResponse {
    /**
     *
     * @type {Issue}
     * @memberof IssuesGetResponse
     */
    issue?: Issue;
    /**
     * A unique identifier for the API request.
     * @type {string}
     * @memberof IssuesGetResponse
     */
    request_id?: string;
}
/**
 * IssuesSearchRequest defines the request schema for `/issues/search`.
 * @export
 * @interface IssuesSearchRequest
 */
export interface IssuesSearchRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IssuesSearchRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IssuesSearchRequest
     */
    secret?: string;
    /**
     * A unique identifier for the Plaid Item.
     * @type {string}
     * @memberof IssuesSearchRequest
     */
    item_id?: string;
    /**
     * A unique identifier for the Link session.
     * @type {string}
     * @memberof IssuesSearchRequest
     */
    link_session_id?: string;
    /**
     * The `request_id` for the Link session that might have had an institution connection issue.
     * @type {string}
     * @memberof IssuesSearchRequest
     */
    link_session_request_id?: string;
}
/**
 * IssuesSearchResponse defines the response schema for `/issues/search`.
 * @export
 * @interface IssuesSearchResponse
 */
export interface IssuesSearchResponse {
    /**
     * A list of issues affecting the Item, session, or request passed in, conforming to the Issues data model. An empty list indicates that no matching issues were found.
     * @type {Array<Issue>}
     * @memberof IssuesSearchResponse
     */
    issues?: Array<Issue>;
    /**
     * A unique identifier for the API request.
     * @type {string}
     * @memberof IssuesSearchResponse
     */
    request_id?: string;
}
/**
 * The current status of the issue.
 * @export
 * @enum {string}
 */
export declare enum IssuesStatus {
    Reported = "REPORTED",
    AwaitingResolution = "AWAITING_RESOLUTION",
    FixInProgress = "FIX_IN_PROGRESS",
    FixPendingValidation = "FIX_PENDING_VALIDATION",
    CannotFix = "CANNOT_FIX",
    Resolved = "RESOLVED"
}
/**
 * IssuesSubscribeRequest defines the request schema for `/issues/subscribe`.
 * @export
 * @interface IssuesSubscribeRequest
 */
export interface IssuesSubscribeRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof IssuesSubscribeRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof IssuesSubscribeRequest
     */
    secret?: string;
    /**
     * The unique identifier of the issue to subscribe to.
     * @type {string}
     * @memberof IssuesSubscribeRequest
     */
    issue_id: string;
    /**
     * The webhook URL where notifications should be sent when the issue status changes.
     * @type {string}
     * @memberof IssuesSubscribeRequest
     */
    webhook?: string;
}
/**
 * IssuesSubscribeResponse defines the response schema for `/issues/subscribe`.
 * @export
 * @interface IssuesSubscribeResponse
 */
export interface IssuesSubscribeResponse {
    /**
     * A unique identifier for the API request.
     * @type {string}
     * @memberof IssuesSubscribeResponse
     */
    request_id: string;
}
/**
 * A binary match indicator specifying whether the country that issued the provided document matches the country that the user separately provided to Plaid.  Note: You can configure whether a `no_match` on `issuing_country` fails the `documentary_verification` by editing your Plaid Template.
 * @export
 * @enum {string}
 */
export declare enum IssuingCountry {
    Match = "match",
    NoMatch = "no_match"
}
/**
 * Metadata about the Item.
 * @export
 * @interface Item
 */
export interface Item {
    /**
     * The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
     * @type {string}
     * @memberof Item
     */
    item_id: string;
    /**
     * The Plaid Institution ID associated with the Item. Field is `null` for Items created without an institution connection, such as Items created via Same Day Micro-deposits.
     * @type {string}
     * @memberof Item
     */
    institution_id?: string | null;
    /**
     * The name of the institution associated with the Item. Field is `null` for Items created without an institution connection, such as Items created via Same Day Micro-deposits.
     * @type {string}
     * @memberof Item
     */
    institution_name?: string | null;
    /**
     * The URL registered to receive webhooks for the Item.
     * @type {string}
     * @memberof Item
     */
    webhook: string | null;
    /**
     *
     * @type {ItemAuthMethod}
     * @memberof Item
     */
    auth_method?: ItemAuthMethod | null;
    /**
     *
     * @type {PlaidError}
     * @memberof Item
     */
    error: PlaidError | null;
    /**
     * A list of products available for the Item that have not yet been accessed. The contents of this array will be mutually exclusive with `billed_products`.
     * @type {Array<Products>}
     * @memberof Item
     */
    available_products: Array<Products>;
    /**
     * A list of products that have been billed for the Item. The contents of this array will be mutually exclusive with `available_products`. Note - `billed_products` is populated in all environments but only requests in Production are billed. Also note that products that are billed on a pay-per-call basis rather than a pay-per-Item basis, such as `balance`, will not appear here.
     * @type {Array<Products>}
     * @memberof Item
     */
    billed_products: Array<Products>;
    /**
     * A list of products added to the Item. In almost all cases, this will be the same as the `billed_products` field. For some products, it is possible for the product to be added to an Item but not yet billed (e.g. Assets, before `/asset_report/create` has been called, or Auth or Identity when added as Optional Products but before their endpoints have been called), in which case the product may appear in `products` but not in `billed_products`.
     * @type {Array<Products>}
     * @memberof Item
     */
    products?: Array<Products>;
    /**
     * A list of products that the user has consented to for the Item via [Data Transparency Messaging](/docs/link/data-transparency-messaging-migration-guide). This will consist of all products where both of the following are true: the user has consented to the required data scopes for that product and you have Production access for that product.
     * @type {Array<Products>}
     * @memberof Item
     */
    consented_products?: Array<Products>;
    /**
     * The date and time at which the Item\'s access consent will expire, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format. If the Item does not have consent expiration scheduled, this field will be `null`. Currently, only institutions in Europe and a small number of institutions in the US have expiring consent. Closer to the 1033 compliance deadline of April 1, 2026, expiration times will be populated more widely. For more details, see [Data Transparency Messaging consent expiration](https://plaid.com/docs/link/data-transparency-messaging-migration-guide/#consent-expiration-and-reauthorization.)
     * @type {string}
     * @memberof Item
     */
    consent_expiration_time: string | null;
    /**
     * Indicates whether an Item requires user interaction to be updated, which can be the case for Items with some forms of two-factor authentication.  `background` - Item can be updated in the background  `user_present_required` - Item requires user interaction to be updated
     * @type {string}
     * @memberof Item
     */
    update_type: ItemUpdateTypeEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum ItemUpdateTypeEnum {
    Background = "background",
    UserPresentRequired = "user_present_required"
}
/**
 * ItemAccessTokenInvalidateRequest defines the request schema for `/item/access_token/invalidate`
 * @export
 * @interface ItemAccessTokenInvalidateRequest
 */
export interface ItemAccessTokenInvalidateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ItemAccessTokenInvalidateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ItemAccessTokenInvalidateRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemAccessTokenInvalidateRequest
     */
    access_token: string;
}
/**
 * ItemAccessTokenInvalidateResponse defines the response schema for `/item/access_token/invalidate`
 * @export
 * @interface ItemAccessTokenInvalidateResponse
 */
export interface ItemAccessTokenInvalidateResponse {
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemAccessTokenInvalidateResponse
     */
    new_access_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ItemAccessTokenInvalidateResponse
     */
    request_id: string;
}
/**
 * Request to list a historical log of user consent events.
 * @export
 * @interface ItemActivityListRequest
 */
export interface ItemActivityListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ItemActivityListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ItemActivityListRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemActivityListRequest
     */
    access_token?: string;
    /**
     * Cursor used for pagination.
     * @type {string}
     * @memberof ItemActivityListRequest
     */
    cursor?: string;
    /**
     *
     * @type {number}
     * @memberof ItemActivityListRequest
     */
    count?: number;
}
/**
 * Describes a historical log of user consent events.
 * @export
 * @interface ItemActivityListResponse
 */
export interface ItemActivityListResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ItemActivityListResponse
     */
    request_id: string;
    /**
     * A list of activities.
     * @type {Array<Activity>}
     * @memberof ItemActivityListResponse
     */
    activities: Array<Activity>;
    /**
     * An array of objects containing timestamps for the last time each data type was accessed per application.
     * @type {Array<LastDataAccessTimes>}
     * @memberof ItemActivityListResponse
     */
    last_data_access_times: Array<LastDataAccessTimes>;
    /**
     * Cursor used for pagination.
     * @type {string}
     * @memberof ItemActivityListResponse
     */
    cursor?: string;
}
/**
 * Fired when a user successfully adds a Plaid Item during a Link session when using Hosted Link or Multi-Item Link sessions. Contains the public token for the Item.
 * @export
 * @interface ItemAddResultWebhook
 */
export interface ItemAddResultWebhook {
    /**
     * `LINK`
     * @type {string}
     * @memberof ItemAddResultWebhook
     */
    webhook_type: string;
    /**
     * `ITEM_ADD_RESULT`
     * @type {string}
     * @memberof ItemAddResultWebhook
     */
    webhook_code: string;
    /**
     * The identifier for the Link session.
     * @type {string}
     * @memberof ItemAddResultWebhook
     */
    link_session_id: string;
    /**
     * The link token used to create the Link session.
     * @type {string}
     * @memberof ItemAddResultWebhook
     */
    link_token: string;
    /**
     * The public token corresponding to the item that was added.
     * @type {string}
     * @memberof ItemAddResultWebhook
     */
    public_token: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ItemAddResultWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Request to list connected applications for a user.
 * @export
 * @interface ItemApplicationListRequest
 */
export interface ItemApplicationListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ItemApplicationListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ItemApplicationListRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemApplicationListRequest
     */
    access_token?: string | null;
}
/**
 * Describes the connected application for a particular end user.
 * @export
 * @interface ItemApplicationListResponse
 */
export interface ItemApplicationListResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ItemApplicationListResponse
     */
    request_id?: string;
    /**
     * A list of connected applications.
     * @type {Array<ConnectedApplication>}
     * @memberof ItemApplicationListResponse
     */
    applications: Array<ConnectedApplication>;
}
/**
 * User authentication parameters, for clients making a request without an `access_token`. This is only allowed for select clients and will not be supported in the future. Most clients should call /item/import to obtain an access token before making a request.
 * @export
 * @interface ItemApplicationListUserAuth
 */
export interface ItemApplicationListUserAuth {
    /**
     * Account username.
     * @type {string}
     * @memberof ItemApplicationListUserAuth
     */
    user_id?: string | null;
    /**
     * Account username hashed by FI.
     * @type {string}
     * @memberof ItemApplicationListUserAuth
     */
    fi_username_hash?: string | null;
}
/**
 * ItemApplicationScopesUpdateRequest defines the request schema for `/item/application/scopes/update`
 * @export
 * @interface ItemApplicationScopesUpdateRequest
 */
export interface ItemApplicationScopesUpdateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ItemApplicationScopesUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ItemApplicationScopesUpdateRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemApplicationScopesUpdateRequest
     */
    access_token: string;
    /**
     * This field will map to the application ID that is returned from /item/application/list, or provided to the institution in an oauth redirect.
     * @type {string}
     * @memberof ItemApplicationScopesUpdateRequest
     */
    application_id: string;
    /**
     *
     * @type {Scopes}
     * @memberof ItemApplicationScopesUpdateRequest
     */
    scopes: Scopes;
    /**
     * When scopes are updated during enrollment, this field must be populated with the state sent to the partner in the OAuth Login URI. This field is required when the context is `ENROLLMENT`.
     * @type {string}
     * @memberof ItemApplicationScopesUpdateRequest
     */
    state?: string;
    /**
     *
     * @type {ScopesContext}
     * @memberof ItemApplicationScopesUpdateRequest
     */
    context: ScopesContext;
}
/**
 * ItemApplicationScopesUpdateResponse defines the response schema for `/item/application/scopes/update`
 * @export
 * @interface ItemApplicationScopesUpdateResponse
 */
export interface ItemApplicationScopesUpdateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ItemApplicationScopesUpdateResponse
     */
    request_id: string;
}
/**
 * ItemApplicationUnlinkRequest defines the request schema for `/item/application/unlink/`
 * @export
 * @interface ItemApplicationUnlinkRequest
 */
export interface ItemApplicationUnlinkRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ItemApplicationUnlinkRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ItemApplicationUnlinkRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemApplicationUnlinkRequest
     */
    access_token: string;
    /**
     * This field will map to the application ID that is returned from /item/application/list, or provided to the institution in an oauth redirect.
     * @type {string}
     * @memberof ItemApplicationUnlinkRequest
     */
    application_id: string;
}
/**
 * ItemApplicationUnlinkResponse defines the response schema for `/item/application/unlink`
 * @export
 * @interface ItemApplicationUnlinkResponse
 */
export interface ItemApplicationUnlinkResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ItemApplicationUnlinkResponse
     */
    request_id: string;
}
/**
 * The method used to populate Auth data for the Item. This field is only populated for Items that have had Auth numbers data set on at least one of its accounts, and will be `null` otherwise. For info about the various flows, see our [Auth coverage documentation](https://plaid.com/docs/auth/coverage/).  `INSTANT_AUTH`: The Item\'s Auth data was provided directly by the user\'s institution connection.  `INSTANT_MATCH`: The Item\'s Auth data was provided via the Instant Match fallback flow.  `AUTOMATED_MICRODEPOSITS`: The Item\'s Auth data was provided via the Automated Micro-deposits flow.  `SAME_DAY_MICRODEPOSITS`: The Item\'s Auth data was provided via the Same Day Micro-deposits flow.  `INSTANT_MICRODEPOSITS`: The Item\'s Auth data was provided via the Instant Micro-deposits flow.  `DATABASE_MATCH`: The Item\'s Auth data was provided via the Database Match flow.  `DATABASE_INSIGHTS`: The Item\'s Auth data was provided via the Database Insights flow.  `TRANSFER_MIGRATED`: The Item\'s Auth data was provided via [`/transfer/migrate_account`](https://plaid.com/docs/api/products/transfer/account-linking/#migrate-account-into-transfers).  `INVESTMENTS_FALLBACK`: The Item\'s Auth data for Investments Move was provided via a [fallback flow](https://plaid.com/docs/investments-move/#fallback-flows).
 * @export
 * @enum {string}
 */
export declare enum ItemAuthMethod {
    InstantAuth = "INSTANT_AUTH",
    InstantMatch = "INSTANT_MATCH",
    AutomatedMicrodeposits = "AUTOMATED_MICRODEPOSITS",
    SameDayMicrodeposits = "SAME_DAY_MICRODEPOSITS",
    InstantMicrodeposits = "INSTANT_MICRODEPOSITS",
    DatabaseMatch = "DATABASE_MATCH",
    DatabaseInsights = "DATABASE_INSIGHTS",
    TransferMigrated = "TRANSFER_MIGRATED",
    InvestmentsFallback = "INVESTMENTS_FALLBACK"
}
/**
 * A data scope for the products that a user can consent to in [Data Transparency Messaging](/docs/link/data-transparency-messaging-migration-guide)
 * @export
 * @enum {string}
 */
export declare enum ItemConsentedDataScope {
    AccountAndBalanceInfo = "account_and_balance_info",
    ContactInfo = "contact_info",
    AccountAndRoutingNumbers = "account_and_routing_numbers",
    Transactions = "transactions",
    CreditAndLoans = "credit_and_loans",
    Investments = "investments",
    BankStatements = "bank_statements",
    RiskInfo = "risk_info"
}
/**
 * Enum representing the entity authenticating the user.
 * @export
 * @enum {string}
 */
export declare enum ItemCreateAuthentication {
    Unknown = "UNKNOWN",
    DataPartner = "DATA_PARTNER",
    Plaid = "PLAID"
}
/**
 * Fired when an error is encountered with an Item. The error can be resolved by having the user go through Link’s update mode.
 * @export
 * @interface ItemErrorWebhook
 */
export interface ItemErrorWebhook {
    /**
     * `ITEM`
     * @type {string}
     * @memberof ItemErrorWebhook
     */
    webhook_type: string;
    /**
     * `ERROR`
     * @type {string}
     * @memberof ItemErrorWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof ItemErrorWebhook
     */
    item_id: string;
    /**
     *
     * @type {PlaidError}
     * @memberof ItemErrorWebhook
     */
    error: PlaidError | null;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ItemErrorWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * ItemGetRequest defines the request schema for `/item/get`
 * @export
 * @interface ItemGetRequest
 */
export interface ItemGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ItemGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ItemGetRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemGetRequest
     */
    access_token: string;
}
/**
 * ItemGetResponse defines the response schema for `/item/get` and `/item/webhook/update`
 * @export
 * @interface ItemGetResponse
 */
export interface ItemGetResponse {
    /**
     *
     * @type {ItemWithConsentFields}
     * @memberof ItemGetResponse
     */
    item: ItemWithConsentFields;
    /**
     *
     * @type {ItemStatusNullable}
     * @memberof ItemGetResponse
     */
    status?: ItemStatusNullable | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ItemGetResponse
     */
    request_id: string;
}
/**
 * ItemImportRequest defines the request schema for `/item/import`
 * @export
 * @interface ItemImportRequest
 */
export interface ItemImportRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ItemImportRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ItemImportRequest
     */
    secret?: string;
    /**
     * Array of product strings
     * @type {Array<Products>}
     * @memberof ItemImportRequest
     */
    products: Array<Products>;
    /**
     *
     * @type {ItemImportRequestUserAuth}
     * @memberof ItemImportRequest
     */
    user_auth: ItemImportRequestUserAuth;
    /**
     *
     * @type {ItemImportRequestOptions}
     * @memberof ItemImportRequest
     */
    options?: ItemImportRequestOptions;
}
/**
 * An optional object to configure `/item/import` request.
 * @export
 * @interface ItemImportRequestOptions
 */
export interface ItemImportRequestOptions {
    /**
     * Specifies a webhook URL to associate with an Item. Plaid fires a webhook if credentials fail.
     * @type {string}
     * @memberof ItemImportRequestOptions
     */
    webhook?: string;
}
/**
 * Object of user ID and auth token pair, permitting Plaid to aggregate a user’s accounts
 * @export
 * @interface ItemImportRequestUserAuth
 */
export interface ItemImportRequestUserAuth {
    /**
     * Opaque user identifier
     * @type {string}
     * @memberof ItemImportRequestUserAuth
     */
    user_id: string;
    /**
     * Authorization token Plaid will use to aggregate this user’s accounts
     * @type {string}
     * @memberof ItemImportRequestUserAuth
     */
    auth_token: string;
}
/**
 * ItemImportResponse defines the response schema for `/item/import`
 * @export
 * @interface ItemImportResponse
 */
export interface ItemImportResponse {
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemImportResponse
     */
    access_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ItemImportResponse
     */
    request_id: string;
}
/**
 * Fired when an Item has exited the `ITEM_LOGIN_REQUIRED` state without the user having gone through the update mode flow in your app (this can happen if the user completed the update mode in a different app). If you have messaging that tells the user to complete the update mode flow, you should silence this messaging upon receiving the `LOGIN_REPAIRED` webhook.
 * @export
 * @interface ItemLoginRepairedWebhook
 */
export interface ItemLoginRepairedWebhook {
    /**
     * `ITEM`
     * @type {string}
     * @memberof ItemLoginRepairedWebhook
     */
    webhook_type: string;
    /**
     * `LOGIN_REPAIRED`
     * @type {string}
     * @memberof ItemLoginRepairedWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof ItemLoginRepairedWebhook
     */
    item_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ItemLoginRepairedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Fired once Plaid calculates income from an Item.
 * @export
 * @interface ItemProductReadyWebhook
 */
export interface ItemProductReadyWebhook {
    /**
     * `INCOME`
     * @type {string}
     * @memberof ItemProductReadyWebhook
     */
    webhook_type: string;
    /**
     * `PRODUCT_READY`
     * @type {string}
     * @memberof ItemProductReadyWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof ItemProductReadyWebhook
     */
    item_id: string;
    /**
     *
     * @type {PlaidError}
     * @memberof ItemProductReadyWebhook
     */
    error?: PlaidError | null;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ItemProductReadyWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * ItemPublicTokenCreateRequest defines the request schema for `/item/public_token/create`
 * @export
 * @interface ItemPublicTokenCreateRequest
 */
export interface ItemPublicTokenCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ItemPublicTokenCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ItemPublicTokenCreateRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemPublicTokenCreateRequest
     */
    access_token: string;
}
/**
 * ItemPublicTokenCreateResponse defines the response schema for `/item/public_token/create`
 * @export
 * @interface ItemPublicTokenCreateResponse
 */
export interface ItemPublicTokenCreateResponse {
    /**
     * A `public_token` for the particular Item corresponding to the specified `access_token`
     * @type {string}
     * @memberof ItemPublicTokenCreateResponse
     */
    public_token: string;
    /**
     *
     * @type {string}
     * @memberof ItemPublicTokenCreateResponse
     */
    expiration?: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ItemPublicTokenCreateResponse
     */
    request_id: string;
}
/**
 * ItemPublicTokenExchangeRequest defines the request schema for `/item/public_token/exchange`
 * @export
 * @interface ItemPublicTokenExchangeRequest
 */
export interface ItemPublicTokenExchangeRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ItemPublicTokenExchangeRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ItemPublicTokenExchangeRequest
     */
    secret?: string;
    /**
     * Your `public_token`, obtained from the Link `onSuccess` callback or `/sandbox/item/public_token/create`.
     * @type {string}
     * @memberof ItemPublicTokenExchangeRequest
     */
    public_token: string;
}
/**
 * ItemPublicTokenExchangeResponse defines the response schema for `/item/public_token/exchange`
 * @export
 * @interface ItemPublicTokenExchangeResponse
 */
export interface ItemPublicTokenExchangeResponse {
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemPublicTokenExchangeResponse
     */
    access_token: string;
    /**
     * The `item_id` value of the Item associated with the returned `access_token`
     * @type {string}
     * @memberof ItemPublicTokenExchangeResponse
     */
    item_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ItemPublicTokenExchangeResponse
     */
    request_id: string;
}
/**
 * ItemRemoveRequest defines the request schema for `/item/remove`
 * @export
 * @interface ItemRemoveRequest
 */
export interface ItemRemoveRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ItemRemoveRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ItemRemoveRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemRemoveRequest
     */
    access_token: string;
}
/**
 * ItemRemoveResponse defines the response schema for `/item/remove`
 * @export
 * @interface ItemRemoveResponse
 */
export interface ItemRemoveResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ItemRemoveResponse
     */
    request_id: string;
}
/**
 * An object with information about the status of the Item.
 * @export
 * @interface ItemStatus
 */
export interface ItemStatus {
    /**
     *
     * @type {ItemStatusInvestments}
     * @memberof ItemStatus
     */
    investments?: ItemStatusInvestments | null;
    /**
     *
     * @type {ItemStatusTransactions}
     * @memberof ItemStatus
     */
    transactions?: ItemStatusTransactions | null;
    /**
     *
     * @type {ItemStatusLastWebhook}
     * @memberof ItemStatus
     */
    last_webhook?: ItemStatusLastWebhook | null;
}
/**
 * Information about the last successful and failed investments update for the Item.
 * @export
 * @interface ItemStatusInvestments
 */
export interface ItemStatusInvestments {
    /**
     * [ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last successful investments update for the Item. The status will update each time Plaid successfully connects with the institution, regardless of whether any new data is available in the update.
     * @type {string}
     * @memberof ItemStatusInvestments
     */
    last_successful_update?: string | null;
    /**
     * [ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last failed investments update for the Item. The status will update each time Plaid fails an attempt to connect with the institution, regardless of whether any new data is available in the update.
     * @type {string}
     * @memberof ItemStatusInvestments
     */
    last_failed_update?: string | null;
}
/**
 * Information about the last webhook fired for the Item.
 * @export
 * @interface ItemStatusLastWebhook
 */
export interface ItemStatusLastWebhook {
    /**
     * [ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of when the webhook was fired.
     * @type {string}
     * @memberof ItemStatusLastWebhook
     */
    sent_at?: string | null;
    /**
     * The last webhook code sent.
     * @type {string}
     * @memberof ItemStatusLastWebhook
     */
    code_sent?: string | null;
}
/**
 * Information about the last successful and failed transactions update for the Item.
 * @export
 * @interface ItemStatusNullable
 */
export interface ItemStatusNullable {
    /**
     *
     * @type {ItemStatusInvestments}
     * @memberof ItemStatusNullable
     */
    investments?: ItemStatusInvestments | null;
    /**
     *
     * @type {ItemStatusTransactions}
     * @memberof ItemStatusNullable
     */
    transactions?: ItemStatusTransactions | null;
    /**
     *
     * @type {ItemStatusLastWebhook}
     * @memberof ItemStatusNullable
     */
    last_webhook?: ItemStatusLastWebhook | null;
}
/**
 * Information about the last successful and failed transactions update for the Item.
 * @export
 * @interface ItemStatusTransactions
 */
export interface ItemStatusTransactions {
    /**
     * [ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last successful transactions update for the Item. The status will update each time Plaid successfully connects with the institution, regardless of whether any new data is available in the update. This field does not reflect transactions updates performed by non-Transactions products (e.g. Signal).
     * @type {string}
     * @memberof ItemStatusTransactions
     */
    last_successful_update?: string | null;
    /**
     * [ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last failed transactions update for the Item. The status will update each time Plaid fails an attempt to connect with the institution, regardless of whether any new data is available in the update. This field does not reflect transactions updates performed by non-Transactions products (e.g. Signal).
     * @type {string}
     * @memberof ItemStatusTransactions
     */
    last_failed_update?: string | null;
}
/**
 * ItemWebhookUpdateRequest defines the request schema for `/item/webhook/update`
 * @export
 * @interface ItemWebhookUpdateRequest
 */
export interface ItemWebhookUpdateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ItemWebhookUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ItemWebhookUpdateRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ItemWebhookUpdateRequest
     */
    access_token: string;
    /**
     * The new webhook URL to associate with the Item. To remove a webhook from an Item, set to `null`.
     * @type {string}
     * @memberof ItemWebhookUpdateRequest
     */
    webhook?: string | null;
}
/**
 * ItemWebhookUpdateResponse defines the response schema for `/item/webhook/update`
 * @export
 * @interface ItemWebhookUpdateResponse
 */
export interface ItemWebhookUpdateResponse {
    /**
     *
     * @type {Item}
     * @memberof ItemWebhookUpdateResponse
     */
    item: Item;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ItemWebhookUpdateResponse
     */
    request_id: string;
}
/**
 * Metadata about the Item
 * @export
 * @interface ItemWithConsentFields
 */
export interface ItemWithConsentFields {
    /**
     * The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
     * @type {string}
     * @memberof ItemWithConsentFields
     */
    item_id: string;
    /**
     * The Plaid Institution ID associated with the Item. Field is `null` for Items created without an institution connection, such as Items created via Same Day Micro-deposits.
     * @type {string}
     * @memberof ItemWithConsentFields
     */
    institution_id?: string | null;
    /**
     * The name of the institution associated with the Item. Field is `null` for Items created without an institution connection, such as Items created via Same Day Micro-deposits.
     * @type {string}
     * @memberof ItemWithConsentFields
     */
    institution_name?: string | null;
    /**
     * The URL registered to receive webhooks for the Item.
     * @type {string}
     * @memberof ItemWithConsentFields
     */
    webhook: string | null;
    /**
     *
     * @type {ItemAuthMethod}
     * @memberof ItemWithConsentFields
     */
    auth_method?: ItemAuthMethod | null;
    /**
     *
     * @type {PlaidError}
     * @memberof ItemWithConsentFields
     */
    error: PlaidError | null;
    /**
     * A list of products available for the Item that have not yet been accessed. The contents of this array will be mutually exclusive with `billed_products`.
     * @type {Array<Products>}
     * @memberof ItemWithConsentFields
     */
    available_products: Array<Products>;
    /**
     * A list of products that have been billed for the Item. The contents of this array will be mutually exclusive with `available_products`. Note - `billed_products` is populated in all environments but only requests in Production are billed. Also note that products that are billed on a pay-per-call basis rather than a pay-per-Item basis, such as `balance`, will not appear here.
     * @type {Array<Products>}
     * @memberof ItemWithConsentFields
     */
    billed_products: Array<Products>;
    /**
     * A list of products added to the Item. In almost all cases, this will be the same as the `billed_products` field. For some products, it is possible for the product to be added to an Item but not yet billed (e.g. Assets, before `/asset_report/create` has been called, or Auth or Identity when added as Optional Products but before their endpoints have been called), in which case the product may appear in `products` but not in `billed_products`.
     * @type {Array<Products>}
     * @memberof ItemWithConsentFields
     */
    products?: Array<Products>;
    /**
     * A list of products that the user has consented to for the Item via [Data Transparency Messaging](/docs/link/data-transparency-messaging-migration-guide). This will consist of all products where both of the following are true: the user has consented to the required data scopes for that product and you have Production access for that product.
     * @type {Array<Products>}
     * @memberof ItemWithConsentFields
     */
    consented_products?: Array<Products>;
    /**
     * The date and time at which the Item\'s access consent will expire, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format. If the Item does not have consent expiration scheduled, this field will be `null`. Currently, only institutions in Europe and a small number of institutions in the US have expiring consent. Closer to the 1033 compliance deadline of April 1, 2026, expiration times will be populated more widely. For more details, see [Data Transparency Messaging consent expiration](https://plaid.com/docs/link/data-transparency-messaging-migration-guide/#consent-expiration-and-reauthorization.)
     * @type {string}
     * @memberof ItemWithConsentFields
     */
    consent_expiration_time: string | null;
    /**
     * Indicates whether an Item requires user interaction to be updated, which can be the case for Items with some forms of two-factor authentication.  `background` - Item can be updated in the background  `user_present_required` - Item requires user interaction to be updated
     * @type {string}
     * @memberof ItemWithConsentFields
     */
    update_type: ItemWithConsentFieldsUpdateTypeEnum;
    /**
     * The date and time when the Item was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof ItemWithConsentFields
     */
    created_at?: string;
    /**
     * A list of use cases that the user has consented to for the Item via [Data Transparency Messaging](/docs/link/data-transparency-messaging-migration-guide).   You can see the full list of use cases or update the list of use cases to request at any time via the Link Customization section of the [Plaid Dashboard](https://dashboard.plaid.com/link/data-transparency-v5).
     * @type {Array<string>}
     * @memberof ItemWithConsentFields
     */
    consented_use_cases?: Array<string>;
    /**
     * A list of data scopes that the user has consented to for the Item via [Data Transparency Messaging](/docs/link/data-transparency-messaging-migration-guide). These are based on the `consented_products`; see the [full mapping](/docs/link/data-transparency-messaging-migration-guide/#data-scopes-by-product) of data scopes and products.
     * @type {Array<ItemConsentedDataScope>}
     * @memberof ItemWithConsentFields
     */
    consented_data_scopes?: Array<ItemConsentedDataScope>;
}
/**
    * @export
    * @enum {string}
    */
export declare enum ItemWithConsentFieldsUpdateTypeEnum {
    Background = "background",
    UserPresentRequired = "user_present_required"
}
/**
 *
 * @export
 * @interface ItemWithConsentFieldsAllOf
 */
export interface ItemWithConsentFieldsAllOf {
    /**
     * The date and time when the Item was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof ItemWithConsentFieldsAllOf
     */
    created_at?: string;
    /**
     * A list of use cases that the user has consented to for the Item via [Data Transparency Messaging](/docs/link/data-transparency-messaging-migration-guide).   You can see the full list of use cases or update the list of use cases to request at any time via the Link Customization section of the [Plaid Dashboard](https://dashboard.plaid.com/link/data-transparency-v5).
     * @type {Array<string>}
     * @memberof ItemWithConsentFieldsAllOf
     */
    consented_use_cases?: Array<string>;
    /**
     * A list of data scopes that the user has consented to for the Item via [Data Transparency Messaging](/docs/link/data-transparency-messaging-migration-guide). These are based on the `consented_products`; see the [full mapping](/docs/link/data-transparency-messaging-migration-guide/#data-scopes-by-product) of data scopes and products.
     * @type {Array<ItemConsentedDataScope>}
     * @memberof ItemWithConsentFieldsAllOf
     */
    consented_data_scopes?: Array<ItemConsentedDataScope>;
}
/**
 * A JSON Web Key (JWK) that can be used in conjunction with [JWT libraries](https://jwt.io/#libraries-io) to verify Plaid webhooks
 * @export
 * @interface JWKPublicKey
 */
export interface JWKPublicKey {
    /**
     * The alg member identifies the cryptographic algorithm family used with the key.
     * @type {string}
     * @memberof JWKPublicKey
     */
    alg: string;
    /**
     * The crv member identifies the cryptographic curve used with the key.
     * @type {string}
     * @memberof JWKPublicKey
     */
    crv: string;
    /**
     * The kid (Key ID) member can be used to match a specific key. This can be used, for instance, to choose among a set of keys within the JWK during key rollover.
     * @type {string}
     * @memberof JWKPublicKey
     */
    kid: string;
    /**
     * The kty (key type) parameter identifies the cryptographic algorithm family used with the key, such as RSA or EC.
     * @type {string}
     * @memberof JWKPublicKey
     */
    kty: string;
    /**
     * The use (public key use) parameter identifies the intended use of the public key.
     * @type {string}
     * @memberof JWKPublicKey
     */
    use: string;
    /**
     * The x member contains the x coordinate for the elliptic curve point, provided as a base64url-encoded string of the coordinate\'s big endian representation.
     * @type {string}
     * @memberof JWKPublicKey
     */
    x: string;
    /**
     * The y member contains the y coordinate for the elliptic curve point, provided as a base64url-encoded string of the coordinate\'s big endian representation.
     * @type {string}
     * @memberof JWKPublicKey
     */
    y: string;
    /**
     * The timestamp when the key was created, in Unix time.
     * @type {number}
     * @memberof JWKPublicKey
     */
    created_at: number;
    /**
     * The timestamp when the key expired, in Unix time.
     * @type {number}
     * @memberof JWKPublicKey
     */
    expired_at: number | null;
}
/**
 * A JWT Header, used for webhook validation
 * @export
 * @interface JWTHeader
 */
export interface JWTHeader {
    /**
     *
     * @type {string}
     * @memberof JWTHeader
     */
    id: string;
    /**
     *
     * @type {string}
     * @memberof JWTHeader
     */
    kid: string;
    /**
     *
     * @type {string}
     * @memberof JWTHeader
     */
    alg: string;
}
/**
 * Result summary object specifying how the `address` field matched.
 * @export
 * @interface KYCCheckAddressSummary
 */
export interface KYCCheckAddressSummary {
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof KYCCheckAddressSummary
     */
    summary: MatchSummaryCode;
    /**
     *
     * @type {POBoxStatus}
     * @memberof KYCCheckAddressSummary
     */
    po_box: POBoxStatus;
    /**
     *
     * @type {AddressPurposeLabel}
     * @memberof KYCCheckAddressSummary
     */
    type: AddressPurposeLabel;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckAddressSummary
     */
    street?: HiddenMatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckAddressSummary
     */
    city?: HiddenMatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckAddressSummary
     */
    region?: HiddenMatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckAddressSummary
     */
    postal_code?: HiddenMatchSummaryCode;
    /**
     *
     * @type {KYCCheckDetailsInternationalAddress}
     * @memberof KYCCheckAddressSummary
     */
    international_details?: KYCCheckDetailsInternationalAddress | null;
}
/**
 * Result summary object specifying how the `date_of_birth` field matched.
 * @export
 * @interface KYCCheckDateOfBirthSummary
 */
export interface KYCCheckDateOfBirthSummary {
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof KYCCheckDateOfBirthSummary
     */
    summary: MatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckDateOfBirthSummary
     */
    day?: HiddenMatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckDateOfBirthSummary
     */
    month?: HiddenMatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckDateOfBirthSummary
     */
    year?: HiddenMatchSummaryCode;
}
/**
 * Additional information for the `kyc_check` (Data Source Verification) step. This field will be `null` unless `steps.kyc_check` has reached a terminal state of either `success` or `failed`.
 * @export
 * @interface KYCCheckDetails
 */
export interface KYCCheckDetails {
    /**
     * The outcome status for the associated Identity Verification attempt\'s `kyc_check` step. This field will always have the same value as `steps.kyc_check`.
     * @type {string}
     * @memberof KYCCheckDetails
     */
    status: string;
    /**
     *
     * @type {KYCCheckAddressSummary}
     * @memberof KYCCheckDetails
     */
    address: KYCCheckAddressSummary;
    /**
     *
     * @type {KYCCheckNameSummary}
     * @memberof KYCCheckDetails
     */
    name: KYCCheckNameSummary;
    /**
     *
     * @type {KYCCheckDateOfBirthSummary}
     * @memberof KYCCheckDetails
     */
    date_of_birth: KYCCheckDateOfBirthSummary;
    /**
     *
     * @type {KYCCheckIDNumberSummary}
     * @memberof KYCCheckDetails
     */
    id_number: KYCCheckIDNumberSummary;
    /**
     *
     * @type {KYCCheckPhoneSummary}
     * @memberof KYCCheckDetails
     */
    phone_number: KYCCheckPhoneSummary;
}
/**
 * Result summary object specifying how the `address` field matched for fields that are only present on an international KYC check.
 * @export
 * @interface KYCCheckDetailsInternationalAddress
 */
export interface KYCCheckDetailsInternationalAddress {
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckDetailsInternationalAddress
     */
    building: HiddenMatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckDetailsInternationalAddress
     */
    county: HiddenMatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckDetailsInternationalAddress
     */
    district: HiddenMatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckDetailsInternationalAddress
     */
    house_number: HiddenMatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckDetailsInternationalAddress
     */
    subpremise: HiddenMatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckDetailsInternationalAddress
     */
    thoroughfare: HiddenMatchSummaryCode;
}
/**
 * Result summary object specifying how the `id_number` field matched.
 * @export
 * @interface KYCCheckIDNumberSummary
 */
export interface KYCCheckIDNumberSummary {
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof KYCCheckIDNumberSummary
     */
    summary: MatchSummaryCode;
}
/**
 * Result summary object specifying how the `name` field matched.
 * @export
 * @interface KYCCheckNameSummary
 */
export interface KYCCheckNameSummary {
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof KYCCheckNameSummary
     */
    summary: MatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckNameSummary
     */
    given_name?: HiddenMatchSummaryCode;
    /**
     *
     * @type {HiddenMatchSummaryCode}
     * @memberof KYCCheckNameSummary
     */
    family_name?: HiddenMatchSummaryCode;
}
/**
 * Result summary object specifying how the `phone` field matched.
 * @export
 * @interface KYCCheckPhoneSummary
 */
export interface KYCCheckPhoneSummary {
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof KYCCheckPhoneSummary
     */
    summary: MatchSummaryCode;
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof KYCCheckPhoneSummary
     */
    area_code: MatchSummaryCode;
}
/**
 * Describes the last time each datatype was accessed by an application.
 * @export
 * @interface LastDataAccessTimes
 */
export interface LastDataAccessTimes {
    /**
     * ID of the application accessing data.
     * @type {string}
     * @memberof LastDataAccessTimes
     */
    application_id: string;
    /**
     * The last time account_balance_info was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
     * @type {string}
     * @memberof LastDataAccessTimes
     */
    account_balance_info: string | null;
    /**
     * The last time account_routing_number was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
     * @type {string}
     * @memberof LastDataAccessTimes
     */
    account_routing_number: string | null;
    /**
     * The last time contact_details was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
     * @type {string}
     * @memberof LastDataAccessTimes
     */
    contact_details: string | null;
    /**
     * The last time transactions was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
     * @type {string}
     * @memberof LastDataAccessTimes
     */
    transactions: string | null;
    /**
     * The last time credit_and_loans was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
     * @type {string}
     * @memberof LastDataAccessTimes
     */
    credit_and_loans: string | null;
    /**
     * The last time investments was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
     * @type {string}
     * @memberof LastDataAccessTimes
     */
    investments: string | null;
    /**
     * The last time payroll_info was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
     * @type {string}
     * @memberof LastDataAccessTimes
     */
    payroll_info: string | null;
    /**
     * The last time transaction_risk_info was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
     * @type {string}
     * @memberof LastDataAccessTimes
     */
    transaction_risk_info: string | null;
}
/**
 * The webhook of type `LIABILITIES` and code `DEFAULT_UPDATE` will be fired when new or updated liabilities have been detected on a liabilities item.
 * @export
 * @interface LiabilitiesDefaultUpdateWebhook
 */
export interface LiabilitiesDefaultUpdateWebhook {
    /**
     * `LIABILITIES`
     * @type {string}
     * @memberof LiabilitiesDefaultUpdateWebhook
     */
    webhook_type: string;
    /**
     * `DEFAULT_UPDATE`
     * @type {string}
     * @memberof LiabilitiesDefaultUpdateWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof LiabilitiesDefaultUpdateWebhook
     */
    item_id: string;
    /**
     *
     * @type {PlaidError}
     * @memberof LiabilitiesDefaultUpdateWebhook
     */
    error: PlaidError | null;
    /**
     * An array of `account_id`\'s for accounts that contain new liabilities.\'
     * @type {Array<string>}
     * @memberof LiabilitiesDefaultUpdateWebhook
     */
    account_ids_with_new_liabilities: Array<string>;
    /**
     * An object with keys of `account_id`\'s that are mapped to their respective liabilities fields that changed.  Example: `{ \"XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58\": [\"past_amount_due\"] }`
     * @type {{ [key: string]: Array<string>; }}
     * @memberof LiabilitiesDefaultUpdateWebhook
     */
    account_ids_with_updated_liabilities: {
        [key: string]: Array<string>;
    };
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof LiabilitiesDefaultUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * LiabilitiesGetRequest defines the request schema for `/liabilities/get`
 * @export
 * @interface LiabilitiesGetRequest
 */
export interface LiabilitiesGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof LiabilitiesGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof LiabilitiesGetRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof LiabilitiesGetRequest
     */
    access_token: string;
    /**
     *
     * @type {LiabilitiesGetRequestOptions}
     * @memberof LiabilitiesGetRequest
     */
    options?: LiabilitiesGetRequestOptions;
}
/**
 * An optional object to filter `/liabilities/get` results. If provided, `options` cannot be null.
 * @export
 * @interface LiabilitiesGetRequestOptions
 */
export interface LiabilitiesGetRequestOptions {
    /**
     * A list of accounts to retrieve for the Item.  An error will be returned if a provided `account_id` is not associated with the Item
     * @type {Array<string>}
     * @memberof LiabilitiesGetRequestOptions
     */
    account_ids?: Array<string>;
}
/**
 * LiabilitiesGetResponse defines the response schema for `/liabilities/get`
 * @export
 * @interface LiabilitiesGetResponse
 */
export interface LiabilitiesGetResponse {
    /**
     * An array of accounts associated with the Item
     * @type {Array<AccountBase>}
     * @memberof LiabilitiesGetResponse
     */
    accounts: Array<AccountBase>;
    /**
     *
     * @type {Item}
     * @memberof LiabilitiesGetResponse
     */
    item: Item;
    /**
     *
     * @type {LiabilitiesObject}
     * @memberof LiabilitiesGetResponse
     */
    liabilities: LiabilitiesObject;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof LiabilitiesGetResponse
     */
    request_id: string;
}
/**
 * An object containing liability accounts
 * @export
 * @interface LiabilitiesObject
 */
export interface LiabilitiesObject {
    /**
     * The credit accounts returned.
     * @type {Array<CreditCardLiability>}
     * @memberof LiabilitiesObject
     */
    credit: Array<CreditCardLiability> | null;
    /**
     * The mortgage accounts returned.
     * @type {Array<MortgageLiability>}
     * @memberof LiabilitiesObject
     */
    mortgage: Array<MortgageLiability> | null;
    /**
     * The student loan accounts returned.
     * @type {Array<StudentLoan>}
     * @memberof LiabilitiesObject
     */
    student: Array<StudentLoan> | null;
}
/**
 * Used to configure Sandbox test data for the Liabilities product
 * @export
 * @interface LiabilityOverride
 */
export interface LiabilityOverride {
    /**
     * The type of the liability object, either `credit` or `student`. Mortgages are not currently supported in the custom Sandbox.
     * @type {string}
     * @memberof LiabilityOverride
     */
    type: string;
    /**
     * The purchase APR percentage value. For simplicity, this is the only interest rate used to calculate interest charges. Can only be set if `type` is `credit`.
     * @type {number}
     * @memberof LiabilityOverride
     */
    purchase_apr: number;
    /**
     * The cash APR percentage value. Can only be set if `type` is `credit`.
     * @type {number}
     * @memberof LiabilityOverride
     */
    cash_apr: number;
    /**
     * The balance transfer APR percentage value. Can only be set if `type` is `credit`.
     * @type {number}
     * @memberof LiabilityOverride
     */
    balance_transfer_apr: number;
    /**
     * The special APR percentage value. Can only be set if `type` is `credit`.
     * @type {number}
     * @memberof LiabilityOverride
     */
    special_apr: number;
    /**
     * Override the `last_payment_amount` field. Can only be set if `type` is `credit`.
     * @type {number}
     * @memberof LiabilityOverride
     */
    last_payment_amount: number;
    /**
     * Override the `minimum_payment_amount` field. Can only be set if `type` is `credit` or `student`.
     * @type {number}
     * @memberof LiabilityOverride
     */
    minimum_payment_amount: number;
    /**
     * Override the `is_overdue` field
     * @type {boolean}
     * @memberof LiabilityOverride
     */
    is_overdue: boolean;
    /**
     * The date on which the loan was initially lent, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Can only be set if `type` is `student`.
     * @type {string}
     * @memberof LiabilityOverride
     */
    origination_date: string;
    /**
     * The original loan principal. Can only be set if `type` is `student`.
     * @type {number}
     * @memberof LiabilityOverride
     */
    principal: number;
    /**
     * The interest rate on the loan as a percentage. Can only be set if `type` is `student`.
     * @type {number}
     * @memberof LiabilityOverride
     */
    nominal_apr: number;
    /**
     * If set, interest capitalization begins at the given number of months after loan origination. By default interest is never capitalized. Can only be set if `type` is `student`.
     * @type {number}
     * @memberof LiabilityOverride
     */
    interest_capitalization_grace_period_months: number;
    /**
     *
     * @type {StudentLoanRepaymentModel}
     * @memberof LiabilityOverride
     */
    repayment_model: StudentLoanRepaymentModel;
    /**
     * Override the `expected_payoff_date` field. Can only be set if `type` is `student`.
     * @type {string}
     * @memberof LiabilityOverride
     */
    expected_payoff_date: string;
    /**
     * Override the `guarantor` field. Can only be set if `type` is `student`.
     * @type {string}
     * @memberof LiabilityOverride
     */
    guarantor: string;
    /**
     * Override the `is_federal` field. Can only be set if `type` is `student`.
     * @type {boolean}
     * @memberof LiabilityOverride
     */
    is_federal: boolean;
    /**
     * Override the `loan_name` field. Can only be set if `type` is `student`.
     * @type {string}
     * @memberof LiabilityOverride
     */
    loan_name: string;
    /**
     *
     * @type {StudentLoanStatus}
     * @memberof LiabilityOverride
     */
    loan_status: StudentLoanStatus;
    /**
     * Override the `payment_reference_number` field. Can only be set if `type` is `student`.
     * @type {string}
     * @memberof LiabilityOverride
     */
    payment_reference_number: string;
    /**
     *
     * @type {PSLFStatus}
     * @memberof LiabilityOverride
     * @deprecated
     */
    pslf_status: PSLFStatus;
    /**
     * Override the `repayment_plan.description` field. Can only be set if `type` is `student`.
     * @type {string}
     * @memberof LiabilityOverride
     */
    repayment_plan_description: string;
    /**
     * Override the `repayment_plan.type` field. Can only be set if `type` is `student`. Possible values are: `\"extended graduated\"`, `\"extended standard\"`, `\"graduated\"`, `\"income-contingent repayment\"`, `\"income-based repayment\"`, `\"income-sensitive repayment\"`, `\"interest only\"`, `\"other\"`, `\"pay as you earn\"`, `\"revised pay as you earn\"`, `\"standard\"`, or `\"saving on a valuable education\"`.
     * @type {string}
     * @memberof LiabilityOverride
     */
    repayment_plan_type: string;
    /**
     * Override the `sequence_number` field. Can only be set if `type` is `student`.
     * @type {string}
     * @memberof LiabilityOverride
     */
    sequence_number: string;
    /**
     *
     * @type {Address}
     * @memberof LiabilityOverride
     */
    servicer_address: Address;
}
/**
 * Information related to the callback from the Hosted Link session.
 * @export
 * @interface LinkCallbackMetadata
 */
export interface LinkCallbackMetadata {
    /**
     *
     * @type {LinkDeliveryWebhookCallbackType}
     * @memberof LinkCallbackMetadata
     */
    callback_type?: LinkDeliveryWebhookCallbackType;
    /**
     *
     * @type {LinkEventName}
     * @memberof LinkCallbackMetadata
     */
    event_name?: LinkEventName;
    /**
     * Indicates where in the flow the Link user exited
     * @type {string}
     * @memberof LinkCallbackMetadata
     */
    status?: string;
    /**
     * A unique identifier associated with a user\'s actions and events through the Link flow. Include this identifier when opening a support ticket for faster turnaround.
     * @type {string}
     * @memberof LinkCallbackMetadata
     */
    link_session_id?: string;
    /**
     * The request ID for the last request made by Link. This can be shared with Plaid Support to expedite investigation.
     * @type {string}
     * @memberof LinkCallbackMetadata
     */
    request_id?: string;
    /**
     *
     * @type {LinkDeliveryInstitution}
     * @memberof LinkCallbackMetadata
     */
    institution?: LinkDeliveryInstitution;
    /**
     * A list of accounts attached to the connected Item. If Account Select is enabled via the developer dashboard, accounts will only include selected accounts.
     * @type {Array<LinkDeliveryAccount>}
     * @memberof LinkCallbackMetadata
     */
    accounts?: Array<LinkDeliveryAccount>;
}
/**
 * Information related to account attached to the connected Item
 * @export
 * @interface LinkDeliveryAccount
 */
export interface LinkDeliveryAccount {
    /**
     * The Plaid `account_id`
     * @type {string}
     * @memberof LinkDeliveryAccount
     */
    id?: string;
    /**
     * The official account name
     * @type {string}
     * @memberof LinkDeliveryAccount
     */
    name?: string;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number. Note that the mask may be non-unique between an Item\'s accounts. It may also not match the mask that the bank displays to the user.
     * @type {string}
     * @memberof LinkDeliveryAccount
     */
    mask?: string;
    /**
     * The account type. See the [Account schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of possible values
     * @type {string}
     * @memberof LinkDeliveryAccount
     */
    type?: string;
    /**
     * The account subtype. See the [Account schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of possible values
     * @type {string}
     * @memberof LinkDeliveryAccount
     */
    subtype?: string;
    /**
     *
     * @type {LinkDeliveryVerificationStatus}
     * @memberof LinkDeliveryAccount
     */
    verification_status?: LinkDeliveryVerificationStatus;
    /**
     * If micro-deposit verification is being used, indicates whether the account being verified is a `business` or `personal` account.
     * @type {string}
     * @memberof LinkDeliveryAccount
     */
    class_type?: string;
}
/**
 * Webhook containing metadata proxied over from Link callback e.g `onEvent`, `onExit`, `onSuccess`.
 * @export
 * @interface LinkDeliveryCallbackWebhook
 */
export interface LinkDeliveryCallbackWebhook {
    /**
     * `LINK_DELIVERY`
     * @type {string}
     * @memberof LinkDeliveryCallbackWebhook
     */
    webhook_type: string;
    /**
     * `LINK_CALLBACK`
     * @type {string}
     * @memberof LinkDeliveryCallbackWebhook
     */
    webhook_code: string;
    /**
     * The ID of the Hosted Link session.
     * @type {string}
     * @memberof LinkDeliveryCallbackWebhook
     */
    link_delivery_session_id: string;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof LinkDeliveryCallbackWebhook
     */
    timestamp: string;
    /**
     *
     * @type {PlaidError}
     * @memberof LinkDeliveryCallbackWebhook
     */
    error?: PlaidError | null;
    /**
     *
     * @type {LinkCallbackMetadata}
     * @memberof LinkDeliveryCallbackWebhook
     */
    link_callback_metadata: LinkCallbackMetadata;
}
/**
 * The communication method containing both the type and address to send the URL.
 * @export
 * @interface LinkDeliveryCommunicationMethod
 */
export interface LinkDeliveryCommunicationMethod {
    /**
     *
     * @type {LinkDeliveryDeliveryMethod}
     * @memberof LinkDeliveryCommunicationMethod
     */
    method?: LinkDeliveryDeliveryMethod;
    /**
     * The phone number / email address that Hosted Link sessions are delivered to. Phone numbers must be in E.164 format.
     * @type {string}
     * @memberof LinkDeliveryCommunicationMethod
     */
    address?: string;
}
/**
 * LinkDeliveryCreateRequest defines the request schema for `/link_delivery/create`
 * @export
 * @interface LinkDeliveryCreateRequest
 */
export interface LinkDeliveryCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof LinkDeliveryCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof LinkDeliveryCreateRequest
     */
    secret?: string;
    /**
     * A `link_token` from a previous invocation of `/link/token/create`.
     * @type {string}
     * @memberof LinkDeliveryCreateRequest
     */
    link_token: string;
    /**
     *
     * @type {LinkDeliveryOptions}
     * @memberof LinkDeliveryCreateRequest
     */
    options?: LinkDeliveryOptions;
}
/**
 * LinkDeliveryCreateResponse defines the response schema for `/link_delivery/create`
 * @export
 * @interface LinkDeliveryCreateResponse
 */
export interface LinkDeliveryCreateResponse {
    /**
     * The URL to the Hosted Link session, which will be delivered by the specified delivery method.
     * @type {string}
     * @memberof LinkDeliveryCreateResponse
     */
    link_delivery_url: string;
    /**
     * The ID for the Hosted Link session. Same as the `link_token` string excluding the \"link-{env}-\" prefix.
     * @type {string}
     * @memberof LinkDeliveryCreateResponse
     */
    link_delivery_session_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof LinkDeliveryCreateResponse
     */
    request_id: string;
}
/**
 * The delivery method to be used to deliver the Hosted Link session URL.  `SMS`: The URL will be delivered through SMS  `EMAIL`: The URL will be delivered through email
 * @export
 * @enum {string}
 */
export declare enum LinkDeliveryDeliveryMethod {
    Sms = "SMS",
    Email = "EMAIL"
}
/**
 * LinkDeliveryGetRequest defines the request schema for `/link_delivery/get`
 * @export
 * @interface LinkDeliveryGetRequest
 */
export interface LinkDeliveryGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof LinkDeliveryGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof LinkDeliveryGetRequest
     */
    secret?: string;
    /**
     * The ID for the Hosted Link session from a previous invocation of `/link_delivery/create`.
     * @type {string}
     * @memberof LinkDeliveryGetRequest
     */
    link_delivery_session_id: string;
}
/**
 * LinkDeliveryGetRequest defines the response schema for `/link_delivery/get`
 * @export
 * @interface LinkDeliveryGetResponse
 */
export interface LinkDeliveryGetResponse {
    /**
     *
     * @type {LinkDeliverySessionStatus}
     * @memberof LinkDeliveryGetResponse
     */
    status: LinkDeliverySessionStatus;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the time the given Hosted Link session was created at.
     * @type {string}
     * @memberof LinkDeliveryGetResponse
     */
    created_at: string;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the time the given Hosted Link session was completed at.
     * @type {string}
     * @memberof LinkDeliveryGetResponse
     */
    completed_at?: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof LinkDeliveryGetResponse
     */
    request_id: string;
    /**
     * An array of access tokens associated with the Hosted Link session.
     * @type {Array<string>}
     * @memberof LinkDeliveryGetResponse
     */
    access_tokens?: Array<string> | null;
    /**
     * An array of `item_id`s associated with the Hosted Link session.
     * @type {Array<string>}
     * @memberof LinkDeliveryGetResponse
     */
    item_ids?: Array<string> | null;
}
/**
 * Information related to the financial institution.
 * @export
 * @interface LinkDeliveryInstitution
 */
export interface LinkDeliveryInstitution {
    /**
     * The full institution name, such as \'Wells Fargo\'
     * @type {string}
     * @memberof LinkDeliveryInstitution
     */
    name?: string;
    /**
     * The Plaid institution identifier
     * @type {string}
     * @memberof LinkDeliveryInstitution
     */
    institution_id?: string;
}
/**
 * Information related to the related to the delivery of the link session to users
 * @export
 * @interface LinkDeliveryMetadata
 */
export interface LinkDeliveryMetadata {
    /**
     *
     * @type {LinkDeliveryWebhookCommunicationMethod}
     * @memberof LinkDeliveryMetadata
     */
    communication_method?: LinkDeliveryWebhookCommunicationMethod;
    /**
     *
     * @type {LinkDeliveryWebhookDeliveryStatus}
     * @memberof LinkDeliveryMetadata
     */
    delivery_status?: LinkDeliveryWebhookDeliveryStatus;
}
/**
 * Optional metadata related to the Hosted Link session
 * @export
 * @interface LinkDeliveryOptions
 */
export interface LinkDeliveryOptions {
    /**
     *
     * @type {LinkDeliveryRecipient}
     * @memberof LinkDeliveryOptions
     */
    recipient?: LinkDeliveryRecipient;
}
/**
 * Metadata related to the recipient. If the information required to populate this field is not available, leave it blank.
 * @export
 * @interface LinkDeliveryRecipient
 */
export interface LinkDeliveryRecipient {
    /**
     * The list of communication methods to send the Hosted Link session URL to. If delivery is not required, leave this field blank.
     * @type {Array<LinkDeliveryCommunicationMethod>}
     * @memberof LinkDeliveryRecipient
     */
    communication_methods?: Array<LinkDeliveryCommunicationMethod>;
    /**
     * First name of the recipient. Will be used in the body of the email / text (if configured). If this information is not available, leave this field blank.
     * @type {string}
     * @memberof LinkDeliveryRecipient
     */
    first_name?: string;
}
/**
 * The status of the given Hosted Link session.  `CREATED`: The session is created but not yet accessed by the user  `OPENED`: The session is opened by the user but not yet completed  `EXITED`: The session has been exited by the user  `COMPLETED`: The session has been completed by the user  `EXPIRED`: The session has expired
 * @export
 * @enum {string}
 */
export declare enum LinkDeliverySessionStatus {
    Created = "CREATED",
    Opened = "OPENED",
    Exited = "EXITED",
    Completed = "COMPLETED",
    Expired = "EXPIRED"
}
/**
 * Indicates an Item\'s micro-deposit-based verification or database verification status.
 * @export
 * @enum {string}
 */
export declare enum LinkDeliveryVerificationStatus {
    AutomaticallyVerified = "automatically_verified",
    PendingAutomaticVerification = "pending_automatic_verification",
    PendingManualVerification = "pending_manual_verification",
    ManuallyVerified = "manually_verified",
    VerificationExpired = "verification_expired",
    VerificationFailed = "verification_failed",
    DatabaseMatched = "database_matched",
    DatabaseInsightsPending = "database_insights_pending"
}
/**
 * The type of Link callback event
 * @export
 * @enum {string}
 */
export declare enum LinkDeliveryWebhookCallbackType {
    Success = "ON_SUCCESS",
    Event = "ON_EVENT",
    Exit = "ON_EXIT"
}
/**
 * The communication method used to deliver the Hosted Link session
 * @export
 * @enum {string}
 */
export declare enum LinkDeliveryWebhookCommunicationMethod {
    Sms = "SMS",
    Email = "EMAIL"
}
/**
 * The status of the delivery of the Hosted Link to the user
 * @export
 * @enum {string}
 */
export declare enum LinkDeliveryWebhookDeliveryStatus {
    Success = "SUCCESS",
    Failure = "FAILURE"
}
/**
 * An event that occurred while the user was going through Link
 * @export
 * @interface LinkEvent
 */
export interface LinkEvent {
    /**
     * Event name
     * @type {string}
     * @memberof LinkEvent
     */
    event_name: string;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof LinkEvent
     */
    timestamp: string;
    /**
     * UUID that can be used to deduplicate events
     * @type {string}
     * @memberof LinkEvent
     */
    event_id: string;
    /**
     *
     * @type {LinkEventMetadata}
     * @memberof LinkEvent
     */
    event_metadata: LinkEventMetadata;
}
/**
 * Metadata about an event that occurred while the user was going through Link
 * @export
 * @interface LinkEventMetadata
 */
export interface LinkEventMetadata {
    /**
     * The error code that the user encountered. Emitted by `ERROR`, `EXIT`.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    error_code?: string;
    /**
     * The error message that the user encountered. Emitted by: `ERROR`, `EXIT`.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    error_message?: string;
    /**
     * The error type that the user encountered. Emitted by: `ERROR`, `EXIT`.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    error_type?: string;
    /**
     * The status key indicates the point at which the user exited the Link flow. Emitted by: `EXIT`.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    exit_status?: string;
    /**
     * The ID of the selected institution. Emitted by: all events.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    institution_id?: string;
    /**
     * The name of the selected institution. Emitted by: all events.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    institution_name?: string;
    /**
     * The query used to search for institutions. Emitted by: `SEARCH_INSTITUTION`.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    institution_search_query?: string;
    /**
     * The request ID for the last request made by Link. This can be shared with Plaid Support to expedite investigation. Emitted by: all events.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    request_id?: string;
    /**
     * If set, the user has encountered one of the following MFA types: code, device, questions, selections. Emitted by: `SUBMIT_MFA` and `TRANSITION_VIEW` when `view_name` is `MFA`.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    mfa_type?: string;
    /**
     * The name of the view that is being transitioned to. Emitted by: `TRANSITION_VIEW`.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    view_name?: string;
    /**
     * Either the verification method for a matched institution selected by the user or the Auth Type Select flow type selected by the user. If selection is used to describe selected verification method, then possible values are `phoneotp` or `password`;  if selection is used to describe the selected Auth Type Select flow, then possible values are `flow_type_manual` or `flow_type_instant`. Emitted by: `MATCHED_SELECT_VERIFY_METHOD` and `SELECT_AUTH_TYPE`.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    selection?: string;
    /**
     * The name of the selected brand.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    brand_name?: string;
    /**
     * The reason this institution was matched. This will be either `returning_user` or `routing_number` if emitted by `MATCHED_SELECT_INSTITUTION`. Otherwise, this will be `SAVED_INSTITUTION` or `AUTO_SELECT_SAVED_INSTITUTION` if emitted by `SELECT_INSTITUTION`.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    match_reason?: string;
    /**
     * The routing number submitted by user at the micro-deposits routing number pane. Emitted by `SUBMIT_ROUTING_NUMBER`.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    routing_number?: string;
    /**
     * The account number mask extracted from the user-provided account number. If the user-inputted account number is four digits long, `account_number_mask` is empty. Emitted by `SUBMIT_ACCOUNT_NUMBER`.
     * @type {string}
     * @memberof LinkEventMetadata
     */
    account_number_mask?: string;
}
/**
 * A string representing the event that has just occurred in the Link flow.
 * @export
 * @enum {string}
 */
export declare enum LinkEventName {
    BankIncomeInsightsCompleted = "BANK_INCOME_INSIGHTS_COMPLETED",
    CloseOauth = "CLOSE_OAUTH",
    Error = "ERROR",
    Exit = "EXIT",
    FailOauth = "FAIL_OAUTH",
    Handoff = "HANDOFF",
    IssueFollowed = "ISSUE_FOLLOWED",
    Open = "OPEN",
    OpenMyPlaid = "OPEN_MY_PLAID",
    OpenOauth = "OPEN_OAUTH",
    SearchInstitution = "SEARCH_INSTITUTION",
    SelectAuthType = "SELECT_AUTH_TYPE",
    SelectBrand = "SELECT_BRAND",
    SelectDegradedInstitution = "SELECT_DEGRADED_INSTITUTION",
    SelectDownInstitution = "SELECT_DOWN_INSTITUTION",
    SelectFilteredInstitution = "SELECT_FILTERED_INSTITUTION",
    SelectInstitution = "SELECT_INSTITUTION",
    SubmitAccountNumber = "SUBMIT_ACCOUNT_NUMBER",
    SubmitCredentials = "SUBMIT_CREDENTIALS",
    SubmitDocuments = "SUBMIT_DOCUMENTS",
    SubmitDocumentsError = "SUBMIT_DOCUMENTS_ERROR",
    SubmitDocumentsSuccess = "SUBMIT_DOCUMENTS_SUCCESS",
    SubmitMfa = "SUBMIT_MFA",
    SubmitRoutingNumber = "SUBMIT_ROUTING_NUMBER",
    TransitionView = "TRANSITION_VIEW",
    ViewDataTypes = "VIEW_DATA_TYPES"
}
/**
 * This webhook contains a summary of the events from a Link session and will be fired after the user finishes going through Link. If the user abandons the Link flow (i.e., closes the hosted link webpage or leaves Link open for too long without taking any action), the webhook will be fired 5-15 minutes after the last user interaction. A single Link session may occasionally generate multiple `EVENTS` webhooks. If this occurs, the new webhook will contain all previous events for the session, as well as new events that occurred since the previous `EVENTS` webhook was sent. If this occurs, events can be grouped using the `link_session_id` field and, if necessary, de-duplicated using the `event_id` field.  By default, the `EVENTS` webhook is sent only for sessions where the end user goes through a Hosted Link flow (including Link Recovery flows). If you would like to receive this webhook for sessions not using Hosted Link, contact your Account Manager or Support.
 * @export
 * @interface LinkEventsWebhook
 */
export interface LinkEventsWebhook {
    /**
     * `LINK`
     * @type {string}
     * @memberof LinkEventsWebhook
     */
    webhook_type: string;
    /**
     * `EVENTS`
     * @type {string}
     * @memberof LinkEventsWebhook
     */
    webhook_code: string;
    /**
     * The Link events emitted during the Link session
     * @type {Array<LinkEvent>}
     * @memberof LinkEventsWebhook
     */
    events: Array<LinkEvent>;
    /**
     * An identifier for the Link session these events occurred in
     * @type {string}
     * @memberof LinkEventsWebhook
     */
    link_session_id: string;
    /**
     * The Link token used to create the Link session these events are from
     * @type {string}
     * @memberof LinkEventsWebhook
     */
    link_token: string;
}
/**
 * LinkOAuthCorrelationIdExchangeRequest defines the request schema for `/link/oauth/correlation_id/exchange`
 * @export
 * @interface LinkOAuthCorrelationIdExchangeRequest
 */
export interface LinkOAuthCorrelationIdExchangeRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof LinkOAuthCorrelationIdExchangeRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof LinkOAuthCorrelationIdExchangeRequest
     */
    secret?: string;
    /**
     * A `link_correlation_id` from a received OAuth redirect URI callback
     * @type {string}
     * @memberof LinkOAuthCorrelationIdExchangeRequest
     */
    link_correlation_id: string;
}
/**
 * LinkOAuthCorrelationIdExchangeResponse defines the response schema for `/link/oauth/correlation_id/exchange`
 * @export
 * @interface LinkOAuthCorrelationIdExchangeResponse
 */
export interface LinkOAuthCorrelationIdExchangeResponse {
    /**
     * The `link_token` associated to the given `link_correlation_id`, which can be used to re-initialize Link.
     * @type {string}
     * @memberof LinkOAuthCorrelationIdExchangeResponse
     */
    link_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof LinkOAuthCorrelationIdExchangeResponse
     */
    request_id: string;
}
/**
 * The details of a bank employment verification in Link.
 * @export
 * @interface LinkSessionBankEmploymentResult
 */
export interface LinkSessionBankEmploymentResult {
    /**
     *
     * @type {CreditSessionBankEmploymentStatus}
     * @memberof LinkSessionBankEmploymentResult
     */
    status: CreditSessionBankEmploymentStatus;
    /**
     * The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
     * @type {string}
     * @memberof LinkSessionBankEmploymentResult
     */
    item_id: string;
    /**
     *
     * @type {LinkSessionSuccessMetadataInstitution}
     * @memberof LinkSessionBankEmploymentResult
     */
    institution: LinkSessionSuccessMetadataInstitution | null;
}
/**
 * The details of a bank income verification in Link.
 * @export
 * @interface LinkSessionBankIncomeResult
 */
export interface LinkSessionBankIncomeResult {
    /**
     *
     * @type {CreditSessionBankIncomeStatus}
     * @memberof LinkSessionBankIncomeResult
     */
    status: CreditSessionBankIncomeStatus;
    /**
     * The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
     * @type {string}
     * @memberof LinkSessionBankIncomeResult
     */
    item_id: string;
    /**
     *
     * @type {LinkSessionSuccessMetadataInstitution}
     * @memberof LinkSessionBankIncomeResult
     */
    institution: LinkSessionSuccessMetadataInstitution | null;
}
/**
 * The details of a document upload CRA session in link
 * @export
 * @interface LinkSessionCraDocumentUploadResult
 */
export interface LinkSessionCraDocumentUploadResult {
    /**
     * The number of bank statements uploaded by the user.
     * @type {number}
     * @memberof LinkSessionCraDocumentUploadResult
     */
    num_bank_statements_uploaded: number;
}
/**
 * The details of a Plaid Check Item add in Link.
 * @export
 * @interface LinkSessionCraItemAddResult
 */
export interface LinkSessionCraItemAddResult {
    /**
     * The Plaid Check Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. The `item_id` is case-sensitive.
     * @type {string}
     * @memberof LinkSessionCraItemAddResult
     */
    item_id: string;
    /**
     * A list of accounts attached to the connected Item. If Account Select is enabled via the developer dashboard, `accounts` will only include selected accounts.
     * @type {Array<LinkSessionSuccessMetadataAccount>}
     * @memberof LinkSessionCraItemAddResult
     */
    accounts: Array<LinkSessionSuccessMetadataAccount>;
    /**
     *
     * @type {LinkSessionSuccessMetadataInstitution}
     * @memberof LinkSessionCraItemAddResult
     */
    institution: LinkSessionSuccessMetadataInstitution | null;
}
/**
 * An object representing an [onExit](https://plaid.com/docs/link/web/#onexit) callback from Link.
 * @export
 * @interface LinkSessionExit
 */
export interface LinkSessionExit {
    /**
     *
     * @type {PlaidError}
     * @memberof LinkSessionExit
     */
    error: PlaidError | null;
    /**
     *
     * @type {LinkSessionExitMetadata}
     * @memberof LinkSessionExit
     */
    metadata: LinkSessionExitMetadata | null;
}
/**
 * An object representing an [onExit](https://plaid.com/docs/link/web/#onexit) callback from Link. This field has been deprecated in favor of [`exit`](https://plaid.com/docs/api/link/#link-token-get-response-link-sessions-exit), for improved naming consistency.
 * @export
 * @interface LinkSessionExitDeprecated
 */
export interface LinkSessionExitDeprecated {
    /**
     *
     * @type {PlaidError}
     * @memberof LinkSessionExitDeprecated
     */
    error: PlaidError | null;
    /**
     *
     * @type {LinkSessionExitMetadata}
     * @memberof LinkSessionExitDeprecated
     */
    metadata: LinkSessionExitMetadata | null;
}
/**
 * Displayed if a user exits Link without successfully linking an Item.
 * @export
 * @interface LinkSessionExitMetadata
 */
export interface LinkSessionExitMetadata {
    /**
     *
     * @type {LinkSessionExitMetadataInstitution}
     * @memberof LinkSessionExitMetadata
     */
    institution?: LinkSessionExitMetadataInstitution | null;
    /**
     * The point at which the user exited the Link flow. One of the following values.
     * @type {string}
     * @memberof LinkSessionExitMetadata
     */
    status?: string;
    /**
     * A unique identifier associated with a user\'s actions and events through the Link flow. Include this identifier when opening a support ticket for faster turnaround.
     * @type {string}
     * @memberof LinkSessionExitMetadata
     */
    link_session_id?: string;
    /**
     * The request ID for the last request made by Link. This can be shared with Plaid Support to expedite investigation.
     * @type {string}
     * @memberof LinkSessionExitMetadata
     */
    request_id?: string;
}
/**
 * An institution object. If the Item was created via Same-Day or Instant micro-deposit verification, will be `null`.
 * @export
 * @interface LinkSessionExitMetadataInstitution
 */
export interface LinkSessionExitMetadataInstitution {
    /**
     * The full institution name, such as `Wells Fargo`
     * @type {string}
     * @memberof LinkSessionExitMetadataInstitution
     */
    name?: string;
    /**
     * The Plaid institution identifier
     * @type {string}
     * @memberof LinkSessionExitMetadataInstitution
     */
    institution_id?: string;
}
/**
 * Contains the state of a completed Link session, along with the public token(s) if available.  By default, this webhook is sent only for sessions enabled for the Hosted Link flow (including Link Recovery flows) or a Multi-Item Link flow. If you would like to receive this webhook for other sessions, contact your Account Manager or Support.
 * @export
 * @interface LinkSessionFinishedWebhook
 */
export interface LinkSessionFinishedWebhook {
    /**
     * `LINK`
     * @type {string}
     * @memberof LinkSessionFinishedWebhook
     */
    webhook_type: string;
    /**
     * `SESSION_FINISHED`
     * @type {string}
     * @memberof LinkSessionFinishedWebhook
     */
    webhook_code: string;
    /**
     * The final status of the Link session. Will always be \"SUCCESS\" or \"EXITED\".
     * @type {string}
     * @memberof LinkSessionFinishedWebhook
     */
    status: string;
    /**
     * The identifier for the Link session.
     * @type {string}
     * @memberof LinkSessionFinishedWebhook
     */
    link_session_id: string;
    /**
     * The link token used to create the Link session.
     * @type {string}
     * @memberof LinkSessionFinishedWebhook
     */
    link_token: string;
    /**
     * The public token generated by the Link session. This field has been deprecated; please use `public_tokens` instead.
     * @type {string}
     * @memberof LinkSessionFinishedWebhook
     * @deprecated
     */
    public_token?: string;
    /**
     * The public tokens generated by the Link session.
     * @type {Array<string>}
     * @memberof LinkSessionFinishedWebhook
     */
    public_tokens?: Array<string>;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof LinkSessionFinishedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * The details of an Item add in Link.
 * @export
 * @interface LinkSessionItemAddResult
 */
export interface LinkSessionItemAddResult {
    /**
     * Returned once a user has successfully linked their Item.
     * @type {string}
     * @memberof LinkSessionItemAddResult
     */
    public_token: string;
    /**
     * A list of accounts attached to the connected Item. If Account Select is enabled via the developer dashboard, `accounts` will only include selected accounts.
     * @type {Array<LinkSessionSuccessMetadataAccount>}
     * @memberof LinkSessionItemAddResult
     */
    accounts: Array<LinkSessionSuccessMetadataAccount>;
    /**
     *
     * @type {LinkSessionSuccessMetadataInstitution}
     * @memberof LinkSessionItemAddResult
     */
    institution: LinkSessionSuccessMetadataInstitution | null;
}
/**
 * The details of a digital payroll income verification in Link.
 * @export
 * @interface LinkSessionPayrollIncomeResult
 */
export interface LinkSessionPayrollIncomeResult {
    /**
     * The number of paystubs retrieved from a payroll provider.
     * @type {number}
     * @memberof LinkSessionPayrollIncomeResult
     */
    num_paystubs_retrieved: number;
    /**
     * The number of W-2s retrieved from a payroll provider.
     * @type {number}
     * @memberof LinkSessionPayrollIncomeResult
     */
    num_w2s_retrieved: number;
    /**
     *
     * @type {LinkSessionSuccessMetadataInstitution}
     * @memberof LinkSessionPayrollIncomeResult
     */
    institution: LinkSessionSuccessMetadataInstitution | null;
}
/**
 * The set of results for a Link session.
 * @export
 * @interface LinkSessionResults
 */
export interface LinkSessionResults {
    /**
     * The set of Item adds for the Link session.
     * @type {Array<LinkSessionItemAddResult>}
     * @memberof LinkSessionResults
     */
    item_add_results: Array<LinkSessionItemAddResult>;
    /**
     * The set of Plaid Check Item adds for the Link session.
     * @type {Array<LinkSessionCraItemAddResult>}
     * @memberof LinkSessionResults
     */
    cra_item_add_results: Array<LinkSessionCraItemAddResult>;
    /**
     * The set of bank income verifications for the Link session.
     * @type {Array<LinkSessionBankIncomeResult>}
     * @memberof LinkSessionResults
     */
    bank_income_results: Array<LinkSessionBankIncomeResult>;
    /**
     * The set of payroll income verifications for the Link session.
     * @type {Array<LinkSessionPayrollIncomeResult>}
     * @memberof LinkSessionResults
     */
    payroll_income_results: Array<LinkSessionPayrollIncomeResult>;
    /**
     *
     * @type {CreditSessionDocumentIncomeResult}
     * @memberof LinkSessionResults
     */
    document_income_results: CreditSessionDocumentIncomeResult | null;
    /**
     *
     * @type {LinkSessionCraDocumentUploadResult}
     * @memberof LinkSessionResults
     */
    cra_document_upload_results?: LinkSessionCraDocumentUploadResult | null;
}
/**
 * An object representing an [onSuccess](https://plaid.com/docs/link/web/#onsuccess) callback from Link. This object has been deprecated in favor of the newer [`results.item_add_result`](https://plaid.com/docs/api/link/#link-token-get-response-link-sessions-results-item-add-results), which can support multiple public tokens in a single Link session.
 * @export
 * @interface LinkSessionSuccess
 */
export interface LinkSessionSuccess {
    /**
     * Displayed once a user has successfully linked their Item.
     * @type {string}
     * @memberof LinkSessionSuccess
     */
    public_token: string;
    /**
     *
     * @type {LinkSessionSuccessMetadata}
     * @memberof LinkSessionSuccess
     */
    metadata: LinkSessionSuccessMetadata | null;
}
/**
 * Displayed once a user has successfully linked their Item.
 * @export
 * @interface LinkSessionSuccessMetadata
 */
export interface LinkSessionSuccessMetadata {
    /**
     *
     * @type {LinkSessionSuccessMetadataInstitution}
     * @memberof LinkSessionSuccessMetadata
     */
    institution?: LinkSessionSuccessMetadataInstitution | null;
    /**
     * A list of accounts attached to the connected Item. If Account Select is enabled via the developer dashboard, `accounts` will only include selected accounts.
     * @type {Array<LinkSessionSuccessMetadataAccount>}
     * @memberof LinkSessionSuccessMetadata
     */
    accounts?: Array<LinkSessionSuccessMetadataAccount>;
    /**
     * A unique identifier associated with a user\'s actions and events through the Link flow. Include this identifier when opening a support ticket for faster turnaround.
     * @type {string}
     * @memberof LinkSessionSuccessMetadata
     */
    link_session_id?: string;
    /**
     *
     * @type {LinkSessionSuccessMetadataTransferStatus}
     * @memberof LinkSessionSuccessMetadata
     */
    transfer_status?: LinkSessionSuccessMetadataTransferStatus | null;
}
/**
 * An account attached to the connected Item.
 * @export
 * @interface LinkSessionSuccessMetadataAccount
 */
export interface LinkSessionSuccessMetadataAccount {
    /**
     * The Plaid `account_id`
     * @type {string}
     * @memberof LinkSessionSuccessMetadataAccount
     */
    id?: string;
    /**
     * The official account name
     * @type {string}
     * @memberof LinkSessionSuccessMetadataAccount
     */
    name?: string;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number. Note that the mask may be non-unique between an Item\'s accounts. It may also not match the mask that the bank displays to the user.
     * @type {string}
     * @memberof LinkSessionSuccessMetadataAccount
     */
    mask?: string | null;
    /**
     * The account type. See the [Account schema](/docs/api/accounts#account-type-schema) for a full list of possible values
     * @type {string}
     * @memberof LinkSessionSuccessMetadataAccount
     */
    type?: string;
    /**
     * The account subtype. See the [Account schema](/docs/api/accounts#account-type-schema) for a full list of possible values
     * @type {string}
     * @memberof LinkSessionSuccessMetadataAccount
     */
    subtype?: string;
    /**
     * Indicates an Item\'s micro-deposit-based verification or database verification status. Possible values are:  `pending_automatic_verification`: The Item is pending automatic verification  `pending_manual_verification`: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the code.  `automatically_verified`: The Item has successfully been automatically verified  `manually_verified`: The Item has successfully been manually verified  `verification_expired`: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link.  `verification_failed`: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link.  `database_matched`: The Item has successfully been verified using Plaid\'s data sources.  `database_insights_pending`: The Database Insights result is pending and will be available upon Auth request. Note: Database Insights is currently a beta feature, please contact your account manager for more information.  `null`: Neither micro-deposit-based verification nor database verification are being used for the Item.
     * @type {string}
     * @memberof LinkSessionSuccessMetadataAccount
     */
    verification_status?: string | null;
    /**
     * If micro-deposit verification was being used, indicates the user\'s selection when asked if the account being verified is a `business` or `personal` account. This field is deprecated as Plaid no longer collects this information during the micro-deposit flow. To see whether an account is business or personal, use the `holder_category` field instead.
     * @type {string}
     * @memberof LinkSessionSuccessMetadataAccount
     * @deprecated
     */
    class_type?: string | null;
}
/**
 * An institution object. If the Item was created via Same-Day or Instant micro-deposit verification, will be `null`.
 * @export
 * @interface LinkSessionSuccessMetadataInstitution
 */
export interface LinkSessionSuccessMetadataInstitution {
    /**
     * The full institution name, such as `\'Wells Fargo\'`
     * @type {string}
     * @memberof LinkSessionSuccessMetadataInstitution
     */
    name?: string;
    /**
     * The Plaid institution identifier
     * @type {string}
     * @memberof LinkSessionSuccessMetadataInstitution
     */
    institution_id?: string;
}
/**
 * The status of a transfer. Returned only when [Transfer UI](/docs/transfer/using-transfer-ui) is implemented.  - `COMPLETE` – The transfer was completed. - `INCOMPLETE` – The transfer could not be completed. For help, see [Troubleshooting transfers](/docs/transfer/using-transfer-ui#troubleshooting-transfers).
 * @export
 * @enum {string}
 */
export declare enum LinkSessionSuccessMetadataTransferStatus {
    Complete = "COMPLETE",
    Incomplete = "INCOMPLETE",
    Null = "null"
}
/**
 * By default, Link will provide limited account filtering: it will only display Institutions that are compatible with all products supplied in the `products` parameter of `/link/token/create`, and, if `auth` is specified in the `products` array, will also filter out accounts other than `checking`, `savings`, and `cash management` accounts on the Account Select pane. You can further limit the accounts shown in Link by using `account_filters` to specify the account subtypes to be shown in Link. Only the specified subtypes will be shown. This filtering applies to both the Account Select view (if enabled) and the Institution Select view. Institutions that do not support the selected subtypes will be omitted from Link. To indicate that all subtypes should be shown, use the value `\"all\"`. If the `account_filters` filter is used, any account type for which a filter is not specified will be entirely omitted from Link. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).  The filter may or may not impact the list of accounts shown by the institution in the OAuth account selection flow, depending on the specific institution. If the user selects excluded account subtypes in the OAuth flow, these accounts will not be added to the Item. If the user selects only excluded account subtypes, the link attempt will fail and the user will be prompted to try again.
 * @export
 * @interface LinkTokenAccountFilters
 */
export interface LinkTokenAccountFilters {
    /**
     *
     * @type {DepositoryFilter}
     * @memberof LinkTokenAccountFilters
     */
    depository?: DepositoryFilter;
    /**
     *
     * @type {CreditFilter}
     * @memberof LinkTokenAccountFilters
     */
    credit?: CreditFilter;
    /**
     *
     * @type {LoanFilter}
     * @memberof LinkTokenAccountFilters
     */
    loan?: LoanFilter;
    /**
     *
     * @type {InvestmentFilter}
     * @memberof LinkTokenAccountFilters
     */
    investment?: InvestmentFilter;
    /**
     *
     * @type {OtherFilter}
     * @memberof LinkTokenAccountFilters
     */
    other?: OtherFilter;
}
/**
 * Configuration parameters for the Cashflow Report product. Currently in closed beta.
 * @export
 * @interface LinkTokenCashflowReport
 */
export interface LinkTokenCashflowReport {
    /**
     * Number of days of transaction history to request in the Cashflow Report product.
     * @type {number}
     * @memberof LinkTokenCashflowReport
     */
    days_requested?: number;
}
/**
 * A map containing data to pass in for the Card Switch flow.
 * @export
 * @interface LinkTokenCreateCardSwitch
 */
export interface LinkTokenCreateCardSwitch {
    /**
     * The BIN (Bank Identification Number) of the card to switch.
     * @type {string}
     * @memberof LinkTokenCreateCardSwitch
     */
    card_bin: string;
}
/**
 * A filter to apply to `credit`-type accounts
 * @export
 * @interface LinkTokenCreateCreditFilter
 */
export interface LinkTokenCreateCreditFilter {
    /**
     * An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {Array<CreditAccountSubtype>}
     * @memberof LinkTokenCreateCreditFilter
     */
    account_subtypes?: Array<CreditAccountSubtype>;
}
/**
 * A filter to apply to `depository`-type accounts
 * @export
 * @interface LinkTokenCreateDepositoryFilter
 */
export interface LinkTokenCreateDepositoryFilter {
    /**
     * An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {Array<DepositoryAccountSubtype>}
     * @memberof LinkTokenCreateDepositoryFilter
     */
    account_subtypes?: Array<DepositoryAccountSubtype>;
}
/**
 * Configuration parameters for Hosted Link. To enable the session for Hosted Link, send this object in the request. It can be empty.
 * @export
 * @interface LinkTokenCreateHostedLink
 */
export interface LinkTokenCreateHostedLink {
    /**
     *
     * @type {HostedLinkDeliveryMethod}
     * @memberof LinkTokenCreateHostedLink
     */
    delivery_method?: HostedLinkDeliveryMethod;
    /**
     * URI that Hosted Link will redirect to upon completion of the Link flow. This will only occur in Hosted Link sessions, not in other implementation methods.
     * @type {string}
     * @memberof LinkTokenCreateHostedLink
     */
    completion_redirect_uri?: string;
    /**
     * How many seconds the link will be valid for. Must be positive. Cannot be longer than 21 days. The default lifetime is 7 days for links delivered by email, 1 day for links delivered via SMS, and 30 minutes for links not sent via Plaid Link delivery. This parameter will override the value of all three link types.
     * @type {number}
     * @memberof LinkTokenCreateHostedLink
     */
    url_lifetime_seconds?: number;
    /**
     * This indicates whether the client is opening hosted Link in a mobile app in an out of process web view (OOPWV) (i.e., an `AsWebAuthenticationSession` / `SFSafariViewController` or Android Custom Tab).
     * @type {boolean}
     * @memberof LinkTokenCreateHostedLink
     */
    is_mobile_app?: boolean;
}
/**
 * Identity object used to specify document upload
 * @export
 * @interface LinkTokenCreateIdentity
 */
export interface LinkTokenCreateIdentity {
    /**
     * Used to specify whether the Link session is Identity Document Upload
     * @type {boolean}
     * @memberof LinkTokenCreateIdentity
     */
    is_document_upload?: boolean;
    /**
     * An array of `account_ids`. Currently can only contain one `account_id`. Must be populated if using Document Upload.
     * @type {Array<string>}
     * @memberof LinkTokenCreateIdentity
     */
    account_ids?: Array<string>;
    /**
     * An array of parsing configurations. Valid parsing configurations are `ocr` and `risk_signals`. If parsing configurations are omitted, defaults to `ocr`
     * @type {Array<IncomeVerificationDocParsingConfig>}
     * @memberof LinkTokenCreateIdentity
     */
    parsing_configs?: Array<IncomeVerificationDocParsingConfig>;
}
/**
 * A map containing data used to highlight institutions in Link.
 * @export
 * @interface LinkTokenCreateInstitutionData
 */
export interface LinkTokenCreateInstitutionData {
    /**
     * The routing number of the bank to highlight in Link. Note: in rare cases, a single routing number can be associated with multiple institutions, e.g. due to a brokerage using another institution to manage ACH on its sweep accounts. If this happens, the bank will not be highlighted in Link even if the routing number is provided.
     * @type {string}
     * @memberof LinkTokenCreateInstitutionData
     */
    routing_number?: string;
}
/**
 * A filter to apply to `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier).
 * @export
 * @interface LinkTokenCreateInvestmentFilter
 */
export interface LinkTokenCreateInvestmentFilter {
    /**
     * An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {Array<InvestmentAccountSubtype>}
     * @memberof LinkTokenCreateInvestmentFilter
     */
    account_subtypes?: Array<InvestmentAccountSubtype>;
}
/**
 * A filter to apply to `loan`-type accounts
 * @export
 * @interface LinkTokenCreateLoanFilter
 */
export interface LinkTokenCreateLoanFilter {
    /**
     * An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {Array<LoanAccountSubtype>}
     * @memberof LinkTokenCreateLoanFilter
     */
    account_subtypes?: Array<LoanAccountSubtype>;
}
/**
 * LinkTokenCreateRequest defines the request schema for `/link/token/create`
 * @export
 * @interface LinkTokenCreateRequest
 */
export interface LinkTokenCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof LinkTokenCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof LinkTokenCreateRequest
     */
    secret?: string;
    /**
     * The name of your application, as it should be displayed in Link. Maximum length of 30 characters. If a value longer than 30 characters is provided, Link will display \"This Application\" instead.
     * @type {string}
     * @memberof LinkTokenCreateRequest
     */
    client_name: string;
    /**
     * The language that Link should be displayed in. When initializing with Identity Verification, this field is not used; for more details, see [Identity Verification supported languages](https://www.plaid.com/docs/identity-verification/#supported-languages).  Supported languages are: - Danish (`\'da\'`) - Dutch (`\'nl\'`) - English (`\'en\'`) - Estonian (`\'et\'`) - French (`\'fr\'`) - German (`\'de\'`) - Hindi (`\'hi\'`) - Italian (`\'it\'`) - Latvian (`\'lv\'`) - Lithuanian (`\'lt\'`) - Norwegian (`\'no\'`) - Polish (`\'pl\'`) - Portuguese (`\'pt\'`) - Romanian (`\'ro\'`) - Spanish (`\'es\'`) - Swedish (`\'sv\'`) - Vietnamese (`\'vi\'`)  When using a Link customization, the language configured here must match the setting in the customization, or the customization will not be applied.
     * @type {string}
     * @memberof LinkTokenCreateRequest
     */
    language: string;
    /**
     * Specify an array of Plaid-supported country codes using the ISO-3166-1 alpha-2 country code standard. Institutions from all listed countries will be shown. For a complete mapping of supported products by country, see https://plaid.com/global/.  If using Identity Verification, `country_codes` should be set to the country where your company is based, not the country where your user is located. For all other products, `country_codes` represents the location of your user\'s financial institution.  If Link is launched with multiple country codes, only products that you are enabled for in all countries will be used by Link. Note that while all countries are enabled by default in Sandbox, in Production only US and Canada are enabled by default. To request access to European institutions, [file a product access Support ticket](https://dashboard.plaid.com/support/new/product-and-development/product-troubleshooting/request-product-access) via the Plaid dashboard.  If using a Link customization, make sure the country codes in the customization match those specified in `country_codes`, or the customization may not be applied.  If using the Auth features Instant Match, Instant Micro-deposits, Same-day Micro-deposits, Automated Micro-deposits, or Database Insights, `country_codes` must be set to `[\'US\']`.
     * @type {Array<CountryCode>}
     * @memberof LinkTokenCreateRequest
     */
    country_codes: Array<CountryCode>;
    /**
     *
     * @type {LinkTokenCreateRequestUser}
     * @memberof LinkTokenCreateRequest
     */
    user: LinkTokenCreateRequestUser;
    /**
     * List of Plaid product(s) you wish to use. If launching Link in update mode, should be omitted (unless you are using update mode to add Income or Assets to an Item); required otherwise.  `balance` is *not* a valid value, the Balance product does not require explicit initialization and will automatically be initialized when any other product is initialized.  The products specified here will determine which institutions will be available to your users in Link. Only institutions that support *all* requested products can be selected; a if a user attempts to select an institution that does not support a listed product, a \"Connectivity not supported\" error message will appear in Link. To maximize the number of institutions available, initialize Link with the minimal product set required for your use case.   Additional products can be included via the [`optional_products`](https://plaid.com/docs/api/link/#link-token-create-request-optional-products) or  [`required_if_supported_products`](https://plaid.com/docs/api/link/#link-token-create-request-required-if-supported-products) fields. Products can also be initialized by calling the endpoint after obtaining an access token; this may require the product to be listed in the [`additional_consented_products`](https://plaid.com/docs/api/link/#link-token-create-request-additional-consented-products) array. For details, see [Choosing when to initialize products](https://plaid.com/docs/link/initializing-products/).  Note that, unless you have opted to disable Instant Match support, institutions that support Instant Match will also be shown in Link if `auth` is specified as a product, even though these institutions do not contain `auth` in their product array.  In Production, you will be billed for each product that you specify when initializing Link. Note that a product cannot be removed from an Item once the Item has been initialized with that product. To stop billing on an Item for subscription-based products, such as Liabilities, Investments, and Transactions, remove the Item via `/item/remove`.
     * @type {Array<Products>}
     * @memberof LinkTokenCreateRequest
     */
    products?: Array<Products> | null;
    /**
     * List of Plaid product(s) you wish to use only if the institution and account(s) selected by the user support the product. Institutions that do not support these products will still be shown in Link. The products will only be extracted and billed if the user selects an institution and account type that supports them.  There should be no overlap between this array and the `products`, `optional_products`, or `additional_consented_products` arrays. The `products` array must have at least one product.  For more details on using this feature, see [Required if Supported Products](https://www.plaid.com/docs/link/initializing-products/#required-if-supported-products).
     * @type {Array<Products>}
     * @memberof LinkTokenCreateRequest
     */
    required_if_supported_products?: Array<Products> | null;
    /**
     * List of Plaid product(s) that will enhance the consumer\'s use case, but that your app can function without. Plaid will attempt to fetch data for these products on a best-effort basis, and failure to support these products will not affect Item creation.  There should be no overlap between this array and the `products`, `required_if_supported_products`, or `additional_consented_products` arrays. The `products` array must have at least one product.  For more details on using this feature, see [Optional Products](https://www.plaid.com/docs/link/initializing-products/#optional-products).
     * @type {Array<Products>}
     * @memberof LinkTokenCreateRequest
     */
    optional_products?: Array<Products> | null;
    /**
     * List of additional Plaid product(s) you wish to collect consent for to support your use case. These products will not be billed until you start using them by calling the relevant endpoints.  `balance` is *not* a valid value, the Balance product does not require explicit initialization and will automatically have consent collected.  Institutions that do not support these products will still be shown in Link.  There should be no overlap between this array and the `products` or `required_if_supported_products` arrays.  If you include `signal` in `additional_consented_products`, you will need to call `/signal/prepare` before calling `/signal/evaluate` for the first time on an Item in order to get the most accurate results. For more details, see [Using `/signal/prepare`](/docs/signal/#using-signalprepare).
     * @type {Array<Products>}
     * @memberof LinkTokenCreateRequest
     */
    additional_consented_products?: Array<Products> | null;
    /**
     * The destination URL to which any webhooks should be sent. Note that webhooks for Payment Initiation (e-wallet transactions only), Transfer, Bank Transfer (including Auth micro-deposit notification webhooks), Monitor, Identity Verification, and Link Events are configured via the Dashboard instead. In update mode, this field will not have an effect; to update the webhook receiver endpoint for an existing Item, use `/item/webhook/update` instead.
     * @type {string}
     * @memberof LinkTokenCreateRequest
     */
    webhook?: string;
    /**
     * The `access_token` associated with the Item to update or reference, used when updating, modifying, or accessing an existing `access_token`. Used when launching Link in update mode, when completing the Same-day (manual) Micro-deposit flow, or (optionally) when initializing Link for a returning user as part of the Transfer UI flow.
     * @type {string}
     * @memberof LinkTokenCreateRequest
     */
    access_token?: string | null;
    /**
     * A list of access tokens associated with the items to update in Link update mode for the Assets product. Using this instead of the `access_token` field allows the updating of multiple items at once. This feature is in closed beta, please contact your account manager for more info.
     * @type {Array<string>}
     * @memberof LinkTokenCreateRequest
     */
    access_tokens?: Array<string>;
    /**
     * The name of the Link customization from the Plaid Dashboard to be applied to Link. If not specified, the `default` customization will be used. When using a Link customization, the language in the customization must match the language selected via the `language` parameter, and the countries in the customization should match the country codes selected via `country_codes`.
     * @type {string}
     * @memberof LinkTokenCreateRequest
     */
    link_customization_name?: string;
    /**
     * A URI indicating the destination where a user should be forwarded after completing the Link flow; used to support OAuth authentication flows when launching Link in the browser or another app. The `redirect_uri` should not contain any query parameters. When used in Production, must be an https URI. To specify any subdomain, use `*` as a wildcard character, e.g. `https://_*.example.com/oauth.html`. Note that any redirect URI must also be added to the Allowed redirect URIs list in the [developer dashboard](https://dashboard.plaid.com/team/api). If initializing on Android, `android_package_name` must be specified instead and `redirect_uri` should be left blank.
     * @type {string}
     * @memberof LinkTokenCreateRequest
     */
    redirect_uri?: string;
    /**
     * The name of your app\'s Android package. Required if using the `link_token` to initialize Link on Android. Any package name specified here must also be added to the Allowed Android package names setting on the [developer dashboard](https://dashboard.plaid.com/team/api). When creating a `link_token` for initializing Link on other platforms, `android_package_name` must be left blank and `redirect_uri` should be used instead.
     * @type {string}
     * @memberof LinkTokenCreateRequest
     */
    android_package_name?: string;
    /**
     *
     * @type {LinkTokenCreateInstitutionData}
     * @memberof LinkTokenCreateRequest
     */
    institution_data?: LinkTokenCreateInstitutionData;
    /**
     *
     * @type {LinkTokenCreateCardSwitch}
     * @memberof LinkTokenCreateRequest
     */
    card_switch?: LinkTokenCreateCardSwitch;
    /**
     *
     * @type {LinkTokenAccountFilters}
     * @memberof LinkTokenCreateRequest
     */
    account_filters?: LinkTokenAccountFilters;
    /**
     *
     * @type {LinkTokenEUConfig}
     * @memberof LinkTokenCreateRequest
     */
    eu_config?: LinkTokenEUConfig;
    /**
     * Used for certain Europe-only configurations, as well as certain legacy use cases in other regions.
     * @type {string}
     * @memberof LinkTokenCreateRequest
     */
    institution_id?: string;
    /**
     *
     * @type {LinkTokenCreateRequestPaymentConfiguration}
     * @memberof LinkTokenCreateRequest
     */
    payment_configuration?: LinkTokenCreateRequestPaymentConfiguration;
    /**
     *
     * @type {LinkTokenCreateRequestPaymentInitiation}
     * @memberof LinkTokenCreateRequest
     */
    payment_initiation?: LinkTokenCreateRequestPaymentInitiation;
    /**
     *
     * @type {LinkTokenCreateRequestDepositSwitch}
     * @memberof LinkTokenCreateRequest
     * @deprecated
     */
    deposit_switch?: LinkTokenCreateRequestDepositSwitch;
    /**
     *
     * @type {LinkTokenCreateRequestEmployment}
     * @memberof LinkTokenCreateRequest
     */
    employment?: LinkTokenCreateRequestEmployment;
    /**
     *
     * @type {LinkTokenCreateRequestIncomeVerification}
     * @memberof LinkTokenCreateRequest
     */
    income_verification?: LinkTokenCreateRequestIncomeVerification;
    /**
     *
     * @type {LinkTokenCreateRequestBaseReport}
     * @memberof LinkTokenCreateRequest
     */
    base_report?: LinkTokenCreateRequestBaseReport;
    /**
     *
     * @type {LinkTokenCreateRequestCreditPartnerInsights}
     * @memberof LinkTokenCreateRequest
     */
    credit_partner_insights?: LinkTokenCreateRequestCreditPartnerInsights;
    /**
     *
     * @type {LinkTokenCreateRequestCraOptions}
     * @memberof LinkTokenCreateRequest
     */
    cra_options?: LinkTokenCreateRequestCraOptions;
    /**
     *
     * @type {ConsumerReportPermissiblePurpose & string}
     * @memberof LinkTokenCreateRequest
     */
    consumer_report_permissible_purpose?: ConsumerReportPermissiblePurpose & string;
    /**
     *
     * @type {LinkTokenCreateRequestAuth}
     * @memberof LinkTokenCreateRequest
     */
    auth?: LinkTokenCreateRequestAuth;
    /**
     *
     * @type {LinkTokenCreateRequestTransfer}
     * @memberof LinkTokenCreateRequest
     */
    transfer?: LinkTokenCreateRequestTransfer;
    /**
     *
     * @type {LinkTokenCreateRequestUpdate}
     * @memberof LinkTokenCreateRequest
     */
    update?: LinkTokenCreateRequestUpdate;
    /**
     *
     * @type {LinkTokenCreateRequestIdentityVerification}
     * @memberof LinkTokenCreateRequest
     */
    identity_verification?: LinkTokenCreateRequestIdentityVerification;
    /**
     *
     * @type {LinkTokenCreateRequestStatements}
     * @memberof LinkTokenCreateRequest
     */
    statements?: LinkTokenCreateRequestStatements;
    /**
     * A user token generated using `/user/create`. Any Item created during the Link session will be associated with the user.
     * @type {string}
     * @memberof LinkTokenCreateRequest
     */
    user_token?: string;
    /**
     *
     * @type {LinkTokenInvestments}
     * @memberof LinkTokenCreateRequest
     */
    investments?: LinkTokenInvestments;
    /**
     *
     * @type {LinkTokenInvestmentsAuth}
     * @memberof LinkTokenCreateRequest
     */
    investments_auth?: LinkTokenInvestmentsAuth;
    /**
     *
     * @type {LinkTokenCreateHostedLink}
     * @memberof LinkTokenCreateRequest
     */
    hosted_link?: LinkTokenCreateHostedLink;
    /**
     *
     * @type {LinkTokenTransactions}
     * @memberof LinkTokenCreateRequest
     */
    transactions?: LinkTokenTransactions;
    /**
     * If `true`, request a CRA connection. Defaults to `false`.
     * @type {boolean}
     * @memberof LinkTokenCreateRequest
     */
    cra_enabled?: boolean;
    /**
     *
     * @type {LinkTokenCreateIdentity}
     * @memberof LinkTokenCreateRequest
     */
    identity?: LinkTokenCreateIdentity;
    /**
     * If `true`, indicates that client supports linking FinanceKit / AppleCard items. Defaults to `false`.
     * @type {boolean}
     * @memberof LinkTokenCreateRequest
     */
    financekit_supported?: boolean;
    /**
     * If `true`, enable linking multiple items in the same Link session. Defaults to `false`.
     * @type {boolean}
     * @memberof LinkTokenCreateRequest
     */
    enable_multi_item_link?: boolean;
}
/**
 * By default, Link will only display account types that are compatible with all products supplied in the `products` parameter of `/link/token/create`. You can further limit the accounts shown in Link by using `account_filters` to specify the account subtypes to be shown in Link. Only the specified subtypes will be shown. This filtering applies to both the Account Select view (if enabled) and the Institution Select view. Institutions that do not support the selected subtypes will be omitted from Link. To indicate that all subtypes should be shown, use the value `\"all\"`. If the `account_filters` filter is used, any account type for which a filter is not specified will be entirely omitted from Link.  For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).  For institutions using OAuth, the filter will not affect the list of institutions or accounts shown by the bank in the OAuth window.
 * @export
 * @interface LinkTokenCreateRequestAccountSubtypes
 */
export interface LinkTokenCreateRequestAccountSubtypes {
    /**
     *
     * @type {LinkTokenCreateDepositoryFilter}
     * @memberof LinkTokenCreateRequestAccountSubtypes
     */
    depository?: LinkTokenCreateDepositoryFilter;
    /**
     *
     * @type {LinkTokenCreateCreditFilter}
     * @memberof LinkTokenCreateRequestAccountSubtypes
     */
    credit?: LinkTokenCreateCreditFilter;
    /**
     *
     * @type {LinkTokenCreateLoanFilter}
     * @memberof LinkTokenCreateRequestAccountSubtypes
     */
    loan?: LinkTokenCreateLoanFilter;
    /**
     *
     * @type {LinkTokenCreateInvestmentFilter}
     * @memberof LinkTokenCreateRequestAccountSubtypes
     */
    investment?: LinkTokenCreateInvestmentFilter;
}
/**
 * Specifies options for initializing Link for use with the Auth product. This field can be used to enable or disable extended Auth flows for the resulting Link session. Omitting any field will result in a default that can be configured by your account manager. The default behavior described in the documentation is the default behavior that will apply if you have not requested your account manager to apply a different default.
 * @export
 * @interface LinkTokenCreateRequestAuth
 */
export interface LinkTokenCreateRequestAuth {
    /**
     * Specifies whether Auth Type Select is enabled for the Link session, allowing the end user to choose between linking via a credentials-based flow (i.e. Instant Auth, Instant Match, Automated Micro-deposits) or a manual flow that does not require login (all other Auth flows) prior to selecting their financial institution. Default behavior is `false`.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestAuth
     */
    auth_type_select_enabled?: boolean;
    /**
     * Specifies whether the Link session is enabled for the Automated Micro-deposits flow. Default behavior is `false`.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestAuth
     */
    automated_microdeposits_enabled?: boolean;
    /**
     * Specifies whether the Link session is enabled for the Instant Match flow. Instant Match is enabled by default. Instant Match can be disabled by setting this field to `false`.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestAuth
     */
    instant_match_enabled?: boolean;
    /**
     * Specifies whether the Link session is enabled for the Same Day Micro-deposits flow.  Default behavior is `false`.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestAuth
     */
    same_day_microdeposits_enabled?: boolean;
    /**
     * Specifies whether the Link session is enabled for the Instant Micro-deposits flow.  Default behavior for Plaid teams created after November 2023 is `false`; default behavior for Plaid teams created before that date is `true`.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestAuth
     */
    instant_microdeposits_enabled?: boolean;
    /**
     * Specifies what type of [Reroute to Credentials](https://plaid.com/docs/auth/coverage/same-day/#reroute-to-credentials) pane should be used in the Link session for the Same Day Micro-deposits flow. Default behavior is `OPTIONAL`.
     * @type {string}
     * @memberof LinkTokenCreateRequestAuth
     */
    reroute_to_credentials?: LinkTokenCreateRequestAuthRerouteToCredentialsEnum;
    /**
     * Specifies whether the Link session is enabled for the Database Match flow. Default behavior is `false`.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestAuth
     */
    database_match_enabled?: boolean;
    /**
     * Specifies whether the Link session is enabled for the Database Insights flow. Database Insights is currently in closed beta; for access, contact your Account Manager. Default behavior is `false`.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestAuth
     */
    database_insights_enabled?: boolean;
    /**
     * This field has been deprecated in favor of `auth_type_select_enabled`.
     * @type {string}
     * @memberof LinkTokenCreateRequestAuth
     * @deprecated
     */
    flow_type?: LinkTokenCreateRequestAuthFlowTypeEnum;
    /**
     * Specifies whether the Link session is enabled for SMS micro-deposits verification. Default behavior is `true`.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestAuth
     */
    sms_microdeposits_verification_enabled?: boolean;
}
/**
    * @export
    * @enum {string}
    */
export declare enum LinkTokenCreateRequestAuthRerouteToCredentialsEnum {
    Off = "OFF",
    Optional = "OPTIONAL",
    Forced = "FORCED"
}
/**
    * @export
    * @enum {string}
    */
export declare enum LinkTokenCreateRequestAuthFlowTypeEnum {
    FlexibleAuth = "FLEXIBLE_AUTH"
}
/**
 * Specifies options for initializing Link for use with the Base Report product. This field is required if `assets` is included in the `products` array and the client is CRA-enabled.
 * @export
 * @interface LinkTokenCreateRequestBaseReport
 */
export interface LinkTokenCreateRequestBaseReport {
    /**
     * The maximum integer number of days of history to include in the Base Report.
     * @type {number}
     * @memberof LinkTokenCreateRequestBaseReport
     */
    days_requested: number;
    /**
     * Client-generated identifier, which can be used by lenders to track loan applications.
     * @type {string}
     * @memberof LinkTokenCreateRequestBaseReport
     */
    client_report_id?: string | null;
}
/**
 * Specifies options for initializing Link for use with Plaid Check products
 * @export
 * @interface LinkTokenCreateRequestCraOptions
 */
export interface LinkTokenCreateRequestCraOptions {
    /**
     * The number of days of history to include in Plaid Check products. Default value is 365; maximum is 730; minimum is 180. If a value lower than 180 is provided, a minimum of 180 days of history will be requested.
     * @type {number}
     * @memberof LinkTokenCreateRequestCraOptions
     */
    days_requested: number;
    /**
     * The minimum number of days of data required for the report to be successfully generated.
     * @type {number}
     * @memberof LinkTokenCreateRequestCraOptions
     */
    days_required?: number;
    /**
     *
     * @type {LinkTokenCreateRequestCraOptionsPartnerInsights}
     * @memberof LinkTokenCreateRequestCraOptions
     */
    partner_insights?: LinkTokenCreateRequestCraOptionsPartnerInsights;
    /**
     *
     * @type {LinkTokenCreateRequestCraOptionsBaseReport}
     * @memberof LinkTokenCreateRequestCraOptions
     */
    base_report?: LinkTokenCreateRequestCraOptionsBaseReport;
    /**
     *
     * @type {LinkTokenCreateRequestCraOptionsCashflowInsights}
     * @memberof LinkTokenCreateRequestCraOptions
     */
    cashflow_insights?: LinkTokenCreateRequestCraOptionsCashflowInsights;
}
/**
 * Specifies options for initializing Link for use with the Base Report product.
 * @export
 * @interface LinkTokenCreateRequestCraOptionsBaseReport
 */
export interface LinkTokenCreateRequestCraOptionsBaseReport {
    /**
     * Client-generated identifier, which can be used by lenders to track loan applications.
     * @type {string}
     * @memberof LinkTokenCreateRequestCraOptionsBaseReport
     */
    client_report_id?: string | null;
}
/**
 * Specifies options for initializing Link for use with the Cashflow Insights product.
 * @export
 * @interface LinkTokenCreateRequestCraOptionsCashflowInsights
 */
export interface LinkTokenCreateRequestCraOptionsCashflowInsights {
    /**
     * The version of the Plaid Check score to return
     * @type {string}
     * @memberof LinkTokenCreateRequestCraOptionsCashflowInsights
     */
    plaid_check_score_version?: string | null;
    /**
     *
     * @type {CashflowAttributesVersion}
     * @memberof LinkTokenCreateRequestCraOptionsCashflowInsights
     */
    attributes_version?: CashflowAttributesVersion | null;
}
/**
 * Specifies options for initializing Link for use with the Credit Partner Insights product.
 * @export
 * @interface LinkTokenCreateRequestCraOptionsPartnerInsights
 */
export interface LinkTokenCreateRequestCraOptionsPartnerInsights {
    /**
     * The specific Prism products to return. If none are passed in, then all products will be returned.
     * @type {Array<PrismProduct>}
     * @memberof LinkTokenCreateRequestCraOptionsPartnerInsights
     */
    prism_products?: Array<PrismProduct>;
    /**
     *
     * @type {PrismVersions}
     * @memberof LinkTokenCreateRequestCraOptionsPartnerInsights
     */
    prism_versions?: PrismVersions | null;
}
/**
 * Specifies options for initializing Link for use with the Credit Partner Insights product.
 * @export
 * @interface LinkTokenCreateRequestCreditPartnerInsights
 */
export interface LinkTokenCreateRequestCreditPartnerInsights {
    /**
     * The maximum integer number of days of history to compute Credit Partner Insights. Defaults to 180 if not specified
     * @type {number}
     * @memberof LinkTokenCreateRequestCreditPartnerInsights
     */
    days_requested?: number;
    /**
     * The specific Prism products to return. If none are passed in, then all products will be returned.
     * @type {Array<PrismProduct>}
     * @memberof LinkTokenCreateRequestCreditPartnerInsights
     */
    prism_products?: Array<PrismProduct>;
}
/**
 * (Deprecated) Specifies options for initializing Link for use with the Deposit Switch (beta) product. This field is required if `deposit_switch` is included in the `products` array.
 * @export
 * @interface LinkTokenCreateRequestDepositSwitch
 */
export interface LinkTokenCreateRequestDepositSwitch {
    /**
     * The `deposit_switch_id` provided by the `/deposit_switch/create` endpoint.
     * @type {string}
     * @memberof LinkTokenCreateRequestDepositSwitch
     */
    deposit_switch_id: string;
}
/**
 * Specifies options for initializing Link for use with the Employment product. This field is required if `employment` is included in the `products` array.
 * @export
 * @interface LinkTokenCreateRequestEmployment
 */
export interface LinkTokenCreateRequestEmployment {
    /**
     * The types of source employment data that users will be permitted to share. Options include `bank` and `payroll`. Currently you can only specify one of these options.
     * @type {Array<EmploymentSourceType>}
     * @memberof LinkTokenCreateRequestEmployment
     */
    employment_source_types?: Array<EmploymentSourceType>;
    /**
     *
     * @type {LinkTokenCreateRequestEmploymentBankIncome}
     * @memberof LinkTokenCreateRequestEmployment
     */
    bank_employment?: LinkTokenCreateRequestEmploymentBankIncome;
}
/**
 * Specifies options for initializing Link for use with Bank Employment. This field is required if `employment` is included in the `products` array and `bank` is specified in `employment_source_types`.
 * @export
 * @interface LinkTokenCreateRequestEmploymentBankIncome
 */
export interface LinkTokenCreateRequestEmploymentBankIncome {
    /**
     * The number of days of data to request for the Bank Employment product.
     * @type {number}
     * @memberof LinkTokenCreateRequestEmploymentBankIncome
     */
    days_requested: number;
}
/**
 * Specifies option for initializing Link for use with the Identity Verification product.
 * @export
 * @interface LinkTokenCreateRequestIdentityVerification
 */
export interface LinkTokenCreateRequestIdentityVerification {
    /**
     *
     * @type {string}
     * @memberof LinkTokenCreateRequestIdentityVerification
     */
    template_id: string;
    /**
     *
     * @type {boolean}
     * @memberof LinkTokenCreateRequestIdentityVerification
     */
    consent?: boolean;
    /**
     * A flag specifying whether the end user has already agreed to a privacy policy specifying that their data will be shared with Plaid for verification purposes.  If `gave_consent` is set to `true`, the `accept_tos` step will be marked as `skipped` and the end user\'s session will start at the next step requirement.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestIdentityVerification
     */
    gave_consent?: boolean;
}
/**
 * Specifies options for initializing Link for use with the Income product. This field is required if `income_verification` is included in the `products` array.
 * @export
 * @interface LinkTokenCreateRequestIncomeVerification
 */
export interface LinkTokenCreateRequestIncomeVerification {
    /**
     * The `income_verification_id` of the verification instance, as provided by `/income/verification/create`. Replaced by the user token.
     * @type {string}
     * @memberof LinkTokenCreateRequestIncomeVerification
     * @deprecated
     */
    income_verification_id?: string;
    /**
     * The `asset_report_id` of an asset report associated with the user, as provided by `/asset_report/create`. Providing an `asset_report_id` is optional and can be used to verify the user through a streamlined flow. If provided, the bank linking flow will be skipped.
     * @type {string}
     * @memberof LinkTokenCreateRequestIncomeVerification
     */
    asset_report_id?: string;
    /**
     * An array of access tokens corresponding to Items that a user has previously connected with. Data from these institutions will be cross-referenced with document data received during the Document Income flow to help verify that the uploaded documents are accurate. If the `transactions` product was not initialized for these Items during link, it will be initialized after this Link session.  This field should only be used with the `payroll` income source type.
     * @type {Array<string>}
     * @memberof LinkTokenCreateRequestIncomeVerification
     */
    access_tokens?: Array<string> | null;
    /**
     * The types of source income data that users will be permitted to share. Options include `bank` and `payroll`. Currently you can only specify one of these options.
     * @type {Array<IncomeVerificationSourceType>}
     * @memberof LinkTokenCreateRequestIncomeVerification
     */
    income_source_types?: Array<IncomeVerificationSourceType>;
    /**
     *
     * @type {LinkTokenCreateRequestIncomeVerificationBankIncome}
     * @memberof LinkTokenCreateRequestIncomeVerification
     */
    bank_income?: LinkTokenCreateRequestIncomeVerificationBankIncome;
    /**
     *
     * @type {LinkTokenCreateRequestIncomeVerificationPayrollIncome}
     * @memberof LinkTokenCreateRequestIncomeVerification
     */
    payroll_income?: LinkTokenCreateRequestIncomeVerificationPayrollIncome;
    /**
     * A list of user stated income sources
     * @type {Array<LinkTokenCreateRequestUserStatedIncomeSource>}
     * @memberof LinkTokenCreateRequestIncomeVerification
     */
    stated_income_sources?: Array<LinkTokenCreateRequestUserStatedIncomeSource>;
}
/**
 * Specifies options for initializing Link for use with Bank Income. This field is required if `income_verification` is included in the `products` array and `bank` is specified in `income_source_types`.
 * @export
 * @interface LinkTokenCreateRequestIncomeVerificationBankIncome
 */
export interface LinkTokenCreateRequestIncomeVerificationBankIncome {
    /**
     * The number of days of data to request for the Bank Income product
     * @type {number}
     * @memberof LinkTokenCreateRequestIncomeVerificationBankIncome
     */
    days_requested: number;
    /**
     * Whether to enable multiple Items to be added in the Link session. This setting is deprecated and has been replaced by the more general `enable_multi_item_link` setting, which supports all products.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestIncomeVerificationBankIncome
     * @deprecated
     */
    enable_multiple_items?: boolean | null;
}
/**
 * Specifies options for initializing Link for use with Payroll Income (including Document Income). Further customization options for Document Income, such as customizing which document types may be uploaded, are also available via the [Link Customization pane](https://dashboard.plaid.com/link) in the Dashboard. (Requires Production enablement.)
 * @export
 * @interface LinkTokenCreateRequestIncomeVerificationPayrollIncome
 */
export interface LinkTokenCreateRequestIncomeVerificationPayrollIncome {
    /**
     * The types of payroll income verification to enable for the Link session. If none are specified, then users will see both document and digital payroll income.
     * @type {Array<IncomeVerificationPayrollFlowType>}
     * @memberof LinkTokenCreateRequestIncomeVerificationPayrollIncome
     */
    flow_types?: Array<IncomeVerificationPayrollFlowType> | null;
    /**
     * An identifier to indicate whether the income verification Link token will be used for update mode. This field is only relevant for participants in the Payroll Income Refresh beta.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestIncomeVerificationPayrollIncome
     */
    is_update_mode?: boolean;
    /**
     * Uniquely identify a payroll income Item to update with.  This field is only relevant for participants in the Payroll Income Refresh beta.
     * @type {string}
     * @memberof LinkTokenCreateRequestIncomeVerificationPayrollIncome
     */
    item_id_to_update?: string | null;
    /**
     * The types of analysis to enable for document uploads. If this field is not provided, then docs will undergo OCR parsing only.
     * @type {Array<IncomeVerificationDocParsingConfig>}
     * @memberof LinkTokenCreateRequestIncomeVerificationPayrollIncome
     */
    parsing_config?: Array<IncomeVerificationDocParsingConfig> | null;
}
/**
 * Specifies options for initializing Link for use with the Pay By Bank flow. This is an optional field to configure the user experience, and currently requires the amount field to be set.
 * @export
 * @interface LinkTokenCreateRequestPaymentConfiguration
 */
export interface LinkTokenCreateRequestPaymentConfiguration {
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof LinkTokenCreateRequestPaymentConfiguration
     */
    amount: string;
    /**
     * The description of the transfer that provides the payment context. The max length is 256.
     * @type {string}
     * @memberof LinkTokenCreateRequestPaymentConfiguration
     */
    description?: string;
}
/**
 * Specifies options for initializing Link for use with the Payment Initiation (Europe) product. This field is required if `payment_initiation` is included in the `products` array. Either `payment_id` or `consent_id` must be provided.
 * @export
 * @interface LinkTokenCreateRequestPaymentInitiation
 */
export interface LinkTokenCreateRequestPaymentInitiation {
    /**
     * The `payment_id` provided by the `/payment_initiation/payment/create` endpoint.
     * @type {string}
     * @memberof LinkTokenCreateRequestPaymentInitiation
     */
    payment_id?: string;
    /**
     * The `consent_id` provided by the `/payment_initiation/consent/create` endpoint.
     * @type {string}
     * @memberof LinkTokenCreateRequestPaymentInitiation
     */
    consent_id?: string;
}
/**
 * Specifies options for initializing Link for use with the Statements product. This field is required for the statements product.
 * @export
 * @interface LinkTokenCreateRequestStatements
 */
export interface LinkTokenCreateRequestStatements {
    /**
     * The start date for statements, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) \"YYYY-MM-DD\" format, e.g. \"2020-10-30\".
     * @type {string}
     * @memberof LinkTokenCreateRequestStatements
     */
    start_date: string;
    /**
     * The end date for statements, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) \"YYYY-MM-DD\" format, e.g. \"2020-10-30\". You can request up to two years of data.
     * @type {string}
     * @memberof LinkTokenCreateRequestStatements
     */
    end_date: string;
}
/**
 * Specifies options for initializing Link for use with the Transfer product.
 * @export
 * @interface LinkTokenCreateRequestTransfer
 */
export interface LinkTokenCreateRequestTransfer {
    /**
     * The `id` returned by the `/transfer/intent/create` endpoint.
     * @type {string}
     * @memberof LinkTokenCreateRequestTransfer
     */
    intent_id?: string;
    /**
     * The `id` returned by the `/transfer/authorization/create` endpoint. Used to indicate Link session to complete required user action in order to make a decision for the authorization. If set, `access_token` can be omitted.
     * @type {string}
     * @memberof LinkTokenCreateRequestTransfer
     */
    authorization_id?: string;
    /**
     * The `payment_profile_token` returned by the `/payment_profile/create` endpoint.
     * @type {string}
     * @memberof LinkTokenCreateRequestTransfer
     */
    payment_profile_token?: string;
}
/**
 * Specifies options for initializing Link for [update mode](https://plaid.com/docs/link/update-mode).
 * @export
 * @interface LinkTokenCreateRequestUpdate
 */
export interface LinkTokenCreateRequestUpdate {
    /**
     * If `true`, enables [update mode with Account Select](https://plaid.com/docs/link/update-mode/#using-update-mode-to-request-new-accounts) for institutions in the US and Canada that do not use OAuth, or that use OAuth but do not have their own account selection flow. For institutions in the US that have an OAuth account selection flow (i.e. most OAuth-enabled institutions), update mode with Account Select will always be enabled, regardless of the value of this field.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestUpdate
     */
    account_selection_enabled?: boolean;
    /**
     * By default, Plaid will enable the reauthorization flow during update mode for an Item enabled for [Data Transparency Messaging](https://plaid.com/docs/link/data-transparency-messaging-migration-guide/) if the Item expires within six months. During a reauthorization flow, an end user will review Plaid\'s end user privacy policy, use case and data scope consents, and account access consents; they may also be required to log in to their financial institution\'s OAuth flow. After the end user successfully completes the reauthorization flow, the Item\'s expiration date will be extended to 12 months from the time that the reauthorization took place. This field allows you to optionally override the default reauthorization scheduling logic to either forcibly enable or disable the reauthorization flow for a given update mode session. This field does not impact the flow for Items at institutions in the EU or UK.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestUpdate
     */
    reauthorization_enabled?: boolean;
    /**
     * If `true`, a `user_token` must also be provided, and Link will open in update mode for the given user.
     * @type {boolean}
     * @memberof LinkTokenCreateRequestUpdate
     */
    user?: boolean;
    /**
     * An array of `item_id`s associated with the user to be updated in update mode. If empty or `null`, this field will default to initializing update mode for the most recent unhealthy Item associated with the user. A `user_token` must also be provided to use this field.
     * @type {Array<string>}
     * @memberof LinkTokenCreateRequestUpdate
     */
    item_ids?: Array<string> | null;
}
/**
 * An object specifying information about the end user who will be linking their account.
 * @export
 * @interface LinkTokenCreateRequestUser
 */
export interface LinkTokenCreateRequestUser {
    /**
     * A unique ID representing the end user. Typically this will be a user ID number from your application. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`. It is currently used as a means of searching logs for the given user in the Plaid Dashboard.
     * @type {string}
     * @memberof LinkTokenCreateRequestUser
     */
    client_user_id: string;
    /**
     * The user\'s full legal name, used for [micro-deposit based verification flows](https://plaid.com/docs/auth/coverage/). For a small number of customers on legacy flows, providing this field is required to enable micro-deposit-based flows. For all other customers, this field is optional. Providing the user\'s name in this field when using micro-deposit-based verification will streamline the end user experience, as the user will not be prompted to enter their name during the Link flow; Plaid will use the provided legal name instead.
     * @type {string}
     * @memberof LinkTokenCreateRequestUser
     */
    legal_name?: string;
    /**
     *
     * @type {IdentityVerificationRequestUserName}
     * @memberof LinkTokenCreateRequestUser
     */
    name?: IdentityVerificationRequestUserName;
    /**
     * The user\'s phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format. If supplied, will be used when applicable to prefill phone number fields in Link for the [returning user flow](https://www.plaid.com/docs/link/returning-user) and the [Identity Verification flow](https://www.plaid.com/docs/identity-verification).
     * @type {string}
     * @memberof LinkTokenCreateRequestUser
     */
    phone_number?: string;
    /**
     * The date and time the phone number was verified in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDThh:mm:ssZ`). This was previously an optional field used in the [returning user experience](https://plaid.com/docs/link/returning-user). This field is no longer required to enable the returning user experience.   Only pass a verification time for a phone number that you have verified. If you have performed verification but don’t have the time, you may supply a signal value of the start of the UNIX epoch.   Example: `2020-01-01T00:00:00Z`
     * @type {string}
     * @memberof LinkTokenCreateRequestUser
     * @deprecated
     */
    phone_number_verified_time?: string | null;
    /**
     * The user\'s email address. Can be used to prefill Link fields when used with [Identity Verification](https://www.plaid.com/docs/identity-verification).
     * @type {string}
     * @memberof LinkTokenCreateRequestUser
     */
    email_address?: string;
    /**
     * The date and time the email address was verified in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDThh:mm:ssZ`). This was previously an optional field used in the [returning user experience](https://plaid.com/docs/link/returning-user). This field is no longer required to enable the returning user experience.   Only pass a verification time for an email address that you have verified. If you have performed verification but don’t have the time, you may supply a signal value of the start of the UNIX epoch.   Example: `2020-01-01T00:00:00Z`
     * @type {string}
     * @memberof LinkTokenCreateRequestUser
     * @deprecated
     */
    email_address_verified_time?: string | null;
    /**
     * Deprecated and not currently used, use the `id_number` field instead.
     * @type {string}
     * @memberof LinkTokenCreateRequestUser
     * @deprecated
     */
    ssn?: string;
    /**
     * To be provided in the format \"yyyy-mm-dd\". Can be used to prefill Link fields when used with Identity Verification.
     * @type {string}
     * @memberof LinkTokenCreateRequestUser
     */
    date_of_birth?: string | null;
    /**
     *
     * @type {UserAddress}
     * @memberof LinkTokenCreateRequestUser
     */
    address?: UserAddress;
    /**
     *
     * @type {UserIDNumber}
     * @memberof LinkTokenCreateRequestUser
     */
    id_number?: UserIDNumber;
}
/**
 * Specifies user stated income sources for the Income product
 * @export
 * @interface LinkTokenCreateRequestUserStatedIncomeSource
 */
export interface LinkTokenCreateRequestUserStatedIncomeSource {
    /**
     * The employer corresponding to an income source specified by the user
     * @type {string}
     * @memberof LinkTokenCreateRequestUserStatedIncomeSource
     */
    employer?: string;
    /**
     *
     * @type {UserStatedIncomeSourceCategory}
     * @memberof LinkTokenCreateRequestUserStatedIncomeSource
     */
    category?: UserStatedIncomeSourceCategory;
    /**
     * The income amount paid per cycle for a specified income source
     * @type {number}
     * @memberof LinkTokenCreateRequestUserStatedIncomeSource
     */
    pay_per_cycle?: number;
    /**
     * The income amount paid annually for a specified income source
     * @type {number}
     * @memberof LinkTokenCreateRequestUserStatedIncomeSource
     */
    pay_annual?: number;
    /**
     *
     * @type {UserStatedIncomeSourcePayType}
     * @memberof LinkTokenCreateRequestUserStatedIncomeSource
     */
    pay_type?: UserStatedIncomeSourcePayType;
    /**
     *
     * @type {UserStatedIncomeSourceFrequency}
     * @memberof LinkTokenCreateRequestUserStatedIncomeSource
     */
    pay_frequency?: UserStatedIncomeSourceFrequency;
}
/**
 * LinkTokenCreateResponse defines the response schema for `/link/token/create`
 * @export
 * @interface LinkTokenCreateResponse
 */
export interface LinkTokenCreateResponse {
    /**
     * A `link_token`, which can be supplied to Link in order to initialize it and receive a `public_token`, which can be exchanged for an `access_token`.
     * @type {string}
     * @memberof LinkTokenCreateResponse
     */
    link_token: string;
    /**
     * The expiration date and time for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format. By default, a `link_token` created to generate a `public_token` that will be exchanged for a new `access_token` expires after 4 hours, and a `link_token` created for an existing Item (such as when updating an existing `access_token` by launching Link in update mode) expires after 30 minutes. If using [Hosted Link](https://plaid.com/docs/link/hosted-link/), the `link_token` will expire at the same time as the Hosted Link URL, and you can customize the duration using the `hosted_link.url_lifetime_seconds` option in the request. If using Link Delivery (beta), the `link_token` will expire by default after 24 hours if sent via SMS and after 7 days if sent via email. If using Identity Verification, Link token expiration will not be enforced; an Identity Verification Link session can be created with an expired Link token.
     * @type {string}
     * @memberof LinkTokenCreateResponse
     */
    expiration: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof LinkTokenCreateResponse
     */
    request_id: string;
    /**
     * A URL of a Plaid-hosted Link flow that will use the Link token returned by this request. Only present if the session is enabled for Hosted Link. To enable the session for Hosted Link, send a `hosted_link` object in the request.
     * @type {string}
     * @memberof LinkTokenCreateResponse
     */
    hosted_link_url?: string;
}
/**
 * Configuration parameters for EU flows
 * @export
 * @interface LinkTokenEUConfig
 */
export interface LinkTokenEUConfig {
    /**
     * If `true`, open Link without an initial UI. Defaults to `false`.
     * @type {boolean}
     * @memberof LinkTokenEUConfig
     */
    headless?: boolean;
}
/**
 * An object specifying the arguments originally provided to the `/link/token/create` call.
 * @export
 * @interface LinkTokenGetMetadataResponse
 */
export interface LinkTokenGetMetadataResponse {
    /**
     * The `products` specified in the `/link/token/create` call.
     * @type {Array<Products>}
     * @memberof LinkTokenGetMetadataResponse
     */
    initial_products: Array<Products>;
    /**
     * The `webhook` specified in the `/link/token/create` call.
     * @type {string}
     * @memberof LinkTokenGetMetadataResponse
     */
    webhook: string | null;
    /**
     * The `country_codes` specified in the `/link/token/create` call.
     * @type {Array<CountryCode>}
     * @memberof LinkTokenGetMetadataResponse
     */
    country_codes: Array<CountryCode>;
    /**
     * The `language` specified in the `/link/token/create` call.
     * @type {string}
     * @memberof LinkTokenGetMetadataResponse
     */
    language: string | null;
    /**
     *
     * @type {LinkTokenCreateInstitutionData}
     * @memberof LinkTokenGetMetadataResponse
     */
    institution_data?: LinkTokenCreateInstitutionData;
    /**
     *
     * @type {AccountFiltersResponse}
     * @memberof LinkTokenGetMetadataResponse
     */
    account_filters?: AccountFiltersResponse;
    /**
     * The `redirect_uri` specified in the `/link/token/create` call.
     * @type {string}
     * @memberof LinkTokenGetMetadataResponse
     */
    redirect_uri: string | null;
    /**
     * The `client_name` specified in the `/link/token/create` call.
     * @type {string}
     * @memberof LinkTokenGetMetadataResponse
     */
    client_name: string | null;
}
/**
 * LinkTokenGetRequest defines the request schema for `/link/token/get`
 * @export
 * @interface LinkTokenGetRequest
 */
export interface LinkTokenGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof LinkTokenGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof LinkTokenGetRequest
     */
    secret?: string;
    /**
     * A `link_token` from a previous invocation of `/link/token/create`
     * @type {string}
     * @memberof LinkTokenGetRequest
     */
    link_token: string;
}
/**
 * LinkTokenGetResponse defines the response schema for `/link/token/get`
 * @export
 * @interface LinkTokenGetResponse
 */
export interface LinkTokenGetResponse {
    /**
     * A `link_token`, which can be supplied to Link in order to initialize it and receive a `public_token`, which can be exchanged for an `access_token`.
     * @type {string}
     * @memberof LinkTokenGetResponse
     */
    link_token: string;
    /**
     * The creation timestamp for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof LinkTokenGetResponse
     */
    created_at: string | null;
    /**
     * The expiration timestamp for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof LinkTokenGetResponse
     */
    expiration: string | null;
    /**
     * Information about Link sessions created using this `link_token`. Session data will be provided for up to six hours after the session has ended.
     * @type {Array<LinkTokenGetSessionsResponse>}
     * @memberof LinkTokenGetResponse
     */
    link_sessions?: Array<LinkTokenGetSessionsResponse>;
    /**
     *
     * @type {LinkTokenGetMetadataResponse}
     * @memberof LinkTokenGetResponse
     */
    metadata: LinkTokenGetMetadataResponse;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof LinkTokenGetResponse
     */
    request_id: string;
}
/**
 * An object containing information about a link session. Session data will be provided for up to six hours after the session has ended.
 * @export
 * @interface LinkTokenGetSessionsResponse
 */
export interface LinkTokenGetSessionsResponse {
    /**
     * The unique ID for the link session.
     * @type {string}
     * @memberof LinkTokenGetSessionsResponse
     */
    link_session_id: string;
    /**
     * The timestamp at which the link session was first started, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof LinkTokenGetSessionsResponse
     */
    started_at?: string;
    /**
     * The timestamp at which the link session was finished, if available, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof LinkTokenGetSessionsResponse
     */
    finished_at?: string | null;
    /**
     *
     * @type {LinkSessionSuccess}
     * @memberof LinkTokenGetSessionsResponse
     * @deprecated
     */
    on_success?: LinkSessionSuccess | null;
    /**
     *
     * @type {LinkSessionExitDeprecated}
     * @memberof LinkTokenGetSessionsResponse
     * @deprecated
     */
    on_exit?: LinkSessionExitDeprecated | null;
    /**
     *
     * @type {LinkSessionExit}
     * @memberof LinkTokenGetSessionsResponse
     */
    exit?: LinkSessionExit | null;
    /**
     * List of customer-related Link events
     * @type {Array<LinkEvent>}
     * @memberof LinkTokenGetSessionsResponse
     */
    events?: Array<LinkEvent>;
    /**
     *
     * @type {LinkSessionResults}
     * @memberof LinkTokenGetSessionsResponse
     */
    results?: LinkSessionResults | null;
}
/**
 * Configuration parameters for the Investments product
 * @export
 * @interface LinkTokenInvestments
 */
export interface LinkTokenInvestments {
    /**
     * If `true`, allow self-custody crypto wallets to be added without requiring signature verification. Defaults to `false`.
     * @type {boolean}
     * @memberof LinkTokenInvestments
     */
    allow_unverified_crypto_wallets?: boolean;
    /**
     * If `true`, allow users to manually enter Investments account and holdings information. Defaults to `false`.
     * @type {boolean}
     * @memberof LinkTokenInvestments
     */
    allow_manual_entry?: boolean;
}
/**
 * Configuration parameters for the Investments Move product
 * @export
 * @interface LinkTokenInvestmentsAuth
 */
export interface LinkTokenInvestmentsAuth {
    /**
     * If `true`, show institutions that use the manual entry fallback flow.
     * @type {boolean}
     * @memberof LinkTokenInvestmentsAuth
     */
    manual_entry_enabled?: boolean | null;
    /**
     * If `true`, show institutions that use the masked number match fallback flow.
     * @type {boolean}
     * @memberof LinkTokenInvestmentsAuth
     */
    masked_number_match_enabled?: boolean | null;
    /**
     * If `true`, show institutions that use the stated account number fallback flow.
     * @type {boolean}
     * @memberof LinkTokenInvestmentsAuth
     */
    stated_account_number_enabled?: boolean | null;
    /**
     * If `true`, the fee and contribution details for 401k accounts will be returned.
     * @type {boolean}
     * @memberof LinkTokenInvestmentsAuth
     */
    rollover_401k_enabled?: boolean | null;
}
/**
 * Configuration parameters for the Transactions product
 * @export
 * @interface LinkTokenTransactions
 */
export interface LinkTokenTransactions {
    /**
     * The maximum number of days of transaction history to request for the Transactions product. The more transaction history is requested, the longer the historical update poll will take. The default value is 90 days. If a value under 30 is provided, a minimum of 30 days of history will be requested. Once Transactions has been added to an Item, this value cannot be updated.  Customers using [Recurring Transactions](https://plaid.com/docs/api/products/transactions/#transactionsrecurringget) should request at least 180 days of history for optimal results.
     * @type {number}
     * @memberof LinkTokenTransactions
     */
    days_requested?: number;
}
/**
 * Webhook indicating that the status of the delivery of the Hosted Link session to a user
 * @export
 * @interface LinkUserDeliveryStatusWebhook
 */
export interface LinkUserDeliveryStatusWebhook {
    /**
     * `LINK_DELIVERY`
     * @type {string}
     * @memberof LinkUserDeliveryStatusWebhook
     */
    webhook_type: string;
    /**
     * `DELIVERY_STATUS`
     * @type {string}
     * @memberof LinkUserDeliveryStatusWebhook
     */
    webhook_code: string;
    /**
     * The ID of the Hosted Link session.
     * @type {string}
     * @memberof LinkUserDeliveryStatusWebhook
     */
    link_delivery_session_id: string;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof LinkUserDeliveryStatusWebhook
     */
    timestamp: string;
    /**
     *
     * @type {LinkDeliveryMetadata}
     * @memberof LinkUserDeliveryStatusWebhook
     */
    link_delivery_metadata: LinkDeliveryMetadata;
}
/**
 * Information specific to a mortgage loan agreement between one or more borrowers and a mortgage lender.
 * @export
 * @interface Loan
 */
export interface Loan {
    /**
     *
     * @type {LoanIdentifiers}
     * @memberof Loan
     */
    LOAN_IDENTIFIERS: LoanIdentifiers;
}
/**
 * Valid account subtypes for loan accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-loan).
 * @export
 * @enum {string}
 */
export declare enum LoanAccountSubtype {
    Auto = "auto",
    Business = "business",
    Commercial = "commercial",
    Construction = "construction",
    Consumer = "consumer",
    HomeEquity = "home equity",
    Loan = "loan",
    Mortgage = "mortgage",
    LineOfCredit = "line of credit",
    Student = "student",
    Other = "other",
    All = "all"
}
/**
 * A filter to apply to `loan`-type accounts
 * @export
 * @interface LoanFilter
 */
export interface LoanFilter {
    /**
     * An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {Array<LoanAccountSubtype>}
     * @memberof LoanFilter
     */
    account_subtypes: Array<LoanAccountSubtype>;
}
/**
 * The information used to identify this loan by various parties to the transaction or other organizations.
 * @export
 * @interface LoanIdentifier
 */
export interface LoanIdentifier {
    /**
     * The value of the identifier for the specified type.
     * @type {string}
     * @memberof LoanIdentifier
     */
    LoanIdentifier: string | null;
    /**
     *
     * @type {LoanIdentifierType}
     * @memberof LoanIdentifier
     */
    LoanIdentifierType: LoanIdentifierType | null;
}
/**
 * A value from a MISMO prescribed list that specifies the type of loan identifier.
 * @export
 * @enum {string}
 */
export declare enum LoanIdentifierType {
    LenderLoan = "LenderLoan",
    UniversalLoan = "UniversalLoan"
}
/**
 * Collection of current and previous identifiers for this loan.
 * @export
 * @interface LoanIdentifiers
 */
export interface LoanIdentifiers {
    /**
     *
     * @type {LoanIdentifier}
     * @memberof LoanIdentifiers
     */
    LOAN_IDENTIFIER: LoanIdentifier;
}
/**
 * Details regarding the number of loan payments
 * @export
 * @interface LoanPaymentsCounts
 */
export interface LoanPaymentsCounts {
    /**
     * The number of loan payments made in the 30 days before the subscription date
     * @type {number}
     * @memberof LoanPaymentsCounts
     */
    baseline_count: number;
    /**
     * The current number of loan payments made in the last 30 days
     * @type {number}
     * @memberof LoanPaymentsCounts
     */
    current_count: number;
}
/**
 * Details regarding the number of unique loan payment merchants
 * @export
 * @interface LoanPaymentsMerchantCounts
 */
export interface LoanPaymentsMerchantCounts {
    /**
     * The number of unique loan payment merchants detected in the 30 days before the subscription date
     * @type {number}
     * @memberof LoanPaymentsMerchantCounts
     */
    baseline_count: number;
    /**
     * The current number of unique loan payment merchants detected in the last 30 days
     * @type {number}
     * @memberof LoanPaymentsMerchantCounts
     */
    current_count: number;
}
/**
 * A collection of loans that are part of a single deal.
 * @export
 * @interface Loans
 */
export interface Loans {
    /**
     *
     * @type {Loan}
     * @memberof Loans
     */
    LOAN: Loan;
}
/**
 * A representation of where a transaction took place
 * @export
 * @interface Location
 */
export interface Location {
    /**
     * The street address where the transaction occurred.
     * @type {string}
     * @memberof Location
     */
    address: string | null;
    /**
     * The city where the transaction occurred.
     * @type {string}
     * @memberof Location
     */
    city: string | null;
    /**
     * The region or state where the transaction occurred. In API versions 2018-05-22 and earlier, this field is called `state`.
     * @type {string}
     * @memberof Location
     */
    region: string | null;
    /**
     * The postal code where the transaction occurred. In API versions 2018-05-22 and earlier, this field is called `zip`.
     * @type {string}
     * @memberof Location
     */
    postal_code: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code where the transaction occurred.
     * @type {string}
     * @memberof Location
     */
    country: string | null;
    /**
     * The latitude where the transaction occurred.
     * @type {number}
     * @memberof Location
     */
    lat: number | null;
    /**
     * The longitude where the transaction occurred.
     * @type {number}
     * @memberof Location
     */
    lon: number | null;
    /**
     * The merchant defined store number where the transaction occurred.
     * @type {string}
     * @memberof Location
     */
    store_number: string | null;
}
/**
 * Specifies the multi-factor authentication settings to use with this test account
 * @export
 * @interface MFA
 */
export interface MFA {
    /**
     * Possible values are `device`, `selections`, or `questions`.  If value is `device`, the MFA answer is `1234`.  If value is `selections`, the MFA answer is always the first option.  If value is `questions`, the MFA answer is  `answer_<i>_<j>` for the j-th question in the i-th round, starting from 0. For example, the answer to the first question in the second round is `answer_1_0`.
     * @type {string}
     * @memberof MFA
     */
    type: string;
    /**
     * Number of rounds of questions. Required if value of `type` is `questions`.
     * @type {number}
     * @memberof MFA
     */
    question_rounds: number;
    /**
     * Number of questions per round. Required if value of `type` is `questions`. If value of type is `selections`, default value is 2.
     * @type {number}
     * @memberof MFA
     */
    questions_per_round: number;
    /**
     * Number of rounds of selections, used if `type` is `selections`. Defaults to 1.
     * @type {number}
     * @memberof MFA
     */
    selection_rounds: number;
    /**
     * Number of available answers per question, used if `type` is `selection`. Defaults to 2.
     * @type {number}
     * @memberof MFA
     */
    selections_per_question: number;
}
/**
 * Summary object reflecting the match result of the associated data
 * @export
 * @interface MatchSummary
 */
export interface MatchSummary {
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof MatchSummary
     */
    summary: MatchSummaryCode;
}
/**
 * An enum indicating the match type between data provided by user and data checked against an external data source.   `match` indicates that the provided input data was a strong match against external data.  `partial_match` indicates the data approximately matched against external data. For example, \"Knope\" vs. \"Knope-Wyatt\" for last name.  `no_match` indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data.  `no_data` indicates that Plaid was unable to find external data to compare against the provided input data.  `no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
 * @export
 * @enum {string}
 */
export declare enum MatchSummaryCode {
    Match = "match",
    PartialMatch = "partial_match",
    NoMatch = "no_match",
    NoData = "no_data",
    NoInput = "no_input"
}
/**
 * Insights into a user’s top merchants.
 * @export
 * @interface MerchantInsights
 */
export interface MerchantInsights {
    /**
     * The counterparty name.
     * @type {string}
     * @memberof MerchantInsights
     */
    name: string;
    /**
     * A unique, stable, Plaid-generated id that maps to the merchant.
     * @type {string}
     * @memberof MerchantInsights
     */
    entity_id?: string | null;
    /**
     * The website associated with the merchant.
     * @type {string}
     * @memberof MerchantInsights
     */
    website: string | null;
    /**
     * The number of transactions associated with merchant of this type.
     * @type {number}
     * @memberof MerchantInsights
     */
    transaction_count: number;
    /**
     * The primary personal finance category associated with this merchant.
     * @type {string}
     * @memberof MerchantInsights
     */
    personal_finance_category_primary: string | null;
    /**
     * The detailed personal finance category associated with this merchant.
     * @type {string}
     * @memberof MerchantInsights
     */
    personal_finance_category_detailed: string | null;
    /**
     * Sum of outflow amounts.
     * @type {number}
     * @memberof MerchantInsights
     */
    total_outflows: number;
    /**
     * Sum of inflow amounts.
     * @type {number}
     * @memberof MerchantInsights
     */
    total_inflows: number;
}
/**
 * Allows specifying the metadata of the test account
 * @export
 * @interface Meta
 */
export interface Meta {
    /**
     * The account\'s name
     * @type {string}
     * @memberof Meta
     */
    name: string;
    /**
     * The account\'s official name
     * @type {string}
     * @memberof Meta
     */
    official_name: string;
    /**
     * The account\'s limit
     * @type {number}
     * @memberof Meta
     */
    limit: number;
    /**
     * The account\'s mask. Should be an empty string or a string of 2-4 alphanumeric characters. This allows you to model a mask which does not match the account number (such as with a virtual account number).
     * @type {string}
     * @memberof Meta
     */
    mask: string;
}
/**
 * Describes the reason you are generating a Consumer Report for this user.   `ACCOUNT_REVIEW_CREDIT`: In connection with a consumer credit transaction for the review or collection of an account pursuant to FCRA Section 604(a)(3)(A).  `WRITTEN_INSTRUCTION_OTHER`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), such as when an individual agrees to act as a guarantor or assumes personal liability for a consumer, business, or commercial loan.
 * @export
 * @enum {string}
 */
export declare enum MonitoringConsumerReportPermissiblePurpose {
    AccountReviewCredit = "ACCOUNT_REVIEW_CREDIT",
    WrittenInstructionOther = "WRITTEN_INSTRUCTION_OTHER"
}
/**
 * An object representing the income subcategory of the report
 * @export
 * @interface MonitoringIncomeInsights
 */
export interface MonitoringIncomeInsights {
    /**
     *
     * @type {TotalMonthlyIncomeInsights}
     * @memberof MonitoringIncomeInsights
     */
    total_monthly_income: TotalMonthlyIncomeInsights;
    /**
     *
     * @type {IncomeSourcesCounts}
     * @memberof MonitoringIncomeInsights
     */
    income_sources_counts: IncomeSourcesCounts;
    /**
     *
     * @type {ForecastedMonthlyIncome}
     * @memberof MonitoringIncomeInsights
     */
    forecasted_monthly_income: ForecastedMonthlyIncome;
    /**
     *
     * @type {HistoricalAnnualIncome}
     * @memberof MonitoringIncomeInsights
     */
    historical_annual_income: HistoricalAnnualIncome;
    /**
     * The income sources for this Item. Each entry in the array is a single income source
     * @type {Array<MonitoringIncomeSource>}
     * @memberof MonitoringIncomeInsights
     */
    income_sources: Array<MonitoringIncomeSource>;
}
/**
 * An object representing an income source
 * @export
 * @interface MonitoringIncomeSource
 */
export interface MonitoringIncomeSource {
    /**
     * A unique identifier for an income source
     * @type {string}
     * @memberof MonitoringIncomeSource
     */
    income_source_id: string;
    /**
     * The most common name or original description for the underlying income transactions
     * @type {string}
     * @memberof MonitoringIncomeSource
     */
    income_description: string;
    /**
     *
     * @type {CreditBankIncomeCategory}
     * @memberof MonitoringIncomeSource
     */
    income_category: CreditBankIncomeCategory;
    /**
     * The last detected transaction date for this income source
     * @type {string}
     * @memberof MonitoringIncomeSource
     */
    last_transaction_date: string;
}
/**
 * An object representing the Monitoring Insights for the given Item
 * @export
 * @interface MonitoringInsights
 */
export interface MonitoringInsights {
    /**
     *
     * @type {MonitoringIncomeInsights}
     * @memberof MonitoringInsights
     */
    income: MonitoringIncomeInsights;
    /**
     *
     * @type {MonitoringLoanInsights}
     * @memberof MonitoringInsights
     */
    loans: MonitoringLoanInsights;
}
/**
 * An object with details of the Monitoring Insights Item\'s status.
 * @export
 * @interface MonitoringInsightsItemStatus
 */
export interface MonitoringInsightsItemStatus {
    /**
     *
     * @type {MonitoringItemStatusCode}
     * @memberof MonitoringInsightsItemStatus
     */
    status_code: MonitoringItemStatusCode;
    /**
     * A reason for why a Monitoring Insights Report is not available. This field will only be populated when the `status_code` is not `AVAILABLE`
     * @type {string}
     * @memberof MonitoringInsightsItemStatus
     */
    reason?: string | null;
}
/**
 * Enum for the status of the insights
 * @export
 * @enum {string}
 */
export declare enum MonitoringInsightsStatus {
    Available = "AVAILABLE",
    Failed = "FAILED",
    Pending = "PENDING",
    Unsupported = "UNSUPPORTED",
    Unhealthy = "UNHEALTHY"
}
/**
 * For each user enabled for Cash Flow Updates, this webhook will fire every day with information on the status of the update. Upon receiving the webhook, call `/cra/monitoring_insights/get` to retrieve the updated insights.
 * @export
 * @interface MonitoringInsightsWebhook
 */
export interface MonitoringInsightsWebhook {
    /**
     * `CRA_MONITORING`
     * @type {string}
     * @memberof MonitoringInsightsWebhook
     */
    webhook_type: string;
    /**
     * `INSIGHTS_UPDATED`
     * @type {string}
     * @memberof MonitoringInsightsWebhook
     */
    webhook_code: string;
    /**
     *
     * @type {MonitoringInsightsStatus}
     * @memberof MonitoringInsightsWebhook
     */
    status: MonitoringInsightsStatus;
    /**
     * The reason for why insights may not be `AVAILABLE`
     * @type {string}
     * @memberof MonitoringInsightsWebhook
     */
    reason?: string | null;
    /**
     * The `user_id` that the report is associated with
     * @type {string}
     * @memberof MonitoringInsightsWebhook
     */
    user_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof MonitoringInsightsWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Enum for the status of the Item\'s insights
 * @export
 * @enum {string}
 */
export declare enum MonitoringItemStatusCode {
    Available = "AVAILABLE",
    Failed = "FAILED",
    Pending = "PENDING",
    ItemNotSupported = "ITEM_NOT_SUPPORTED",
    ItemLoginRequired = "ITEM_LOGIN_REQUIRED"
}
/**
 * An object representing the loan exposure subcategory of the report
 * @export
 * @interface MonitoringLoanInsights
 */
export interface MonitoringLoanInsights {
    /**
     *
     * @type {LoanPaymentsCounts}
     * @memberof MonitoringLoanInsights
     */
    loan_payments_counts: LoanPaymentsCounts;
    /**
     * The number of loan disbursements detected in the last 30 days
     * @type {number}
     * @memberof MonitoringLoanInsights
     */
    loan_disbursements_count: number;
    /**
     *
     * @type {LoanPaymentsMerchantCounts}
     * @memberof MonitoringLoanInsights
     */
    loan_payment_merchants_counts: LoanPaymentsMerchantCounts;
}
/**
 * Object containing metadata about the interest rate for the mortgage.
 * @export
 * @interface MortgageInterestRate
 */
export interface MortgageInterestRate {
    /**
     * Percentage value (interest rate of current mortgage, not APR) of interest payable on a loan.
     * @type {number}
     * @memberof MortgageInterestRate
     */
    percentage: number | null;
    /**
     * The type of interest charged (fixed or variable).
     * @type {string}
     * @memberof MortgageInterestRate
     */
    type: string | null;
}
/**
 * Contains details about a mortgage account.
 * @export
 * @interface MortgageLiability
 */
export interface MortgageLiability {
    /**
     * The ID of the account that this liability belongs to.
     * @type {string}
     * @memberof MortgageLiability
     */
    account_id: string;
    /**
     * The account number of the loan.
     * @type {string}
     * @memberof MortgageLiability
     */
    account_number: string | null;
    /**
     * The current outstanding amount charged for late payment.
     * @type {number}
     * @memberof MortgageLiability
     */
    current_late_fee: number | null;
    /**
     * Total amount held in escrow to pay taxes and insurance on behalf of the borrower.
     * @type {number}
     * @memberof MortgageLiability
     */
    escrow_balance: number | null;
    /**
     * Indicates whether the borrower has private mortgage insurance in effect.
     * @type {boolean}
     * @memberof MortgageLiability
     */
    has_pmi: boolean | null;
    /**
     * Indicates whether the borrower will pay a penalty for early payoff of mortgage.
     * @type {boolean}
     * @memberof MortgageLiability
     */
    has_prepayment_penalty: boolean | null;
    /**
     *
     * @type {MortgageInterestRate}
     * @memberof MortgageLiability
     */
    interest_rate: MortgageInterestRate;
    /**
     * The amount of the last payment.
     * @type {number}
     * @memberof MortgageLiability
     */
    last_payment_amount: number | null;
    /**
     * The date of the last payment. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof MortgageLiability
     */
    last_payment_date: string | null;
    /**
     * Description of the type of loan, for example `conventional`, `fixed`, or `variable`. This field is provided directly from the loan servicer and does not have an enumerated set of possible values.
     * @type {string}
     * @memberof MortgageLiability
     */
    loan_type_description: string | null;
    /**
     * Full duration of mortgage as at origination (e.g. `10 year`).
     * @type {string}
     * @memberof MortgageLiability
     */
    loan_term: string | null;
    /**
     * Original date on which mortgage is due in full. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof MortgageLiability
     */
    maturity_date: string | null;
    /**
     * The amount of the next payment.
     * @type {number}
     * @memberof MortgageLiability
     */
    next_monthly_payment: number | null;
    /**
     * The due date for the next payment. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof MortgageLiability
     */
    next_payment_due_date: string | null;
    /**
     * The date on which the loan was initially lent. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof MortgageLiability
     */
    origination_date: string | null;
    /**
     * The original principal balance of the mortgage.
     * @type {number}
     * @memberof MortgageLiability
     */
    origination_principal_amount: number | null;
    /**
     * Amount of loan (principal + interest) past due for payment.
     * @type {number}
     * @memberof MortgageLiability
     */
    past_due_amount: number | null;
    /**
     *
     * @type {MortgagePropertyAddress}
     * @memberof MortgageLiability
     */
    property_address: MortgagePropertyAddress;
    /**
     * The year to date (YTD) interest paid.
     * @type {number}
     * @memberof MortgageLiability
     */
    ytd_interest_paid: number | null;
    /**
     * The YTD principal paid.
     * @type {number}
     * @memberof MortgageLiability
     */
    ytd_principal_paid: number | null;
}
/**
 * Object containing fields describing property address.
 * @export
 * @interface MortgagePropertyAddress
 */
export interface MortgagePropertyAddress {
    /**
     * The city name.
     * @type {string}
     * @memberof MortgagePropertyAddress
     */
    city: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code.
     * @type {string}
     * @memberof MortgagePropertyAddress
     */
    country: string | null;
    /**
     * The five or nine digit postal code.
     * @type {string}
     * @memberof MortgagePropertyAddress
     */
    postal_code: string | null;
    /**
     * The region or state (example \"NC\").
     * @type {string}
     * @memberof MortgagePropertyAddress
     */
    region: string | null;
    /**
     * The full street address (example \"564 Main Street, Apt 15\").
     * @type {string}
     * @memberof MortgagePropertyAddress
     */
    street: string | null;
}
/**
 * Object containing risk signals and relevant metadata for a set of uploaded documents
 * @export
 * @interface MultiDocumentRiskSignal
 */
export interface MultiDocumentRiskSignal {
    /**
     * Array of objects containing attributes that could indicate if a document is fraudulent
     * @type {Array<RiskSignalDocumentReference>}
     * @memberof MultiDocumentRiskSignal
     */
    document_references: Array<RiskSignalDocumentReference>;
    /**
     * Array of attributes that indicate whether or not there is fraud risk with a set of documents
     * @type {Array<DocumentRiskSignal>}
     * @memberof MultiDocumentRiskSignal
     */
    risk_signals: Array<DocumentRiskSignal>;
}
/**
 * Score found by matching name provided by the API with the name on the account at the financial institution. If the account contains multiple owners, the maximum match score is filled.
 * @export
 * @interface NameMatchScore
 */
export interface NameMatchScore {
    /**
     * Match score for name. 100 is a perfect score, 99-85 means a strong match, 84-70 is a partial match, any score less than 70 is a mismatch. Typically, the match threshold should be set to a score of 70 or higher. If the name is missing from either the API or financial institution, this is null.
     * @type {number}
     * @memberof NameMatchScore
     */
    score?: number | null;
    /**
     * first or last name completely matched, likely a family member
     * @type {boolean}
     * @memberof NameMatchScore
     */
    is_first_name_or_last_name_match?: boolean | null;
    /**
     * nickname matched, example Jennifer and Jenn.
     * @type {boolean}
     * @memberof NameMatchScore
     */
    is_nickname_match?: boolean | null;
    /**
     * Is `true` if the name on either of the names that was matched for the score contained strings indicative of a business name, such as \"CORP\", \"LLC\", \"INC\", or \"LTD\". A `true` result generally indicates that an account\'s name is a business name. However, a `false` result does not mean the account name is not a business name, as some businesses do not use these strings in the names used for their financial institution accounts.
     * @type {boolean}
     * @memberof NameMatchScore
     */
    is_business_name_detected?: boolean | null;
}
/**
 * An object representing information about the net pay amount on the paystub.
 * @export
 * @interface NetPay
 */
export interface NetPay {
    /**
     * Raw amount of the net pay for the pay period
     * @type {number}
     * @memberof NetPay
     */
    current_amount?: number | null;
    /**
     * Description of the net pay
     * @type {string}
     * @memberof NetPay
     */
    description?: string | null;
    /**
     * The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof NetPay
     */
    iso_currency_code?: string | null;
    /**
     * The unofficial currency code associated with the net pay. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof NetPay
     */
    unofficial_currency_code?: string | null;
    /**
     * The year-to-date amount of the net pay
     * @type {number}
     * @memberof NetPay
     */
    ytd_amount?: number | null;
    /**
     *
     * @type {Total}
     * @memberof NetPay
     * @deprecated
     */
    total?: Total;
}
/**
 * Contains data about the connected Item.
 * @export
 * @interface NetworkInsightsItem
 */
export interface NetworkInsightsItem {
    /**
     * The ID for the institution the user linked.
     * @type {string}
     * @memberof NetworkInsightsItem
     */
    institution_id: string;
    /**
     * The name of the institution the user linked.
     * @type {string}
     * @memberof NetworkInsightsItem
     */
    institution_name: string;
    /**
     * The identifier for the Item.
     * @type {string}
     * @memberof NetworkInsightsItem
     */
    item_id: string;
}
/**
 * Contains data for the Network Insights Report.
 * @export
 * @interface NetworkInsightsReport
 */
export interface NetworkInsightsReport {
    /**
     * The unique identifier associated with the Network Insights report object.
     * @type {string}
     * @memberof NetworkInsightsReport
     */
    report_id: string;
    /**
     * The time when the Network Insights Report was generated.
     * @type {string}
     * @memberof NetworkInsightsReport
     */
    generated_time: string;
    /**
     * A map of network attributes, where the key is a string, and the value is a float, int, or boolean.
     * @type {object}
     * @memberof NetworkInsightsReport
     */
    network_attributes: object;
    /**
     * A list of Items associated with the provided access_tokens.
     * @type {Array<NetworkInsightsItem>}
     * @memberof NetworkInsightsReport
     */
    items: Array<NetworkInsightsItem>;
}
/**
 * NetworkInsightsReportGetRequest defines the request schema for `/network_insights/report/get`.
 * @export
 * @interface NetworkInsightsReportGetRequest
 */
export interface NetworkInsightsReportGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof NetworkInsightsReportGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof NetworkInsightsReportGetRequest
     */
    secret?: string;
    /**
     * A list of access tokens that the Network Insights will be requested for. These correspond to previous Items a user has connected.
     * @type {Array<string>}
     * @memberof NetworkInsightsReportGetRequest
     */
    access_tokens: Array<string>;
}
/**
 * NetworkInsightsReportGetResponse defines the response schema for `/network_insights/report/get`.
 * @export
 * @interface NetworkInsightsReportGetResponse
 */
export interface NetworkInsightsReportGetResponse {
    /**
     *
     * @type {NetworkInsightsReport}
     * @memberof NetworkInsightsReportGetResponse
     */
    report: NetworkInsightsReport;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof NetworkInsightsReportGetResponse
     */
    request_id: string;
}
/**
 * NetworkStatusGetRequest defines the request schema for `/network/status/get`
 * @export
 * @interface NetworkStatusGetRequest
 */
export interface NetworkStatusGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof NetworkStatusGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof NetworkStatusGetRequest
     */
    secret?: string;
    /**
     *
     * @type {NetworkStatusGetUser}
     * @memberof NetworkStatusGetRequest
     */
    user: NetworkStatusGetUser;
    /**
     * The id of a template defined in Plaid Dashboard. This field is used if you have additional criteria that you want to check against (e.g. Layer eligibility).
     * @type {string}
     * @memberof NetworkStatusGetRequest
     */
    template_id?: string;
}
/**
 * NetworkStatusGetResponse defines the response schema for `/network/status/get`
 * @export
 * @interface NetworkStatusGetResponse
 */
export interface NetworkStatusGetResponse {
    /**
     *
     * @type {NetworkStatusGetResponseNetworkStatus}
     * @memberof NetworkStatusGetResponse
     */
    network_status: NetworkStatusGetResponseNetworkStatus;
    /**
     *
     * @type {NetworkStatusGetResponseLayer}
     * @memberof NetworkStatusGetResponse
     */
    layer?: NetworkStatusGetResponseLayer | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof NetworkStatusGetResponse
     */
    request_id: string;
}
/**
 * An object representing Layer-related metadata for the requested user.
 * @export
 * @interface NetworkStatusGetResponseLayer
 */
export interface NetworkStatusGetResponseLayer {
    /**
     * Indicates if the user is eligible for a Layer session.
     * @type {boolean}
     * @memberof NetworkStatusGetResponseLayer
     */
    eligible: boolean;
}
/**
 * Enum representing the overall network status of the user.
 * @export
 * @enum {string}
 */
export declare enum NetworkStatusGetResponseNetworkStatus {
    Unknown = "UNKNOWN",
    ReturningUser = "RETURNING_USER"
}
/**
 * An object specifying information about the end user for the network status check.
 * @export
 * @interface NetworkStatusGetUser
 */
export interface NetworkStatusGetUser {
    /**
     * The user\'s phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format.
     * @type {string}
     * @memberof NetworkStatusGetUser
     */
    phone_number: string;
}
/**
 * Fired when Plaid detects a new account. Upon receiving this webhook, you can prompt your users to share new accounts with you through [update mode](https://plaid.com/docs/link/update-mode/#using-update-mode-to-request-new-accounts) (US/CA only). If the end user has opted not to share new accounts with Plaid via their institution\'s OAuth settings, Plaid will not detect new accounts and this webhook will not fire. For end user accounts in the EU and UK, upon receiving this webhook, you can prompt your user to re-link their account and then delete the old Item via `/item/remove`.
 * @export
 * @interface NewAccountsAvailableWebhook
 */
export interface NewAccountsAvailableWebhook {
    /**
     * `ITEM`
     * @type {string}
     * @memberof NewAccountsAvailableWebhook
     */
    webhook_type?: string;
    /**
     * `NEW_ACCOUNTS_AVAILABLE`
     * @type {string}
     * @memberof NewAccountsAvailableWebhook
     */
    webhook_code?: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof NewAccountsAvailableWebhook
     */
    item_id?: string;
    /**
     *
     * @type {PlaidError}
     * @memberof NewAccountsAvailableWebhook
     */
    error?: PlaidError | null;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof NewAccountsAvailableWebhook
     */
    environment?: WebhookEnvironmentValues;
}
/**
 * Account and bank identifier number data used to configure the test account. All values are optional.
 * @export
 * @interface Numbers
 */
export interface Numbers {
    /**
     * Will be used for the account number.
     * @type {string}
     * @memberof Numbers
     */
    account?: string;
    /**
     * Must be a valid ACH routing number. To test `/transfer/capabilities/get`, set this to 322271627 to force a `true` result.
     * @type {string}
     * @memberof Numbers
     */
    ach_routing?: string;
    /**
     * Must be a valid wire transfer routing number.
     * @type {string}
     * @memberof Numbers
     */
    ach_wire_routing?: string;
    /**
     * EFT institution number. Must be specified alongside `eft_branch`.
     * @type {string}
     * @memberof Numbers
     */
    eft_institution?: string;
    /**
     * EFT branch number. Must be specified alongside `eft_institution`.
     * @type {string}
     * @memberof Numbers
     */
    eft_branch?: string;
    /**
     * Bank identifier code (BIC). Must be specified alongside `international_iban`.
     * @type {string}
     * @memberof Numbers
     */
    international_bic?: string;
    /**
     * International bank account number (IBAN). If no account number is specified via `account`, will also be used as the account number by default. Must be specified alongside `international_bic`.
     * @type {string}
     * @memberof Numbers
     */
    international_iban?: string;
    /**
     * BACS sort code
     * @type {string}
     * @memberof Numbers
     */
    bacs_sort_code?: string;
}
/**
 * Identifying information for transferring holdings to an investments account via ACATS.
 * @export
 * @interface NumbersACATS
 */
export interface NumbersACATS {
    /**
     * The Plaid account ID associated with the account numbers
     * @type {string}
     * @memberof NumbersACATS
     */
    account_id: string;
    /**
     * The full account number for the account
     * @type {string}
     * @memberof NumbersACATS
     */
    account: string;
    /**
     * Identifiers for the clearinghouses that are associated with the account in order of relevance. This array will be empty if we can\'t provide any account level data. Institution level data can be retrieved from the institutions/get endpoints.
     * @type {Array<string>}
     * @memberof NumbersACATS
     */
    dtc_numbers: Array<string>;
}
/**
 * Identifying information for transferring money to or from a US account via ACH or wire transfer.
 * @export
 * @interface NumbersACH
 */
export interface NumbersACH {
    /**
     * The Plaid account ID associated with the account numbers
     * @type {string}
     * @memberof NumbersACH
     */
    account_id: string;
    /**
     * The ACH account number for the account.  At certain institutions, including Chase and PNC, you will receive \"tokenized\" routing and account numbers, which are not the user\'s actual account and routing numbers. For important details on how this may impact your integration and on how to avoid fraud, user confusion, and ACH returns, see [Tokenized account numbers](https://plaid.com/docs/auth/#tokenized-account-numbers).
     * @type {string}
     * @memberof NumbersACH
     */
    account: string;
    /**
     * Indicates whether the account number is tokenized by the institution. For important details on how tokenized account numbers may impact your integration, see [Tokenized account numbers](https://plaid.com/docs/auth/#tokenized-account-numbers).
     * @type {boolean}
     * @memberof NumbersACH
     */
    is_tokenized_account_number?: boolean;
    /**
     * The ACH routing number for the account. This may be a tokenized routing number. For more information, see [Tokenized account numbers](https://plaid.com/docs/auth/#tokenized-account-numbers).
     * @type {string}
     * @memberof NumbersACH
     */
    routing: string;
    /**
     * The wire transfer routing number for the account. This field is only populated if the institution is known to use a separate wire transfer routing number. Many institutions do not have a separate wire routing number and use the ACH routing number for wires instead. It is recommended to have the end user manually confirm their wire routing number before sending any wires to their account, especially if this field is `null`.
     * @type {string}
     * @memberof NumbersACH
     */
    wire_routing: string | null;
    /**
     * Whether the account supports ACH transfers into the account
     * @type {boolean}
     * @memberof NumbersACH
     */
    can_transfer_in?: boolean | null;
    /**
     * Whether the account supports ACH transfers out of the account
     * @type {boolean}
     * @memberof NumbersACH
     */
    can_transfer_out?: boolean | null;
}
/**
 * Identifying information for transferring money to or from a US account via ACH or wire transfer.
 * @export
 * @interface NumbersACHNullable
 */
export interface NumbersACHNullable {
    /**
     * The Plaid account ID associated with the account numbers
     * @type {string}
     * @memberof NumbersACHNullable
     */
    account_id: string;
    /**
     * The ACH account number for the account.  At certain institutions, including Chase and PNC, you will receive \"tokenized\" routing and account numbers, which are not the user\'s actual account and routing numbers. For important details on how this may impact your integration and on how to avoid fraud, user confusion, and ACH returns, see [Tokenized account numbers](https://plaid.com/docs/auth/#tokenized-account-numbers).
     * @type {string}
     * @memberof NumbersACHNullable
     */
    account: string;
    /**
     * Indicates whether the account number is tokenized by the institution. For important details on how tokenized account numbers may impact your integration, see [Tokenized account numbers](https://plaid.com/docs/auth/#tokenized-account-numbers).
     * @type {boolean}
     * @memberof NumbersACHNullable
     */
    is_tokenized_account_number?: boolean;
    /**
     * The ACH routing number for the account. This may be a tokenized routing number. For more information, see [Tokenized account numbers](https://plaid.com/docs/auth/#tokenized-account-numbers).
     * @type {string}
     * @memberof NumbersACHNullable
     */
    routing: string;
    /**
     * The wire transfer routing number for the account. This field is only populated if the institution is known to use a separate wire transfer routing number. Many institutions do not have a separate wire routing number and use the ACH routing number for wires instead. It is recommended to have the end user manually confirm their wire routing number before sending any wires to their account, especially if this field is `null`.
     * @type {string}
     * @memberof NumbersACHNullable
     */
    wire_routing: string | null;
    /**
     * Whether the account supports ACH transfers into the account
     * @type {boolean}
     * @memberof NumbersACHNullable
     */
    can_transfer_in?: boolean | null;
    /**
     * Whether the account supports ACH transfers out of the account
     * @type {boolean}
     * @memberof NumbersACHNullable
     */
    can_transfer_out?: boolean | null;
}
/**
 * Identifying information for transferring holdings to an investments account via ATON.
 * @export
 * @interface NumbersATON
 */
export interface NumbersATON {
    /**
     * The Plaid account ID associated with the account numbers
     * @type {string}
     * @memberof NumbersATON
     */
    account_id: string;
    /**
     * The full account number for the account
     * @type {string}
     * @memberof NumbersATON
     */
    account: string;
}
/**
 * Identifying information for transferring money to or from a UK bank account via BACS.
 * @export
 * @interface NumbersBACS
 */
export interface NumbersBACS {
    /**
     * The Plaid account ID associated with the account numbers
     * @type {string}
     * @memberof NumbersBACS
     */
    account_id: string;
    /**
     * The BACS account number for the account
     * @type {string}
     * @memberof NumbersBACS
     */
    account: string;
    /**
     * The BACS sort code for the account
     * @type {string}
     * @memberof NumbersBACS
     */
    sort_code: string;
}
/**
 * Identifying information for transferring money to or from a UK bank account via BACS.
 * @export
 * @interface NumbersBACSNullable
 */
export interface NumbersBACSNullable {
    /**
     * The Plaid account ID associated with the account numbers
     * @type {string}
     * @memberof NumbersBACSNullable
     */
    account_id: string;
    /**
     * The BACS account number for the account
     * @type {string}
     * @memberof NumbersBACSNullable
     */
    account: string;
    /**
     * The BACS sort code for the account
     * @type {string}
     * @memberof NumbersBACSNullable
     */
    sort_code: string;
}
/**
 * Identifying information for transferring money to or from a Canadian bank account via EFT.
 * @export
 * @interface NumbersEFT
 */
export interface NumbersEFT {
    /**
     * The Plaid account ID associated with the account numbers
     * @type {string}
     * @memberof NumbersEFT
     */
    account_id: string;
    /**
     * The EFT account number for the account
     * @type {string}
     * @memberof NumbersEFT
     */
    account: string;
    /**
     * The EFT institution number for the account
     * @type {string}
     * @memberof NumbersEFT
     */
    institution: string;
    /**
     * The EFT branch number for the account
     * @type {string}
     * @memberof NumbersEFT
     */
    branch: string;
}
/**
 * Identifying information for transferring money to or from a Canadian bank account via EFT.
 * @export
 * @interface NumbersEFTNullable
 */
export interface NumbersEFTNullable {
    /**
     * The Plaid account ID associated with the account numbers
     * @type {string}
     * @memberof NumbersEFTNullable
     */
    account_id: string;
    /**
     * The EFT account number for the account
     * @type {string}
     * @memberof NumbersEFTNullable
     */
    account: string;
    /**
     * The EFT institution number for the account
     * @type {string}
     * @memberof NumbersEFTNullable
     */
    institution: string;
    /**
     * The EFT branch number for the account
     * @type {string}
     * @memberof NumbersEFTNullable
     */
    branch: string;
}
/**
 * International Bank Account Number (IBAN).
 * @export
 * @interface NumbersIBANNullable
 */
export interface NumbersIBANNullable {
}
/**
 * Identifying information for transferring money to or from an international bank account via wire transfer.
 * @export
 * @interface NumbersInternational
 */
export interface NumbersInternational {
    /**
     * The Plaid account ID associated with the account numbers
     * @type {string}
     * @memberof NumbersInternational
     */
    account_id: string;
    /**
     * The International Bank Account Number (IBAN) for the account
     * @type {string}
     * @memberof NumbersInternational
     */
    iban: string;
    /**
     * The Bank Identifier Code (BIC) for the account
     * @type {string}
     * @memberof NumbersInternational
     */
    bic: string;
}
/**
 * Account numbers using the International Bank Account Number and BIC/SWIFT code format.
 * @export
 * @interface NumbersInternationalIBAN
 */
export interface NumbersInternationalIBAN {
    /**
     * International Bank Account Number (IBAN).
     * @type {string}
     * @memberof NumbersInternationalIBAN
     */
    iban: string;
    /**
     * The Business Identifier Code, also known as SWIFT code, for this bank account.
     * @type {string}
     * @memberof NumbersInternationalIBAN
     */
    bic: string;
}
/**
 * Identifying information for transferring money to or from an international bank account via wire transfer.
 * @export
 * @interface NumbersInternationalNullable
 */
export interface NumbersInternationalNullable {
    /**
     * The Plaid account ID associated with the account numbers
     * @type {string}
     * @memberof NumbersInternationalNullable
     */
    account_id: string;
    /**
     * The International Bank Account Number (IBAN) for the account
     * @type {string}
     * @memberof NumbersInternationalNullable
     */
    iban: string;
    /**
     * The Bank Identifier Code (BIC) for the account
     * @type {string}
     * @memberof NumbersInternationalNullable
     */
    bic: string;
}
/**
 * Identifying information for transferring holdings from a 401k account to another 401k account or IRA via the manual 401k rollover process.
 * @export
 * @interface NumbersRetirement401k
 */
export interface NumbersRetirement401k {
    /**
     * The Plaid account ID associated with the account numbers
     * @type {string}
     * @memberof NumbersRetirement401k
     */
    account_id: string;
    /**
     * The plan number for the employer\'s 401k retirement plan
     * @type {string}
     * @memberof NumbersRetirement401k
     */
    plan?: string;
    /**
     * The full account number for the account
     * @type {string}
     * @memberof NumbersRetirement401k
     */
    account?: string;
}
/**
 * The type of transfer. Valid values are `debit` or `credit`.  A `debit` indicates a transfer of money into the origination account; a `credit` indicates a transfer of money out of the origination account. This field is omitted for Plaid Ledger Sweep events.
 * @export
 * @enum {string}
 */
export declare enum OmittableTransferType {
    Debit = "debit",
    Credit = "credit"
}
/**
 * Details about the option security.  For the Sandbox environment, this data is currently only available if the item is using a custom configuration object, and the `ticker` field of the custom security follows the [OCC Option Symbol](https://en.wikipedia.org/wiki/Option_symbol#The_OCC_Option_Symbol) standard with no spaces.
 * @export
 * @interface OptionContract
 */
export interface OptionContract {
    /**
     * The type of this option contract. It is one of:  `put`: for Put option contracts  `call`: for Call option contracts
     * @type {string}
     * @memberof OptionContract
     */
    contract_type: string;
    /**
     * The expiration date for this option contract, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof OptionContract
     */
    expiration_date: string;
    /**
     * The strike price for this option contract, per share of security.
     * @type {number}
     * @memberof OptionContract
     */
    strike_price: number;
    /**
     * The ticker of the underlying security for this option contract.
     * @type {string}
     * @memberof OptionContract
     */
    underlying_security_ticker: string;
}
/**
 * The original source of the funds. This field is required by local regulation for certain businesses (e.g. money remittance) to send payouts to recipients in the EU and UK.
 * @export
 * @interface OriginatingFundSource
 */
export interface OriginatingFundSource {
    /**
     * The full name associated with the source of the funds.
     * @type {string}
     * @memberof OriginatingFundSource
     */
    full_name: string;
    /**
     *
     * @type {PaymentInitiationAddress}
     * @memberof OriginatingFundSource
     */
    address: PaymentInitiationAddress | null;
    /**
     * The account number from which the funds are sourced.
     * @type {string}
     * @memberof OriginatingFundSource
     */
    account_number: string;
    /**
     * The Business Identifier Code, also known as SWIFT code, for this bank account.
     * @type {string}
     * @memberof OriginatingFundSource
     */
    bic: string;
}
/**
 * Originator and their status.
 * @export
 * @interface Originator
 */
export interface Originator {
    /**
     * Originator’s client ID.
     * @type {string}
     * @memberof Originator
     */
    client_id: string;
    /**
     *
     * @type {TransferDiligenceStatus}
     * @memberof Originator
     */
    transfer_diligence_status: TransferDiligenceStatus;
}
/**
 * The originator\'s expected transfer frequency.
 * @export
 * @enum {string}
 */
export declare enum OriginatorExpectedTransferFrequency {
    OncePerMonth = "once_per_month",
    TwicePerMonth = "twice_per_month",
    OncePerWeek = "once_per_week",
    Daily = "daily"
}
/**
 * Valid account subtypes for other accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-other).
 * @export
 * @enum {string}
 */
export declare enum OtherAccountSubtype {
    Other = "other",
    All = "all"
}
/**
 * A filter to apply to `other`-type accounts
 * @export
 * @interface OtherFilter
 */
export interface OtherFilter {
    /**
     * An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {Array<OtherAccountSubtype>}
     * @memberof OtherFilter
     */
    account_subtypes: Array<OtherAccountSubtype>;
}
/**
 * `investment:` Investment account.  `credit:` Credit card  `depository:` Depository account  `loan:` Loan account  `payroll:` Payroll account  `other:` Non-specified account type  See the [Account type schema](https://plaid.com/docs/api/accounts#account-type-schema) for a full listing of account types and corresponding subtypes.
 * @export
 * @enum {string}
 */
export declare enum OverrideAccountType {
    Investment = "investment",
    Credit = "credit",
    Depository = "depository",
    Loan = "loan",
    Payroll = "payroll",
    Other = "other"
}
/**
 * Data to use to set values of test accounts. Some values cannot be specified in the schema and will instead will be calculated from other test data in order to achieve more consistent, realistic test data.
 * @export
 * @interface OverrideAccounts
 */
export interface OverrideAccounts {
    /**
     *
     * @type {OverrideAccountType}
     * @memberof OverrideAccounts
     */
    type: OverrideAccountType;
    /**
     *
     * @type {AccountSubtype}
     * @memberof OverrideAccounts
     */
    subtype: AccountSubtype | null;
    /**
     * If provided, the account will start with this amount as the current balance.
     * @type {number}
     * @memberof OverrideAccounts
     */
    starting_balance: number;
    /**
     * If provided, the account will always have this amount as its  available balance, regardless of current balance or changes in transactions over time.
     * @type {number}
     * @memberof OverrideAccounts
     */
    force_available_balance: number;
    /**
     * ISO-4217 currency code. If provided, the account will be denominated in the given currency. Transactions will also be in this currency by default.
     * @type {string}
     * @memberof OverrideAccounts
     */
    currency: string;
    /**
     *
     * @type {Meta}
     * @memberof OverrideAccounts
     */
    meta: Meta;
    /**
     *
     * @type {Numbers}
     * @memberof OverrideAccounts
     */
    numbers: Numbers;
    /**
     * Specify the list of transactions on the account.
     * @type {Array<TransactionOverride>}
     * @memberof OverrideAccounts
     */
    transactions: Array<TransactionOverride>;
    /**
     *
     * @type {HoldingsOverride}
     * @memberof OverrideAccounts
     */
    holdings?: HoldingsOverride;
    /**
     *
     * @type {InvestmentsTransactionsOverride}
     * @memberof OverrideAccounts
     */
    investment_transactions?: InvestmentsTransactionsOverride;
    /**
     *
     * @type {OwnerOverride}
     * @memberof OverrideAccounts
     */
    identity: OwnerOverride;
    /**
     *
     * @type {LiabilityOverride}
     * @memberof OverrideAccounts
     */
    liability: LiabilityOverride;
    /**
     *
     * @type {InflowModel}
     * @memberof OverrideAccounts
     */
    inflow_model: InflowModel;
    /**
     *
     * @type {IncomeOverride}
     * @memberof OverrideAccounts
     */
    income?: IncomeOverride;
}
/**
 * Data returned from the financial institution about the owner or owners of an account. Only the `names` array must be non-empty.
 * @export
 * @interface Owner
 */
export interface Owner {
    /**
     * A list of names associated with the account by the financial institution. In the case of a joint account, Plaid will make a best effort to report the names of all account holders.  If an Item contains multiple accounts with different owner names, some institutions will report all names associated with the Item in each account\'s `names` array.
     * @type {Array<string>}
     * @memberof Owner
     */
    names: Array<string>;
    /**
     * A list of phone numbers associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
     * @type {Array<PhoneNumber>}
     * @memberof Owner
     */
    phone_numbers: Array<PhoneNumber>;
    /**
     * A list of email addresses associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
     * @type {Array<Email>}
     * @memberof Owner
     */
    emails: Array<Email>;
    /**
     * Data about the various addresses associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
     * @type {Array<Address>}
     * @memberof Owner
     */
    addresses: Array<Address>;
}
/**
 * Data about the owner or owners of an account. Any fields not specified will be filled in with default Sandbox information.
 * @export
 * @interface OwnerOverride
 */
export interface OwnerOverride {
    /**
     * A list of names associated with the account by the financial institution. These should always be the names of individuals, even for business accounts. Note that the same name data will be used for all accounts associated with an Item.
     * @type {Array<string>}
     * @memberof OwnerOverride
     */
    names: Array<string>;
    /**
     * A list of phone numbers associated with the account.
     * @type {Array<PhoneNumber>}
     * @memberof OwnerOverride
     */
    phone_numbers: Array<PhoneNumber>;
    /**
     * A list of email addresses associated with the account.
     * @type {Array<Email>}
     * @memberof OwnerOverride
     */
    emails: Array<Email>;
    /**
     * Data about the various addresses associated with the account.
     * @type {Array<Address>}
     * @memberof OwnerOverride
     */
    addresses: Array<Address>;
}
/**
 * How an asset is owned.  `association`: Ownership by a corporation, partnership, or unincorporated association, including for-profit and not-for-profit organizations. `individual`: Ownership by an individual. `joint`: Joint ownership by multiple parties. `trust`: Ownership by a revocable or irrevocable trust.
 * @export
 * @enum {string}
 */
export declare enum OwnershipType {
    Null = "null",
    Individual = "individual",
    Joint = "joint",
    Association = "association",
    Trust = "trust"
}
/**
 * Field describing whether the associated address is a post office box. Will be `yes` when a P.O. box is detected, `no` when Plaid confirmed the address is not a P.O. box, and `no_data` when Plaid was not able to determine if the address is a P.O. box.
 * @export
 * @enum {string}
 */
export declare enum POBoxStatus {
    Yes = "yes",
    No = "no",
    NoData = "no_data"
}
/**
 * Information about the student\'s eligibility in the Public Service Loan Forgiveness program. This is only returned if the institution is FedLoan (`ins_116527`). Since FedLoan no longer services student loans, this field is no longer returned.
 * @export
 * @interface PSLFStatus
 */
export interface PSLFStatus {
    /**
     * The estimated date borrower will have completed 120 qualifying monthly payments. Returned in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof PSLFStatus
     */
    estimated_eligibility_date: string | null;
    /**
     * The number of qualifying payments that have been made.
     * @type {number}
     * @memberof PSLFStatus
     */
    payments_made: number | null;
    /**
     * The number of qualifying payments remaining.
     * @type {number}
     * @memberof PSLFStatus
     */
    payments_remaining: number | null;
}
/**
 * A collection of objects that define specific parties to a deal. This includes the direct participating parties, such as borrower and seller and the indirect parties such as the credit report provider.
 * @export
 * @interface Parties
 */
export interface Parties {
    /**
     *
     * @type {Array<Party>}
     * @memberof Parties
     */
    PARTY: Array<Party>;
}
/**
 * Request schema for `/partner/customer/create`.
 * @export
 * @interface PartnerCustomerCreateRequest
 */
export interface PartnerCustomerCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PartnerCustomerCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PartnerCustomerCreateRequest
     */
    secret?: string;
    /**
     * The company name of the end customer being created. This will be used to display the end customer in the Plaid Dashboard. It will not be shown to end users.
     * @type {string}
     * @memberof PartnerCustomerCreateRequest
     */
    company_name: string;
    /**
     * Denotes whether or not the partner has completed attestation of diligence for the end customer to be created.
     * @type {boolean}
     * @memberof PartnerCustomerCreateRequest
     */
    is_diligence_attested: boolean;
    /**
     * The products to be enabled for the end customer. If empty or `null`, this field will default to the products enabled for the reseller at the time this endpoint is called.
     * @type {Array<Products>}
     * @memberof PartnerCustomerCreateRequest
     */
    products?: Array<Products>;
    /**
     * If `true`, the end customer\'s default Link customization will be set to match the partner\'s. You can always change the end customer\'s Link customization in the Plaid Dashboard. See the [Link Customization docs](https://plaid.com/docs/link/customization/) for more information.
     * @type {boolean}
     * @memberof PartnerCustomerCreateRequest
     */
    create_link_customization?: boolean;
    /**
     * Base64-encoded representation of the end customer\'s logo. Must be a PNG of size 1024x1024 under 4MB. The logo will be shared with financial institutions and shown to the end user during Link flows. A logo is required if `create_link_customization` is `true`. If `create_link_customization` is `false` and the logo is omitted, the partner\'s logo will be used if one exists, otherwise a stock logo will be used.
     * @type {string}
     * @memberof PartnerCustomerCreateRequest
     */
    logo?: string;
    /**
     * The end customer\'s legal name. This will be shared with financial institutions as part of the OAuth registration process. It will not be shown to end users.
     * @type {string}
     * @memberof PartnerCustomerCreateRequest
     */
    legal_entity_name: string;
    /**
     * The end customer\'s website.
     * @type {string}
     * @memberof PartnerCustomerCreateRequest
     */
    website: string;
    /**
     * The name of the end customer\'s application. This will be shown to end users when they go through the Plaid Link flow. The application name must be unique and cannot match the name of another application already registered with Plaid.
     * @type {string}
     * @memberof PartnerCustomerCreateRequest
     */
    application_name: string;
    /**
     *
     * @type {PartnerEndCustomerTechnicalContact}
     * @memberof PartnerCustomerCreateRequest
     */
    technical_contact?: PartnerEndCustomerTechnicalContact;
    /**
     *
     * @type {PartnerEndCustomerBillingContact}
     * @memberof PartnerCustomerCreateRequest
     */
    billing_contact?: PartnerEndCustomerBillingContact;
    /**
     *
     * @type {PartnerEndCustomerCustomerSupportInfo}
     * @memberof PartnerCustomerCreateRequest
     */
    customer_support_info?: PartnerEndCustomerCustomerSupportInfo;
    /**
     *
     * @type {PartnerEndCustomerAddress}
     * @memberof PartnerCustomerCreateRequest
     */
    address: PartnerEndCustomerAddress;
    /**
     * Denotes whether the partner has forwarded the Plaid bank addendum to the end customer.
     * @type {boolean}
     * @memberof PartnerCustomerCreateRequest
     */
    is_bank_addendum_completed: boolean;
    /**
     *
     * @type {PartnerEndCustomerAssetsUnderManagement}
     * @memberof PartnerCustomerCreateRequest
     */
    assets_under_management?: PartnerEndCustomerAssetsUnderManagement;
    /**
     * A list of URIs indicating the destination(s) where a user can be forwarded after completing the Link flow; used to support OAuth authentication flows when launching Link in the browser or another app. URIs should not contain any query parameters. When used in Production, URIs must use https. To specify any subdomain, use `*` as a wildcard character, e.g. `https://_*.example.com/oauth.html`. To modify redirect URIs for an end customer after creating them, go to the end customer\'s [API page](https://dashboard.plaid.com/team/api) in the Dashboard.
     * @type {Array<string>}
     * @memberof PartnerCustomerCreateRequest
     */
    redirect_uris?: Array<string>;
    /**
     * The unique identifier assigned to a financial institution by regulatory authorities, if applicable. For banks, this is the FDIC Certificate Number. For credit unions, this is the Credit Union Charter Number.
     * @type {string}
     * @memberof PartnerCustomerCreateRequest
     */
    registration_number?: string;
}
/**
 * Response schema for `/partner/customer/create`.
 * @export
 * @interface PartnerCustomerCreateResponse
 */
export interface PartnerCustomerCreateResponse {
    /**
     *
     * @type {PartnerEndCustomerWithSecrets}
     * @memberof PartnerCustomerCreateResponse
     */
    end_customer?: PartnerEndCustomerWithSecrets;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PartnerCustomerCreateResponse
     */
    request_id?: string;
}
/**
 * Request schema for `/partner/customer/enable`.
 * @export
 * @interface PartnerCustomerEnableRequest
 */
export interface PartnerCustomerEnableRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PartnerCustomerEnableRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PartnerCustomerEnableRequest
     */
    secret?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerCustomerEnableRequest
     */
    end_customer_client_id: string;
}
/**
 * Response schema for `/partner/customer/enable`.
 * @export
 * @interface PartnerCustomerEnableResponse
 */
export interface PartnerCustomerEnableResponse {
    /**
     * The end customer\'s secret key for the Production environment.
     * @type {string}
     * @memberof PartnerCustomerEnableResponse
     */
    production_secret?: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PartnerCustomerEnableResponse
     */
    request_id?: string;
}
/**
 * Request schema for `/partner/customer/get`.
 * @export
 * @interface PartnerCustomerGetRequest
 */
export interface PartnerCustomerGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PartnerCustomerGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PartnerCustomerGetRequest
     */
    secret?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerCustomerGetRequest
     */
    end_customer_client_id: string;
}
/**
 * Response schema for `/partner/customer/get`.
 * @export
 * @interface PartnerCustomerGetResponse
 */
export interface PartnerCustomerGetResponse {
    /**
     *
     * @type {PartnerEndCustomer}
     * @memberof PartnerCustomerGetResponse
     */
    end_customer?: PartnerEndCustomer;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PartnerCustomerGetResponse
     */
    request_id?: string;
}
/**
 * Request schema for `/partner/customer/oauth_institutions/get`.
 * @export
 * @interface PartnerCustomerOAuthInstitutionsGetRequest
 */
export interface PartnerCustomerOAuthInstitutionsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PartnerCustomerOAuthInstitutionsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PartnerCustomerOAuthInstitutionsGetRequest
     */
    secret?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerCustomerOAuthInstitutionsGetRequest
     */
    end_customer_client_id: string;
}
/**
 * Response schema for `/partner/customer/oauth_institutions/get`.
 * @export
 * @interface PartnerCustomerOAuthInstitutionsGetResponse
 */
export interface PartnerCustomerOAuthInstitutionsGetResponse {
    /**
     *
     * @type {PartnerEndCustomerFlowdownStatus}
     * @memberof PartnerCustomerOAuthInstitutionsGetResponse
     */
    flowdown_status?: PartnerEndCustomerFlowdownStatus;
    /**
     *
     * @type {PartnerEndCustomerQuestionnaireStatus}
     * @memberof PartnerCustomerOAuthInstitutionsGetResponse
     */
    questionnaire_status?: PartnerEndCustomerQuestionnaireStatus;
    /**
     * The OAuth institutions with which the end customer\'s application is being registered.
     * @type {Array<PartnerEndCustomerOAuthInstitution>}
     * @memberof PartnerCustomerOAuthInstitutionsGetResponse
     */
    institutions?: Array<PartnerEndCustomerOAuthInstitution>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PartnerCustomerOAuthInstitutionsGetResponse
     */
    request_id?: string;
}
/**
 * Request schema for `/partner/customer/remove`.
 * @export
 * @interface PartnerCustomerRemoveRequest
 */
export interface PartnerCustomerRemoveRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PartnerCustomerRemoveRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PartnerCustomerRemoveRequest
     */
    secret?: string;
    /**
     * The `client_id` of the end customer to be removed.
     * @type {string}
     * @memberof PartnerCustomerRemoveRequest
     */
    end_customer_client_id: string;
}
/**
 * Response schema for `/partner/customer/remove`.
 * @export
 * @interface PartnerCustomerRemoveResponse
 */
export interface PartnerCustomerRemoveResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PartnerCustomerRemoveResponse
     */
    request_id?: string;
}
/**
 * The details for an end customer.
 * @export
 * @interface PartnerEndCustomer
 */
export interface PartnerEndCustomer {
    /**
     * The `client_id` of the end customer.
     * @type {string}
     * @memberof PartnerEndCustomer
     */
    client_id?: string;
    /**
     * The company name associated with the end customer.
     * @type {string}
     * @memberof PartnerEndCustomer
     */
    company_name?: string;
    /**
     *
     * @type {PartnerEndCustomerStatus}
     * @memberof PartnerEndCustomer
     */
    status?: PartnerEndCustomerStatus;
}
/**
 * The end customer\'s address.
 * @export
 * @interface PartnerEndCustomerAddress
 */
export interface PartnerEndCustomerAddress {
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerAddress
     */
    city?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerAddress
     */
    street?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerAddress
     */
    region?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerAddress
     */
    postal_code?: string;
    /**
     * ISO-3166-1 alpha-2 country code standard.
     * @type {string}
     * @memberof PartnerEndCustomerAddress
     */
    country_code?: string;
}
/**
 * Assets under management for the given end customer. Required for end customers with monthly service commitments.
 * @export
 * @interface PartnerEndCustomerAssetsUnderManagement
 */
export interface PartnerEndCustomerAssetsUnderManagement {
    /**
     *
     * @type {number}
     * @memberof PartnerEndCustomerAssetsUnderManagement
     */
    amount: number;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerAssetsUnderManagement
     */
    iso_currency_code: string;
}
/**
 * The billing contact for the end customer. Defaults to partner\'s billing contact if omitted.
 * @export
 * @interface PartnerEndCustomerBillingContact
 */
export interface PartnerEndCustomerBillingContact {
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerBillingContact
     */
    given_name?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerBillingContact
     */
    family_name?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerBillingContact
     */
    email?: string;
}
/**
 * This information is public. Users of your app will see this information when managing connections between your app and their bank accounts in Plaid Portal. Defaults to partner\'s customer support info if omitted.
 * @export
 * @interface PartnerEndCustomerCustomerSupportInfo
 */
export interface PartnerEndCustomerCustomerSupportInfo {
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerCustomerSupportInfo
     */
    email?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerCustomerSupportInfo
     */
    phone_number?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerCustomerSupportInfo
     */
    contact_url?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerCustomerSupportInfo
     */
    link_update_url?: string;
}
/**
 * The status of the addendum to the Plaid MSA (\"flowdown\") for the end customer.
 * @export
 * @enum {string}
 */
export declare enum PartnerEndCustomerFlowdownStatus {
    NotStarted = "NOT_STARTED",
    InReview = "IN_REVIEW",
    Negotiation = "NEGOTIATION",
    Complete = "COMPLETE"
}
/**
 * The OAuth registration information for an institution.
 * @export
 * @interface PartnerEndCustomerOAuthInstitution
 */
export interface PartnerEndCustomerOAuthInstitution {
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerOAuthInstitution
     */
    name?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerOAuthInstitution
     */
    institution_id?: string;
    /**
     *
     * @type {PartnerEndCustomerOAuthInstitutionEnvironments}
     * @memberof PartnerEndCustomerOAuthInstitution
     */
    environments?: PartnerEndCustomerOAuthInstitutionEnvironments;
    /**
     * The date on which the end customer\'s application was approved by the institution, or an empty string if their application has not yet been approved.
     * @type {string}
     * @memberof PartnerEndCustomerOAuthInstitution
     */
    production_enablement_date?: string | null;
    /**
     * The date on which non-OAuth Item adds will no longer be supported for this institution, or an empty string if no such date has been set by the institution.
     * @type {string}
     * @memberof PartnerEndCustomerOAuthInstitution
     */
    classic_disablement_date?: string | null;
}
/**
 * The registration status for the end customer\'s application.
 * @export
 * @enum {string}
 */
export declare enum PartnerEndCustomerOAuthInstitutionApplicationStatus {
    NotStarted = "NOT_STARTED",
    Processing = "PROCESSING",
    Approved = "APPROVED",
    Enabled = "ENABLED",
    AttentionRequired = "ATTENTION_REQUIRED"
}
/**
 * Registration statuses by environment.
 * @export
 * @interface PartnerEndCustomerOAuthInstitutionEnvironments
 */
export interface PartnerEndCustomerOAuthInstitutionEnvironments {
    /**
     *
     * @type {PartnerEndCustomerOAuthInstitutionApplicationStatus}
     * @memberof PartnerEndCustomerOAuthInstitutionEnvironments
     */
    development?: PartnerEndCustomerOAuthInstitutionApplicationStatus;
    /**
     *
     * @type {PartnerEndCustomerOAuthInstitutionApplicationStatus}
     * @memberof PartnerEndCustomerOAuthInstitutionEnvironments
     */
    production?: PartnerEndCustomerOAuthInstitutionApplicationStatus;
}
/**
 * The OAuth status of the update
 * @export
 * @enum {string}
 */
export declare enum PartnerEndCustomerOAuthStatusUpdatedValues {
    NotStarted = "not-started",
    Processing = "processing",
    Approved = "approved",
    Enabled = "enabled",
    AttentionRequired = "attention-required"
}
/**
 * The webhook of type `PARTNER` and code `END_CUSTOMER_OAUTH_STATUS_UPDATED` will be fired when a partner\'s end customer has an update on their OAuth registration status with an institution.
 * @export
 * @interface PartnerEndCustomerOAuthStatusUpdatedWebhook
 */
export interface PartnerEndCustomerOAuthStatusUpdatedWebhook {
    /**
     * `PARTNER`
     * @type {string}
     * @memberof PartnerEndCustomerOAuthStatusUpdatedWebhook
     */
    webhook_type: string;
    /**
     * `END_CUSTOMER_OAUTH_STATUS_UPDATED`
     * @type {string}
     * @memberof PartnerEndCustomerOAuthStatusUpdatedWebhook
     */
    webhook_code: string;
    /**
     * The client ID of the end customer
     * @type {string}
     * @memberof PartnerEndCustomerOAuthStatusUpdatedWebhook
     */
    end_customer_client_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof PartnerEndCustomerOAuthStatusUpdatedWebhook
     */
    environment: WebhookEnvironmentValues;
    /**
     * The institution ID
     * @type {string}
     * @memberof PartnerEndCustomerOAuthStatusUpdatedWebhook
     */
    institution_id: string;
    /**
     * The institution name
     * @type {string}
     * @memberof PartnerEndCustomerOAuthStatusUpdatedWebhook
     */
    institution_name: string;
    /**
     *
     * @type {PartnerEndCustomerOAuthStatusUpdatedValues}
     * @memberof PartnerEndCustomerOAuthStatusUpdatedWebhook
     */
    status: PartnerEndCustomerOAuthStatusUpdatedValues;
}
/**
 * The status of the end customer\'s security questionnaire.
 * @export
 * @enum {string}
 */
export declare enum PartnerEndCustomerQuestionnaireStatus {
    NotStarted = "NOT_STARTED",
    Received = "RECEIVED",
    Complete = "COMPLETE"
}
/**
 * The secrets for the newly created end customer.
 * @export
 * @interface PartnerEndCustomerSecrets
 */
export interface PartnerEndCustomerSecrets {
    /**
     * The end customer\'s secret key for the Sandbox environment.
     * @type {string}
     * @memberof PartnerEndCustomerSecrets
     */
    sandbox?: string;
    /**
     * The end customer\'s secret key for the Development environment. The Development environment has been removed.
     * @type {string}
     * @memberof PartnerEndCustomerSecrets
     * @deprecated
     */
    development?: string;
    /**
     * The end customer\'s secret key for the Production environment. The end customer will be provided with a limited number of credits to test in the Production environment before full enablement.
     * @type {string}
     * @memberof PartnerEndCustomerSecrets
     */
    production?: string;
}
/**
 * The status of the given end customer.  `UNDER_REVIEW`: The end customer has been created and enabled in Sandbox and Limited Production. The end customer must be manually reviewed by the Plaid team before it can be enabled in full production, at which point its status will automatically transition to `PENDING_ENABLEMENT` or `DENIED`.  `PENDING_ENABLEMENT`: The end customer is ready to be fully enabled in the Production environment. Call the `/partner/customer/enable` endpoint to enable the end customer in full Production.  `ACTIVE`: The end customer has been fully enabled in all environments.  `DENIED`: The end customer has been created and enabled in Sandbox and Limited Production, but it did not pass review by the Plaid team and therefore cannot be enabled for full Production access. Talk to your Account Manager for more information.
 * @export
 * @enum {string}
 */
export declare enum PartnerEndCustomerStatus {
    UnderReview = "UNDER_REVIEW",
    PendingEnablement = "PENDING_ENABLEMENT",
    Active = "ACTIVE",
    Denied = "DENIED"
}
/**
 * The technical contact for the end customer. Defaults to partner\'s technical contact if omitted.
 * @export
 * @interface PartnerEndCustomerTechnicalContact
 */
export interface PartnerEndCustomerTechnicalContact {
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerTechnicalContact
     */
    given_name?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerTechnicalContact
     */
    family_name?: string;
    /**
     *
     * @type {string}
     * @memberof PartnerEndCustomerTechnicalContact
     */
    email?: string;
}
/**
 * The details for the newly created end customer, including secrets for Sandbox and Limited Production.
 * @export
 * @interface PartnerEndCustomerWithSecrets
 */
export interface PartnerEndCustomerWithSecrets {
    /**
     * The `client_id` of the end customer.
     * @type {string}
     * @memberof PartnerEndCustomerWithSecrets
     */
    client_id?: string;
    /**
     * The company name associated with the end customer.
     * @type {string}
     * @memberof PartnerEndCustomerWithSecrets
     */
    company_name?: string;
    /**
     *
     * @type {PartnerEndCustomerStatus}
     * @memberof PartnerEndCustomerWithSecrets
     */
    status?: PartnerEndCustomerStatus;
    /**
     *
     * @type {PartnerEndCustomerSecrets}
     * @memberof PartnerEndCustomerWithSecrets
     */
    secrets?: PartnerEndCustomerSecrets;
}
/**
 *
 * @export
 * @interface PartnerEndCustomerWithSecretsAllOf
 */
export interface PartnerEndCustomerWithSecretsAllOf {
    /**
     *
     * @type {PartnerEndCustomerSecrets}
     * @memberof PartnerEndCustomerWithSecretsAllOf
     */
    secrets?: PartnerEndCustomerSecrets;
}
/**
 * A collection of information about a single party to a transaction. Included direct participants like the borrower and seller as well as indirect participants such as the flood certificate provider.
 * @export
 * @interface Party
 */
export interface Party {
    /**
     *
     * @type {PartyIndividual}
     * @memberof Party
     */
    INDIVIDUAL: PartyIndividual;
    /**
     *
     * @type {Roles}
     * @memberof Party
     */
    ROLES: Roles;
    /**
     *
     * @type {TaxpayerIdentifiers}
     * @memberof Party
     */
    TAXPAYER_IDENTIFIERS: TaxpayerIdentifiers;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface PartyIndividual
 */
export interface PartyIndividual {
    /**
     *
     * @type {IndividualName}
     * @memberof PartyIndividual
     */
    NAME: IndividualName;
}
/**
 * A value from a MISMO defined list that identifies the role that the party plays in the transaction. Parties may be either a person or legal entity. A party may play multiple roles in a transaction.A value from a MISMO defined list that identifies the role that the party plays in the transaction. Parties may be either a person or legal entity. A party may play multiple roles in a transaction.
 * @export
 * @enum {string}
 */
export declare enum PartyRoleType {
    Borrower = "Borrower"
}
/**
 * An object representing a monetary amount.
 * @export
 * @interface Pay
 */
export interface Pay {
    /**
     * A numerical amount of a specific currency.
     * @type {number}
     * @memberof Pay
     */
    amount?: number | null;
    /**
     * Currency code, e.g. USD
     * @type {string}
     * @memberof Pay
     */
    currency?: string | null;
}
/**
 * The frequency of the pay period.
 * @export
 * @interface PayFrequency
 */
export interface PayFrequency {
    /**
     *
     * @type {PayFrequencyValue}
     * @memberof PayFrequency
     */
    value: PayFrequencyValue;
    /**
     *
     * @type {VerificationStatus}
     * @memberof PayFrequency
     */
    verification_status: VerificationStatus;
}
/**
 * The frequency of the pay period.
 * @export
 * @enum {string}
 */
export declare enum PayFrequencyValue {
    Monthly = "monthly",
    Semimonthly = "semimonthly",
    Weekly = "weekly",
    Biweekly = "biweekly",
    Unknown = "unknown",
    Null = "null"
}
/**
 * Details about the pay period.
 * @export
 * @interface PayPeriodDetails
 */
export interface PayPeriodDetails {
    /**
     * The amount of the paycheck.
     * @type {number}
     * @memberof PayPeriodDetails
     */
    check_amount?: number | null;
    /**
     *
     * @type {Array<DistributionBreakdown>}
     * @memberof PayPeriodDetails
     */
    distribution_breakdown?: Array<DistributionBreakdown>;
    /**
     * The pay period end date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: \"yyyy-mm-dd\".
     * @type {string}
     * @memberof PayPeriodDetails
     */
    end_date?: string | null;
    /**
     * Total earnings before tax/deductions.
     * @type {number}
     * @memberof PayPeriodDetails
     */
    gross_earnings?: number | null;
    /**
     * The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof PayPeriodDetails
     */
    pay_date?: string | null;
    /**
     *
     * @type {PayPeriodDetailsPayFrequency}
     * @memberof PayPeriodDetails
     */
    pay_frequency?: PayPeriodDetailsPayFrequency | null;
    /**
     * The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof PayPeriodDetails
     * @deprecated
     */
    pay_day?: string | null;
    /**
     * The pay period start date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: \"yyyy-mm-dd\".
     * @type {string}
     * @memberof PayPeriodDetails
     */
    start_date?: string | null;
}
/**
 * The frequency at which an individual is paid.
 * @export
 * @enum {string}
 */
export declare enum PayPeriodDetailsPayFrequency {
    PayFrequencyUnknown = "PAY_FREQUENCY_UNKNOWN",
    PayFrequencyWeekly = "PAY_FREQUENCY_WEEKLY",
    PayFrequencyBiweekly = "PAY_FREQUENCY_BIWEEKLY",
    PayFrequencySemimonthly = "PAY_FREQUENCY_SEMIMONTHLY",
    PayFrequencyMonthly = "PAY_FREQUENCY_MONTHLY",
    Null = "null"
}
/**
 * An object representing the deduction line items for the pay period
 * @export
 * @interface PayStubDeductionsBreakdown
 */
export interface PayStubDeductionsBreakdown {
    /**
     * Raw amount of the deduction
     * @type {number}
     * @memberof PayStubDeductionsBreakdown
     */
    current_amount: number | null;
    /**
     * Description of the deduction line item
     * @type {string}
     * @memberof PayStubDeductionsBreakdown
     */
    description: string | null;
    /**
     * The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof PayStubDeductionsBreakdown
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the line item. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof PayStubDeductionsBreakdown
     */
    unofficial_currency_code: string | null;
    /**
     * The year-to-date amount of the deduction
     * @type {number}
     * @memberof PayStubDeductionsBreakdown
     */
    ytd_amount: number | null;
}
/**
 * An object representing the total deductions for the pay period
 * @export
 * @interface PayStubDeductionsTotal
 */
export interface PayStubDeductionsTotal {
    /**
     * Raw amount of the deduction
     * @type {number}
     * @memberof PayStubDeductionsTotal
     */
    current_amount: number | null;
    /**
     * The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof PayStubDeductionsTotal
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the line item. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof PayStubDeductionsTotal
     */
    unofficial_currency_code: string | null;
    /**
     * The year-to-date total amount of the deductions
     * @type {number}
     * @memberof PayStubDeductionsTotal
     */
    ytd_amount: number | null;
}
/**
 * Information about the accounts that the payment was distributed to.
 * @export
 * @interface PayStubDistributionBreakdown
 */
export interface PayStubDistributionBreakdown {
    /**
     * Name of the account for the given distribution.
     * @type {string}
     * @memberof PayStubDistributionBreakdown
     */
    account_name: string | null;
    /**
     * The name of the bank that the payment is being deposited to.
     * @type {string}
     * @memberof PayStubDistributionBreakdown
     */
    bank_name: string | null;
    /**
     * The amount distributed to this account.
     * @type {number}
     * @memberof PayStubDistributionBreakdown
     */
    current_amount: number | null;
    /**
     * The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof PayStubDistributionBreakdown
     */
    iso_currency_code: string | null;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number.
     * @type {string}
     * @memberof PayStubDistributionBreakdown
     */
    mask: string | null;
    /**
     * Type of the account that the paystub was sent to (e.g. \'checking\').
     * @type {string}
     * @memberof PayStubDistributionBreakdown
     */
    type: string | null;
    /**
     * The unofficial currency code associated with the net pay. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof PayStubDistributionBreakdown
     */
    unofficial_currency_code: string | null;
}
/**
 * An object representing the earnings line items for the pay period.
 * @export
 * @interface PayStubEarningsBreakdown
 */
export interface PayStubEarningsBreakdown {
    /**
     * Commonly used term to describe the earning line item.
     * @type {string}
     * @memberof PayStubEarningsBreakdown
     */
    canonical_description: string | null;
    /**
     * Raw amount of the earning line item.
     * @type {number}
     * @memberof PayStubEarningsBreakdown
     */
    current_amount: number | null;
    /**
     * Description of the earning line item.
     * @type {string}
     * @memberof PayStubEarningsBreakdown
     */
    description: string | null;
    /**
     * Number of hours applicable for this earning.
     * @type {number}
     * @memberof PayStubEarningsBreakdown
     */
    hours: number | null;
    /**
     * The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof PayStubEarningsBreakdown
     */
    iso_currency_code: string | null;
    /**
     * Hourly rate applicable for this earning.
     * @type {number}
     * @memberof PayStubEarningsBreakdown
     */
    rate: number | null;
    /**
     * The unofficial currency code associated with the line item. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof PayStubEarningsBreakdown
     */
    unofficial_currency_code: string | null;
    /**
     * The year-to-date amount of the deduction.
     * @type {number}
     * @memberof PayStubEarningsBreakdown
     */
    ytd_amount: number | null;
}
/**
 * An object representing both the current pay period and year to date amount for an earning category.
 * @export
 * @interface PayStubEarningsTotal
 */
export interface PayStubEarningsTotal {
    /**
     * Total amount of the earnings for this pay period.
     * @type {number}
     * @memberof PayStubEarningsTotal
     */
    current_amount: number | null;
    /**
     * Total number of hours worked for this pay period.
     * @type {number}
     * @memberof PayStubEarningsTotal
     */
    hours: number | null;
    /**
     * The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof PayStubEarningsTotal
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the security. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof PayStubEarningsTotal
     */
    unofficial_currency_code: string | null;
    /**
     * The total year-to-date amount of the earnings.
     * @type {number}
     * @memberof PayStubEarningsTotal
     */
    ytd_amount: number | null;
}
/**
 * Details about the pay period.
 * @export
 * @interface PayStubPayPeriodDetails
 */
export interface PayStubPayPeriodDetails {
    /**
     * The amount of the paycheck.
     * @type {number}
     * @memberof PayStubPayPeriodDetails
     */
    pay_amount: number | null;
    /**
     *
     * @type {Array<PayStubDistributionBreakdown>}
     * @memberof PayStubPayPeriodDetails
     */
    distribution_breakdown: Array<PayStubDistributionBreakdown>;
    /**
     * The date on which the pay period ended, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof PayStubPayPeriodDetails
     */
    end_date: string | null;
    /**
     * Total earnings before tax/deductions.
     * @type {number}
     * @memberof PayStubPayPeriodDetails
     */
    gross_earnings: number | null;
    /**
     * The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof PayStubPayPeriodDetails
     */
    iso_currency_code: string | null;
    /**
     * The date on which the pay stub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof PayStubPayPeriodDetails
     */
    pay_date: string | null;
    /**
     * The frequency at which an individual is paid.
     * @type {string}
     * @memberof PayStubPayPeriodDetails
     */
    pay_frequency: string | null;
    /**
     *
     * @type {CreditPayStubPayBasisType}
     * @memberof PayStubPayPeriodDetails
     */
    pay_basis?: CreditPayStubPayBasisType;
    /**
     * The date on which the pay period started, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof PayStubPayPeriodDetails
     */
    start_date: string | null;
    /**
     * The unofficial currency code associated with the net pay. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof PayStubPayPeriodDetails
     */
    unofficial_currency_code: string | null;
}
/**
 * Taxpayer ID of the individual receiving the paystub.
 * @export
 * @interface PayStubTaxpayerID
 */
export interface PayStubTaxpayerID {
    /**
     * Type of ID, e.g. \'SSN\'.
     * @type {string}
     * @memberof PayStubTaxpayerID
     */
    id_type: string | null;
    /**
     * ID mask; i.e. last 4 digits of the taxpayer ID.
     * @type {string}
     * @memberof PayStubTaxpayerID
     */
    id_mask: string | null;
}
/**
 * The amount and currency of a payment
 * @export
 * @interface PaymentAmount
 */
export interface PaymentAmount {
    /**
     *
     * @type {PaymentAmountCurrency}
     * @memberof PaymentAmount
     */
    currency: PaymentAmountCurrency;
    /**
     * The amount of the payment. Must contain at most two digits of precision e.g. `1.23`. Minimum accepted value is `1`.
     * @type {number}
     * @memberof PaymentAmount
     */
    value: number;
}
/**
 * The ISO-4217 currency code of the payment. For standing orders and payment consents, `\"GBP\"` must be used. For Poland, Denmark, Sweden and Norway, only the local currency is currently supported.
 * @export
 * @enum {string}
 */
export declare enum PaymentAmountCurrency {
    Gbp = "GBP",
    Eur = "EUR",
    Pln = "PLN",
    Sek = "SEK",
    Dkk = "DKK",
    Nok = "NOK"
}
/**
 * The amount and currency of a payment
 * @export
 * @interface PaymentAmountNullable
 */
export interface PaymentAmountNullable {
    /**
     *
     * @type {PaymentAmountCurrency}
     * @memberof PaymentAmountNullable
     */
    currency: PaymentAmountCurrency;
    /**
     * The amount of the payment. Must contain at most two digits of precision e.g. `1.23`.
     * @type {number}
     * @memberof PaymentAmountNullable
     */
    value: number;
}
/**
 * The amount and currency of a payment
 * @export
 * @interface PaymentAmountRefunded
 */
export interface PaymentAmountRefunded {
    /**
     *
     * @type {PaymentAmountCurrency}
     * @memberof PaymentAmountRefunded
     */
    currency: PaymentAmountCurrency;
    /**
     * The amount of the payment. Must contain at most two digits of precision e.g. `1.23`.
     * @type {number}
     * @memberof PaymentAmountRefunded
     */
    value: number;
}
/**
 * The amount and currency of a payment
 * @export
 * @interface PaymentAmountToRefund
 */
export interface PaymentAmountToRefund {
    /**
     *
     * @type {PaymentAmountCurrency}
     * @memberof PaymentAmountToRefund
     */
    currency: PaymentAmountCurrency;
    /**
     * The amount of the payment. Must contain at most two digits of precision e.g. `1.23`.
     * @type {number}
     * @memberof PaymentAmountToRefund
     */
    value: number;
}
/**
 * The channel used to make a payment. `online:` transactions that took place online.  `in store:` transactions that were made at a physical location.  `other:` transactions that relate to banks, e.g. fees or deposits.
 * @export
 * @enum {string}
 */
export declare enum PaymentChannel {
    Online = "online",
    InStore = "in store",
    Other = "other"
}
/**
 * Maximum amount of a single payment initiated using the payment consent.
 * @export
 * @interface PaymentConsentMaxPaymentAmount
 */
export interface PaymentConsentMaxPaymentAmount {
    /**
     *
     * @type {PaymentAmountCurrency}
     * @memberof PaymentConsentMaxPaymentAmount
     */
    currency: PaymentAmountCurrency;
    /**
     * The amount of the payment. Must contain at most two digits of precision e.g. `1.23`. Minimum accepted value is `1`.
     * @type {number}
     * @memberof PaymentConsentMaxPaymentAmount
     */
    value: number;
}
/**
 * Where the payment consent period should start.  If the institution is Monzo, only `CONSENT` alignments are supported.  `CALENDAR`: line up with a calendar.  `CONSENT`: on the date of consent creation.
 * @export
 * @enum {string}
 */
export declare enum PaymentConsentPeriodicAlignment {
    Calendar = "CALENDAR",
    Consent = "CONSENT"
}
/**
 * Defines consent payments limitations per period.
 * @export
 * @interface PaymentConsentPeriodicAmount
 */
export interface PaymentConsentPeriodicAmount {
    /**
     *
     * @type {PaymentConsentPeriodicAmountAmount}
     * @memberof PaymentConsentPeriodicAmount
     */
    amount: PaymentConsentPeriodicAmountAmount;
    /**
     *
     * @type {PaymentConsentPeriodicInterval}
     * @memberof PaymentConsentPeriodicAmount
     */
    interval: PaymentConsentPeriodicInterval;
    /**
     *
     * @type {PaymentConsentPeriodicAlignment}
     * @memberof PaymentConsentPeriodicAmount
     */
    alignment: PaymentConsentPeriodicAlignment;
}
/**
 * Maximum cumulative amount for all payments in the specified interval.
 * @export
 * @interface PaymentConsentPeriodicAmountAmount
 */
export interface PaymentConsentPeriodicAmountAmount {
    /**
     *
     * @type {PaymentAmountCurrency}
     * @memberof PaymentConsentPeriodicAmountAmount
     */
    currency: PaymentAmountCurrency;
    /**
     * The amount of the payment. Must contain at most two digits of precision e.g. `1.23`. Minimum accepted value is `1`.
     * @type {number}
     * @memberof PaymentConsentPeriodicAmountAmount
     */
    value: number;
}
/**
 * Payment consent periodic interval.
 * @export
 * @enum {string}
 */
export declare enum PaymentConsentPeriodicInterval {
    Day = "DAY",
    Week = "WEEK",
    Month = "MONTH",
    Year = "YEAR"
}
/**
 * Life span for the payment consent. After the `to` date the payment consent expires and can no longer be used for payment initiation.
 * @export
 * @interface PaymentConsentValidDateTime
 */
export interface PaymentConsentValidDateTime {
    /**
     * The date and time from which the consent should be active, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof PaymentConsentValidDateTime
     */
    from?: string | null;
    /**
     * The date and time at which the consent expires, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof PaymentConsentValidDateTime
     */
    to?: string | null;
}
/**
 * The optional address of the payment recipient\'s bank account. Required by most institutions outside of the UK.
 * @export
 * @interface PaymentInitiationAddress
 */
export interface PaymentInitiationAddress {
    /**
     * An array of length 1-2 representing the street address where the recipient is located. Maximum of 70 characters.
     * @type {Array<string>}
     * @memberof PaymentInitiationAddress
     */
    street: Array<string>;
    /**
     * The city where the recipient is located. Maximum of 35 characters.
     * @type {string}
     * @memberof PaymentInitiationAddress
     */
    city: string;
    /**
     * The postal code where the recipient is located. Maximum of 16 characters.
     * @type {string}
     * @memberof PaymentInitiationAddress
     */
    postal_code: string;
    /**
     * The ISO 3166-1 alpha-2 country code where the recipient is located.
     * @type {string}
     * @memberof PaymentInitiationAddress
     */
    country: string;
}
/**
 * PaymentInitiationConsent defines a payment initiation consent.
 * @export
 * @interface PaymentInitiationConsent
 */
export interface PaymentInitiationConsent {
    /**
     * The consent ID.
     * @type {string}
     * @memberof PaymentInitiationConsent
     */
    consent_id: string;
    /**
     *
     * @type {PaymentInitiationConsentStatus}
     * @memberof PaymentInitiationConsent
     */
    status: PaymentInitiationConsentStatus;
    /**
     * Consent creation timestamp, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof PaymentInitiationConsent
     */
    created_at: string;
    /**
     * The ID of the recipient the payment consent is for.
     * @type {string}
     * @memberof PaymentInitiationConsent
     */
    recipient_id: string;
    /**
     * A reference for the payment consent.
     * @type {string}
     * @memberof PaymentInitiationConsent
     */
    reference: string;
    /**
     *
     * @type {PaymentInitiationConsentConstraints}
     * @memberof PaymentInitiationConsent
     */
    constraints: PaymentInitiationConsentConstraints;
    /**
     * Deprecated, use the \'type\' field instead.
     * @type {Array<PaymentInitiationConsentScope>}
     * @memberof PaymentInitiationConsent
     * @deprecated
     */
    scopes?: Array<PaymentInitiationConsentScope>;
    /**
     *
     * @type {PaymentInitiationConsentType}
     * @memberof PaymentInitiationConsent
     */
    type?: PaymentInitiationConsentType;
    /**
     *
     * @type {ExternalPaymentRefundDetails}
     * @memberof PaymentInitiationConsent
     */
    payer_details?: ExternalPaymentRefundDetails | null;
}
/**
 * Limitations that will be applied to payments initiated using the payment consent.
 * @export
 * @interface PaymentInitiationConsentConstraints
 */
export interface PaymentInitiationConsentConstraints {
    /**
     *
     * @type {PaymentConsentValidDateTime}
     * @memberof PaymentInitiationConsentConstraints
     */
    valid_date_time?: PaymentConsentValidDateTime | null;
    /**
     *
     * @type {PaymentConsentMaxPaymentAmount}
     * @memberof PaymentInitiationConsentConstraints
     */
    max_payment_amount: PaymentConsentMaxPaymentAmount;
    /**
     * A list of amount limitations per period of time.
     * @type {Array<PaymentConsentPeriodicAmount>}
     * @memberof PaymentInitiationConsentConstraints
     */
    periodic_amounts: Array<PaymentConsentPeriodicAmount>;
}
/**
 * PaymentInitiationConsentCreateRequest defines the request schema for `/payment_initiation/consent/create`
 * @export
 * @interface PaymentInitiationConsentCreateRequest
 */
export interface PaymentInitiationConsentCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationConsentCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationConsentCreateRequest
     */
    secret?: string;
    /**
     * The ID of the recipient the payment consent is for. The created consent can be used to transfer funds to this recipient only.
     * @type {string}
     * @memberof PaymentInitiationConsentCreateRequest
     */
    recipient_id: string;
    /**
     * A reference for the payment consent. This must be an alphanumeric string with at most 18 characters and must not contain any special characters.
     * @type {string}
     * @memberof PaymentInitiationConsentCreateRequest
     */
    reference: string;
    /**
     * An array of payment consent scopes.
     * @type {Set<PaymentInitiationConsentScope>}
     * @memberof PaymentInitiationConsentCreateRequest
     * @deprecated
     */
    scopes?: Set<PaymentInitiationConsentScope>;
    /**
     *
     * @type {PaymentInitiationConsentType}
     * @memberof PaymentInitiationConsentCreateRequest
     */
    type?: PaymentInitiationConsentType;
    /**
     *
     * @type {PaymentInitiationConsentConstraints}
     * @memberof PaymentInitiationConsentCreateRequest
     */
    constraints: PaymentInitiationConsentConstraints;
    /**
     *
     * @type {ExternalPaymentInitiationConsentOptions}
     * @memberof PaymentInitiationConsentCreateRequest
     * @deprecated
     */
    options?: ExternalPaymentInitiationConsentOptions | null;
    /**
     *
     * @type {PaymentInitiationConsentPayerDetails}
     * @memberof PaymentInitiationConsentCreateRequest
     */
    payer_details?: PaymentInitiationConsentPayerDetails | null;
}
/**
 * PaymentInitiationConsentCreateResponse defines the response schema for `/payment_initiation/consent/create`
 * @export
 * @interface PaymentInitiationConsentCreateResponse
 */
export interface PaymentInitiationConsentCreateResponse {
    /**
     * A unique ID identifying the payment consent.
     * @type {string}
     * @memberof PaymentInitiationConsentCreateResponse
     */
    consent_id: string;
    /**
     *
     * @type {PaymentInitiationConsentStatus}
     * @memberof PaymentInitiationConsentCreateResponse
     */
    status: PaymentInitiationConsentStatus;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationConsentCreateResponse
     */
    request_id: string;
}
/**
 * PaymentInitiationConsentGetRequest defines the request schema for `/payment_initiation/consent/get`
 * @export
 * @interface PaymentInitiationConsentGetRequest
 */
export interface PaymentInitiationConsentGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationConsentGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationConsentGetRequest
     */
    secret?: string;
    /**
     * The `consent_id` returned from `/payment_initiation/consent/create`.
     * @type {string}
     * @memberof PaymentInitiationConsentGetRequest
     */
    consent_id: string;
}
/**
 * PaymentInitiationConsentGetResponse defines the response schema for `/payment_initation/consent/get`
 * @export
 * @interface PaymentInitiationConsentGetResponse
 */
export interface PaymentInitiationConsentGetResponse {
    /**
     * The consent ID.
     * @type {string}
     * @memberof PaymentInitiationConsentGetResponse
     */
    consent_id: string;
    /**
     *
     * @type {PaymentInitiationConsentStatus}
     * @memberof PaymentInitiationConsentGetResponse
     */
    status: PaymentInitiationConsentStatus;
    /**
     * Consent creation timestamp, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof PaymentInitiationConsentGetResponse
     */
    created_at: string;
    /**
     * The ID of the recipient the payment consent is for.
     * @type {string}
     * @memberof PaymentInitiationConsentGetResponse
     */
    recipient_id: string;
    /**
     * A reference for the payment consent.
     * @type {string}
     * @memberof PaymentInitiationConsentGetResponse
     */
    reference: string;
    /**
     *
     * @type {PaymentInitiationConsentConstraints}
     * @memberof PaymentInitiationConsentGetResponse
     */
    constraints: PaymentInitiationConsentConstraints;
    /**
     * Deprecated, use the \'type\' field instead.
     * @type {Array<PaymentInitiationConsentScope>}
     * @memberof PaymentInitiationConsentGetResponse
     * @deprecated
     */
    scopes?: Array<PaymentInitiationConsentScope>;
    /**
     *
     * @type {PaymentInitiationConsentType}
     * @memberof PaymentInitiationConsentGetResponse
     */
    type?: PaymentInitiationConsentType;
    /**
     *
     * @type {ExternalPaymentRefundDetails}
     * @memberof PaymentInitiationConsentGetResponse
     */
    payer_details?: ExternalPaymentRefundDetails | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationConsentGetResponse
     */
    request_id: string;
}
/**
 * An object representing the payment consent payer details.  Payer `name` and account `numbers` are required to lock the account to which the consent can be created.
 * @export
 * @interface PaymentInitiationConsentPayerDetails
 */
export interface PaymentInitiationConsentPayerDetails {
    /**
     * The name of the payer as it appears in their bank account
     * @type {string}
     * @memberof PaymentInitiationConsentPayerDetails
     */
    name: string;
    /**
     *
     * @type {PaymentInitiationConsentPayerNumbers}
     * @memberof PaymentInitiationConsentPayerDetails
     */
    numbers: PaymentInitiationConsentPayerNumbers;
    /**
     *
     * @type {PaymentInitiationAddress}
     * @memberof PaymentInitiationConsentPayerDetails
     */
    address?: PaymentInitiationAddress | null;
    /**
     * The payer\'s birthdate, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format.
     * @type {string}
     * @memberof PaymentInitiationConsentPayerDetails
     */
    date_of_birth?: string | null;
    /**
     * The payer\'s phone numbers in E.164 format: +{countrycode}{number}
     * @type {Array<string>}
     * @memberof PaymentInitiationConsentPayerDetails
     */
    phone_numbers?: Array<string>;
    /**
     * The payer\'s emails
     * @type {Array<string>}
     * @memberof PaymentInitiationConsentPayerDetails
     */
    emails?: Array<string>;
}
/**
 * The counterparty\'s bank account numbers. Exactly one of IBAN or BACS data is required.
 * @export
 * @interface PaymentInitiationConsentPayerNumbers
 */
export interface PaymentInitiationConsentPayerNumbers {
    /**
     *
     * @type {PaymentInitiationOptionalRestrictionBacs}
     * @memberof PaymentInitiationConsentPayerNumbers
     */
    bacs?: PaymentInitiationOptionalRestrictionBacs | null;
    /**
     *
     * @type {NumbersIBANNullable}
     * @memberof PaymentInitiationConsentPayerNumbers
     */
    iban?: NumbersIBANNullable | null;
}
/**
 * PaymentInitiationConsentPaymentExecuteRequest defines the request schema for `/payment_initiation/consent/payment/execute`
 * @export
 * @interface PaymentInitiationConsentPaymentExecuteRequest
 */
export interface PaymentInitiationConsentPaymentExecuteRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationConsentPaymentExecuteRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationConsentPaymentExecuteRequest
     */
    secret?: string;
    /**
     * The consent ID.
     * @type {string}
     * @memberof PaymentInitiationConsentPaymentExecuteRequest
     */
    consent_id: string;
    /**
     *
     * @type {PaymentAmount}
     * @memberof PaymentInitiationConsentPaymentExecuteRequest
     */
    amount: PaymentAmount;
    /**
     * A random key provided by the client, per unique consent payment. Maximum of 128 characters.  The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. If a request to execute a consent payment fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single payment is created. If the request was successfully processed, it will prevent any payment that uses the same idempotency key, and was received within 48 hours of the first request, from being processed.
     * @type {string}
     * @memberof PaymentInitiationConsentPaymentExecuteRequest
     */
    idempotency_key: string;
    /**
     * A reference for the payment. This must be an alphanumeric string with at most 18 characters and must not contain any special characters (since not all institutions support them). If not provided, Plaid will automatically fall back to the reference from consent. In order to track settlement via Payment Confirmation, each payment must have a unique reference. If the reference provided through the API is not unique, Plaid will adjust it. Some institutions may limit the reference to less than 18 characters. If necessary, Plaid will adjust the reference by truncating it to fit the institution\'s requirements. Both the originally provided and automatically adjusted references (if any) can be found in the `reference` and `adjusted_reference` fields, respectively.
     * @type {string}
     * @memberof PaymentInitiationConsentPaymentExecuteRequest
     */
    reference?: string | null;
    /**
     *
     * @type {PaymentInitiationConsentScope & string}
     * @memberof PaymentInitiationConsentPaymentExecuteRequest
     * @deprecated
     */
    scope?: PaymentInitiationConsentScope & string;
    /**
     *
     * @type {PaymentInitiationConsentProcessingMode}
     * @memberof PaymentInitiationConsentPaymentExecuteRequest
     */
    processing_mode?: PaymentInitiationConsentProcessingMode;
}
/**
 * PaymentInitiationConsentPaymentExecuteResponse defines the response schema for `/payment_initiation/consent/payment/execute`
 * @export
 * @interface PaymentInitiationConsentPaymentExecuteResponse
 */
export interface PaymentInitiationConsentPaymentExecuteResponse {
    /**
     * A unique ID identifying the payment
     * @type {string}
     * @memberof PaymentInitiationConsentPaymentExecuteResponse
     */
    payment_id: string;
    /**
     *
     * @type {PaymentInitiationPaymentStatus}
     * @memberof PaymentInitiationConsentPaymentExecuteResponse
     */
    status: PaymentInitiationPaymentStatus;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationConsentPaymentExecuteResponse
     */
    request_id: string;
}
/**
 * Decides the mode under which the payment processing should be performed, using `IMMEDIATE` as default.  `IMMEDIATE`: Will immediately execute the payment, waiting for a response from the ASPSP before returning the result of the payment initiation. This is ideal for user-present flows.   `ASYNC`: Will accept a payment execution request and schedule it for processing, immediately returning the new `payment_id`. Listen for webhooks or use the [`/payment_initiation/payment/get`](https://plaid.com/docs/api/products/payment-initiation/#payment_initiationpaymentget) endpoint to obtain updates on the payment status. This is ideal for non user-present flows.
 * @export
 * @enum {string}
 */
export declare enum PaymentInitiationConsentProcessingMode {
    Async = "ASYNC",
    Immediate = "IMMEDIATE"
}
/**
 * PaymentInitiationConsentRevokeRequest defines the request schema for `/payment_initiation/consent/revoke`
 * @export
 * @interface PaymentInitiationConsentRevokeRequest
 */
export interface PaymentInitiationConsentRevokeRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationConsentRevokeRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationConsentRevokeRequest
     */
    secret?: string;
    /**
     * The consent ID.
     * @type {string}
     * @memberof PaymentInitiationConsentRevokeRequest
     */
    consent_id: string;
}
/**
 * PaymentInitiationConsentRevokeResponse defines the response schema for `/payment_initation/consent/revoke`
 * @export
 * @interface PaymentInitiationConsentRevokeResponse
 */
export interface PaymentInitiationConsentRevokeResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationConsentRevokeResponse
     */
    request_id?: string;
}
/**
 * This field is deprecated in favor of the consent `type` field. Consents are required to have a single type.   Payment consent scope. Defines possible directions for payments made with the given consent.  `ME_TO_ME`: Allows moving money between accounts owned by the same user.  `EXTERNAL`: Allows initiating payments from the user\'s account to third parties.
 * @export
 * @enum {string}
 */
export declare enum PaymentInitiationConsentScope {
    MeToMe = "ME_TO_ME",
    External = "EXTERNAL"
}
/**
 * The status of the payment consent.  `UNAUTHORISED`: Consent created, but requires user authorisation.  `REJECTED`: Consent authorisation was rejected by the user and/or the bank.  `AUTHORISED`: Consent is active and ready to be used.  `REVOKED`: Consent has been revoked and can no longer be used.  `EXPIRED`: Consent is no longer valid.
 * @export
 * @enum {string}
 */
export declare enum PaymentInitiationConsentStatus {
    Unauthorised = "UNAUTHORISED",
    Authorised = "AUTHORISED",
    Revoked = "REVOKED",
    Rejected = "REJECTED",
    Expired = "EXPIRED"
}
/**
 * Fired when the status of a payment consent has changed.
 * @export
 * @interface PaymentInitiationConsentStatusUpdateWebhook
 */
export interface PaymentInitiationConsentStatusUpdateWebhook {
    /**
     * `PAYMENT_INITIATION`
     * @type {string}
     * @memberof PaymentInitiationConsentStatusUpdateWebhook
     */
    webhook_type: string;
    /**
     * `CONSENT_STATUS_UPDATE`
     * @type {string}
     * @memberof PaymentInitiationConsentStatusUpdateWebhook
     */
    webhook_code: string;
    /**
     * The `id` for the consent being updated
     * @type {string}
     * @memberof PaymentInitiationConsentStatusUpdateWebhook
     */
    consent_id: string;
    /**
     *
     * @type {PaymentInitiationConsentStatus}
     * @memberof PaymentInitiationConsentStatusUpdateWebhook
     */
    old_status: PaymentInitiationConsentStatus;
    /**
     *
     * @type {PaymentInitiationConsentStatus}
     * @memberof PaymentInitiationConsentStatusUpdateWebhook
     */
    new_status: PaymentInitiationConsentStatus;
    /**
     * The timestamp of the update, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`
     * @type {string}
     * @memberof PaymentInitiationConsentStatusUpdateWebhook
     */
    timestamp: string;
    /**
     *
     * @type {PlaidError}
     * @memberof PaymentInitiationConsentStatusUpdateWebhook
     */
    error?: PlaidError | null;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof PaymentInitiationConsentStatusUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Payment consent type. Defines possible use case for payments made with the given consent.  `SWEEPING`: Allows moving money between accounts owned by the same user.  `COMMERCIAL`: Allows initiating payments from the user\'s account to third parties.
 * @export
 * @enum {string}
 */
export declare enum PaymentInitiationConsentType {
    Sweeping = "SWEEPING",
    Commercial = "COMMERCIAL"
}
/**
 * Metadata that captures what specific payment configurations an institution supports when making Payment Initiation requests.
 * @export
 * @interface PaymentInitiationMetadata
 */
export interface PaymentInitiationMetadata {
    /**
     * Indicates whether the institution supports payments from a different country.
     * @type {boolean}
     * @memberof PaymentInitiationMetadata
     */
    supports_international_payments: boolean;
    /**
     * Indicates whether the institution supports SEPA Instant payments.
     * @type {boolean}
     * @memberof PaymentInitiationMetadata
     */
    supports_sepa_instant: boolean;
    /**
     * A mapping of currency to maximum payment amount (denominated in the smallest unit of currency) supported by the institution.  Example: `{\"GBP\": \"10000\"}`
     * @type {{ [key: string]: string; }}
     * @memberof PaymentInitiationMetadata
     */
    maximum_payment_amount: {
        [key: string]: string;
    };
    /**
     * Indicates whether the institution supports returning refund details when initiating a payment.
     * @type {boolean}
     * @memberof PaymentInitiationMetadata
     */
    supports_refund_details: boolean;
    /**
     *
     * @type {PaymentInitiationStandingOrderMetadata}
     * @memberof PaymentInitiationMetadata
     */
    standing_order_metadata: PaymentInitiationStandingOrderMetadata | null;
    /**
     * Indicates whether the institution supports payment consents.
     * @type {boolean}
     * @memberof PaymentInitiationMetadata
     */
    supports_payment_consents: boolean;
}
/**
 * An optional object used to restrict the accounts used for payments. If provided, the end user will be able to send payments only from the specified bank account.
 * @export
 * @interface PaymentInitiationOptionalRestrictionBacs
 */
export interface PaymentInitiationOptionalRestrictionBacs {
    /**
     * The account number of the account. Maximum of 10 characters.
     * @type {string}
     * @memberof PaymentInitiationOptionalRestrictionBacs
     */
    account?: string;
    /**
     * The 6-character sort code of the account.
     * @type {string}
     * @memberof PaymentInitiationOptionalRestrictionBacs
     */
    sort_code?: string;
}
/**
 * PaymentInitiationPayment defines a payment initiation payment
 * @export
 * @interface PaymentInitiationPayment
 */
export interface PaymentInitiationPayment {
    /**
     * The ID of the payment. Like all Plaid identifiers, the `payment_id` is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationPayment
     */
    payment_id: string;
    /**
     *
     * @type {PaymentAmount}
     * @memberof PaymentInitiationPayment
     */
    amount: PaymentAmount;
    /**
     *
     * @type {PaymentInitiationPaymentStatus}
     * @memberof PaymentInitiationPayment
     */
    status: PaymentInitiationPaymentStatus;
    /**
     * The ID of the recipient
     * @type {string}
     * @memberof PaymentInitiationPayment
     */
    recipient_id: string;
    /**
     * A reference for the payment.
     * @type {string}
     * @memberof PaymentInitiationPayment
     */
    reference: string;
    /**
     * The value of the reference sent to the bank after adjustment to pass bank validation rules.
     * @type {string}
     * @memberof PaymentInitiationPayment
     */
    adjusted_reference?: string | null;
    /**
     * The date and time of the last time the `status` was updated, in IS0 8601 format
     * @type {string}
     * @memberof PaymentInitiationPayment
     */
    last_status_update: string;
    /**
     *
     * @type {ExternalPaymentScheduleGet}
     * @memberof PaymentInitiationPayment
     */
    schedule?: ExternalPaymentScheduleGet | null;
    /**
     *
     * @type {ExternalPaymentRefundDetails}
     * @memberof PaymentInitiationPayment
     */
    refund_details?: ExternalPaymentRefundDetails | null;
    /**
     *
     * @type {SenderBACSNullable}
     * @memberof PaymentInitiationPayment
     */
    bacs: SenderBACSNullable | null;
    /**
     * The International Bank Account Number (IBAN) for the sender, if specified in the `/payment_initiation/payment/create` call.
     * @type {string}
     * @memberof PaymentInitiationPayment
     */
    iban: string | null;
    /**
     * Refund IDs associated with the payment.
     * @type {Array<string>}
     * @memberof PaymentInitiationPayment
     */
    refund_ids?: Array<string> | null;
    /**
     *
     * @type {PaymentAmountRefunded}
     * @memberof PaymentInitiationPayment
     */
    amount_refunded?: PaymentAmountRefunded;
    /**
     * The EMI (E-Money Institution) wallet that this payment is associated with, if any. This wallet is used as an intermediary account to enable Plaid to reconcile the settlement of funds for Payment Initiation requests.
     * @type {string}
     * @memberof PaymentInitiationPayment
     */
    wallet_id?: string | null;
    /**
     *
     * @type {PaymentScheme}
     * @memberof PaymentInitiationPayment
     */
    scheme?: PaymentScheme | null;
    /**
     *
     * @type {PaymentScheme}
     * @memberof PaymentInitiationPayment
     */
    adjusted_scheme?: PaymentScheme | null;
    /**
     * The payment consent ID that this payment was initiated with. Is present only when payment was initiated using the payment consent.
     * @type {string}
     * @memberof PaymentInitiationPayment
     */
    consent_id?: string | null;
    /**
     * The transaction ID that this payment is associated with, if any. This is present only when a payment was initiated using virtual accounts.
     * @type {string}
     * @memberof PaymentInitiationPayment
     */
    transaction_id?: string | null;
    /**
     * A unique identifier assigned by Plaid to each payment for tracking and reconcilliation purposes.  Note: Not all banks handle end_to_end_id consistently. To ensure accurate matching, clients should convert both the incoming end_to_end_id and the one provided by Plaid to the same case (either lower or upper) before comparison. For virtual account payments, Plaid manages this field automatically.
     * @type {string}
     * @memberof PaymentInitiationPayment
     */
    end_to_end_id?: string | null;
}
/**
 * PaymentInitiationPaymentCreateRequest defines the request schema for `/payment_initiation/payment/create`
 * @export
 * @interface PaymentInitiationPaymentCreateRequest
 */
export interface PaymentInitiationPaymentCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationPaymentCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationPaymentCreateRequest
     */
    secret?: string;
    /**
     * The ID of the recipient the payment is for.
     * @type {string}
     * @memberof PaymentInitiationPaymentCreateRequest
     */
    recipient_id: string;
    /**
     * A reference for the payment. This must be an alphanumeric string with at most 18 characters and must not contain any special characters (since not all institutions support them). In order to track settlement via Payment Confirmation, each payment must have a unique reference. If the reference provided through the API is not unique, Plaid will adjust it. Some institutions may limit the reference to less than 18 characters. If necessary, Plaid will adjust the reference by truncating it to fit the institution\'s requirements. Both the originally provided and automatically adjusted references (if any) can be found in the `reference` and `adjusted_reference` fields, respectively.
     * @type {string}
     * @memberof PaymentInitiationPaymentCreateRequest
     */
    reference: string;
    /**
     *
     * @type {PaymentAmount}
     * @memberof PaymentInitiationPaymentCreateRequest
     */
    amount: PaymentAmount;
    /**
     *
     * @type {ExternalPaymentScheduleRequest}
     * @memberof PaymentInitiationPaymentCreateRequest
     */
    schedule?: ExternalPaymentScheduleRequest;
    /**
     *
     * @type {ExternalPaymentOptions}
     * @memberof PaymentInitiationPaymentCreateRequest
     */
    options?: ExternalPaymentOptions | null;
}
/**
 * PaymentInitiationPaymentCreateResponse defines the response schema for `/payment_initiation/payment/create`
 * @export
 * @interface PaymentInitiationPaymentCreateResponse
 */
export interface PaymentInitiationPaymentCreateResponse {
    /**
     * A unique ID identifying the payment
     * @type {string}
     * @memberof PaymentInitiationPaymentCreateResponse
     */
    payment_id: string;
    /**
     *
     * @type {PaymentInitiationPaymentCreateStatus}
     * @memberof PaymentInitiationPaymentCreateResponse
     */
    status: PaymentInitiationPaymentCreateStatus;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationPaymentCreateResponse
     */
    request_id: string;
}
/**
 * For a payment returned by this endpoint, there is only one possible value:  `PAYMENT_STATUS_INPUT_NEEDED`: The initial phase of the payment
 * @export
 * @enum {string}
 */
export declare enum PaymentInitiationPaymentCreateStatus {
    PaymentStatusInputNeeded = "PAYMENT_STATUS_INPUT_NEEDED"
}
/**
 * PaymentInitiationPaymentGetRequest defines the request schema for `/payment_initiation/payment/get`
 * @export
 * @interface PaymentInitiationPaymentGetRequest
 */
export interface PaymentInitiationPaymentGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetRequest
     */
    secret?: string;
    /**
     * The `payment_id` returned from `/payment_initiation/payment/create`.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetRequest
     */
    payment_id: string;
}
/**
 * PaymentInitiationPaymentGetResponse defines the response schema for `/payment_initation/payment/get`
 * @export
 * @interface PaymentInitiationPaymentGetResponse
 */
export interface PaymentInitiationPaymentGetResponse {
    /**
     * The ID of the payment. Like all Plaid identifiers, the `payment_id` is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    payment_id: string;
    /**
     *
     * @type {PaymentAmount}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    amount: PaymentAmount;
    /**
     *
     * @type {PaymentInitiationPaymentStatus}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    status: PaymentInitiationPaymentStatus;
    /**
     * The ID of the recipient
     * @type {string}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    recipient_id: string;
    /**
     * A reference for the payment.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    reference: string;
    /**
     * The value of the reference sent to the bank after adjustment to pass bank validation rules.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    adjusted_reference?: string | null;
    /**
     * The date and time of the last time the `status` was updated, in IS0 8601 format
     * @type {string}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    last_status_update: string;
    /**
     *
     * @type {ExternalPaymentScheduleGet}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    schedule?: ExternalPaymentScheduleGet | null;
    /**
     *
     * @type {ExternalPaymentRefundDetails}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    refund_details?: ExternalPaymentRefundDetails | null;
    /**
     *
     * @type {SenderBACSNullable}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    bacs: SenderBACSNullable | null;
    /**
     * The International Bank Account Number (IBAN) for the sender, if specified in the `/payment_initiation/payment/create` call.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    iban: string | null;
    /**
     * Refund IDs associated with the payment.
     * @type {Array<string>}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    refund_ids?: Array<string> | null;
    /**
     *
     * @type {PaymentAmountRefunded}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    amount_refunded?: PaymentAmountRefunded;
    /**
     * The EMI (E-Money Institution) wallet that this payment is associated with, if any. This wallet is used as an intermediary account to enable Plaid to reconcile the settlement of funds for Payment Initiation requests.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    wallet_id?: string | null;
    /**
     *
     * @type {PaymentScheme}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    scheme?: PaymentScheme | null;
    /**
     *
     * @type {PaymentScheme}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    adjusted_scheme?: PaymentScheme | null;
    /**
     * The payment consent ID that this payment was initiated with. Is present only when payment was initiated using the payment consent.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    consent_id?: string | null;
    /**
     * The transaction ID that this payment is associated with, if any. This is present only when a payment was initiated using virtual accounts.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    transaction_id?: string | null;
    /**
     * A unique identifier assigned by Plaid to each payment for tracking and reconcilliation purposes.  Note: Not all banks handle end_to_end_id consistently. To ensure accurate matching, clients should convert both the incoming end_to_end_id and the one provided by Plaid to the same case (either lower or upper) before comparison. For virtual account payments, Plaid manages this field automatically.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    end_to_end_id?: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationPaymentGetResponse
     */
    request_id: string;
}
/**
 * PaymentInitiationPaymentListRequest defines the request schema for `/payment_initiation/payment/list`
 * @export
 * @interface PaymentInitiationPaymentListRequest
 */
export interface PaymentInitiationPaymentListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationPaymentListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationPaymentListRequest
     */
    secret?: string;
    /**
     * The maximum number of payments to return. If `count` is not specified, a maximum of 10 payments will be returned, beginning with the most recent payment before the cursor (if specified).
     * @type {number}
     * @memberof PaymentInitiationPaymentListRequest
     */
    count?: number | null;
    /**
     * A string in RFC 3339 format (i.e. \"2019-12-06T22:35:49Z\"). Only payments created before the cursor will be returned.
     * @type {string}
     * @memberof PaymentInitiationPaymentListRequest
     */
    cursor?: string | null;
    /**
     * The consent ID. If specified, only payments, executed using this consent, will be returned.
     * @type {string}
     * @memberof PaymentInitiationPaymentListRequest
     */
    consent_id?: string | null;
}
/**
 * PaymentInitiationPaymentListResponse defines the response schema for `/payment_initiation/payment/list`
 * @export
 * @interface PaymentInitiationPaymentListResponse
 */
export interface PaymentInitiationPaymentListResponse {
    /**
     * An array of payments that have been created, associated with the given `client_id`.
     * @type {Array<PaymentInitiationPayment>}
     * @memberof PaymentInitiationPaymentListResponse
     */
    payments: Array<PaymentInitiationPayment>;
    /**
     * The value that, when used as the optional `cursor` parameter to `/payment_initiation/payment/list`, will return the next unreturned payment as its first payment.
     * @type {string}
     * @memberof PaymentInitiationPaymentListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationPaymentListResponse
     */
    request_id: string;
}
/**
 * PaymentInitiationPaymentReverseRequest defines the request schema for `/payment_initiation/payment/reverse`
 * @export
 * @interface PaymentInitiationPaymentReverseRequest
 */
export interface PaymentInitiationPaymentReverseRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationPaymentReverseRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationPaymentReverseRequest
     */
    secret?: string;
    /**
     * The ID of the payment to reverse
     * @type {string}
     * @memberof PaymentInitiationPaymentReverseRequest
     */
    payment_id: string;
    /**
     * A random key provided by the client, per unique wallet transaction. Maximum of 128 characters.  The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. If a request to execute a wallet transaction fails due to a network connection error, then after a minimum delay of one minute, you can retry the request with the same idempotency key to guarantee that only a single wallet transaction is created. If the request was successfully processed, it will prevent any transaction that uses the same idempotency key, and was received within 24 hours of the first request, from being processed.
     * @type {string}
     * @memberof PaymentInitiationPaymentReverseRequest
     */
    idempotency_key: string;
    /**
     * A reference for the refund. This must be an alphanumeric string with 6 to 18 characters and must not contain any special characters or spaces.
     * @type {string}
     * @memberof PaymentInitiationPaymentReverseRequest
     */
    reference: string;
    /**
     *
     * @type {PaymentAmountToRefund}
     * @memberof PaymentInitiationPaymentReverseRequest
     */
    amount?: PaymentAmountToRefund;
    /**
     * The counterparty\'s birthdate, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format.
     * @type {string}
     * @memberof PaymentInitiationPaymentReverseRequest
     */
    counterparty_date_of_birth?: string | null;
    /**
     *
     * @type {PaymentInitiationAddress}
     * @memberof PaymentInitiationPaymentReverseRequest
     */
    counterparty_address?: PaymentInitiationAddress | null;
}
/**
 * PaymentInitiationPaymentReverseResponse defines the response schema for `/payment_initation/payment/reverse`
 * @export
 * @interface PaymentInitiationPaymentReverseResponse
 */
export interface PaymentInitiationPaymentReverseResponse {
    /**
     * A unique ID identifying the refund
     * @type {string}
     * @memberof PaymentInitiationPaymentReverseResponse
     */
    refund_id: string;
    /**
     *
     * @type {WalletTransactionStatus}
     * @memberof PaymentInitiationPaymentReverseResponse
     */
    status: WalletTransactionStatus;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationPaymentReverseResponse
     */
    request_id: string;
}
/**
 * The status of the payment.  `PAYMENT_STATUS_INPUT_NEEDED`: This is the initial state of all payments. It indicates that the payment is waiting on user input to continue processing. A payment may re-enter this state later on if further input is needed.  `PAYMENT_STATUS_INITIATED`: The payment has been successfully authorised and accepted by the financial institution. For successful payments, this is a potential terminal status. Further status transitions can be to REJECTED and, when supported by the institution, to EXECUTED.  `PAYMENT_STATUS_INSUFFICIENT_FUNDS`: The payment has failed due to insufficient funds.  `PAYMENT_STATUS_FAILED`: The payment has failed to be initiated. This error may be caused by transient system outages and is retryable once the root cause is resolved.  `PAYMENT_STATUS_BLOCKED`: The payment has been blocked by Plaid. This can occur, for example, due to Plaid flagging the payment as potentially risky. This is a retryable error.  `PAYMENT_STATUS_AUTHORISING`: The payment is currently being processed. The payment will automatically exit this state when the financial institution has authorised the transaction.  `PAYMENT_STATUS_CANCELLED`: The payment was cancelled (typically by the end user) during authorisation.  `PAYMENT_STATUS_EXECUTED`: The funds have successfully left the payer account and payment is considered complete. Not all institutions support this status: support is more common in the UK, and less common in the EU. For institutions where this status is not supported, the terminal status for a successful payment will be `PAYMENT_STATUS_INITIATED`.  `PAYMENT_STATUS_SETTLED`: The payment has settled and funds are available for use. A payment will typically settle within seconds to several days, depending on which payment rail is used. This status is only available to customers using [Plaid Virtual Accounts](https://plaid.com/docs/virtual-accounts/).  `PAYMENT_STATUS_ESTABLISHED`: Indicates that the standing order has been successfully established. This state is only used for standing orders.  `PAYMENT_STATUS_REJECTED`: The payment was rejected by the financial institution.  Deprecated: These statuses will be removed in a future release.  `PAYMENT_STATUS_UNKNOWN`: The payment status is unknown.  `PAYMENT_STATUS_PROCESSING`: The payment is currently being processed. The payment will automatically exit this state when processing is complete.  `PAYMENT_STATUS_COMPLETED`: Indicates that the standing order has been successfully established. This state is only used for standing orders.
 * @export
 * @enum {string}
 */
export declare enum PaymentInitiationPaymentStatus {
    InputNeeded = "PAYMENT_STATUS_INPUT_NEEDED",
    Processing = "PAYMENT_STATUS_PROCESSING",
    Initiated = "PAYMENT_STATUS_INITIATED",
    Completed = "PAYMENT_STATUS_COMPLETED",
    InsufficientFunds = "PAYMENT_STATUS_INSUFFICIENT_FUNDS",
    Failed = "PAYMENT_STATUS_FAILED",
    Blocked = "PAYMENT_STATUS_BLOCKED",
    Unknown = "PAYMENT_STATUS_UNKNOWN",
    Executed = "PAYMENT_STATUS_EXECUTED",
    Settled = "PAYMENT_STATUS_SETTLED",
    Authorising = "PAYMENT_STATUS_AUTHORISING",
    Cancelled = "PAYMENT_STATUS_CANCELLED",
    Established = "PAYMENT_STATUS_ESTABLISHED",
    Rejected = "PAYMENT_STATUS_REJECTED"
}
/**
 * PaymentInitiationPaymentTokenCreateRequest defines the request schema for `/payment_initiation/payment/token/create`
 * @export
 * @interface PaymentInitiationPaymentTokenCreateRequest
 */
export interface PaymentInitiationPaymentTokenCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationPaymentTokenCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationPaymentTokenCreateRequest
     */
    secret?: string;
    /**
     * The `payment_id` returned from `/payment_initiation/payment/create`.
     * @type {string}
     * @memberof PaymentInitiationPaymentTokenCreateRequest
     */
    payment_id: string;
}
/**
 * PaymentInitiationPaymentTokenCreateResponse defines the response schema for `/payment_initiation/payment/token/create`
 * @export
 * @interface PaymentInitiationPaymentTokenCreateResponse
 */
export interface PaymentInitiationPaymentTokenCreateResponse {
    /**
     * A `payment_token` that can be provided to Link initialization to enter the payment initiation flow
     * @type {string}
     * @memberof PaymentInitiationPaymentTokenCreateResponse
     */
    payment_token: string;
    /**
     * The date and time at which the token will expire, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format. A `payment_token` expires after 15 minutes.
     * @type {string}
     * @memberof PaymentInitiationPaymentTokenCreateResponse
     */
    payment_token_expiration_time: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationPaymentTokenCreateResponse
     */
    request_id: string;
}
/**
 * PaymentInitiationRecipient defines a payment initiation recipient
 * @export
 * @interface PaymentInitiationRecipient
 */
export interface PaymentInitiationRecipient {
    /**
     * The ID of the recipient.
     * @type {string}
     * @memberof PaymentInitiationRecipient
     */
    recipient_id: string;
    /**
     * The name of the recipient.
     * @type {string}
     * @memberof PaymentInitiationRecipient
     */
    name: string;
    /**
     *
     * @type {PaymentInitiationAddress}
     * @memberof PaymentInitiationRecipient
     */
    address?: PaymentInitiationAddress | null;
    /**
     * The International Bank Account Number (IBAN) for the recipient.
     * @type {string}
     * @memberof PaymentInitiationRecipient
     */
    iban?: string | null;
    /**
     *
     * @type {RecipientBACSNullable}
     * @memberof PaymentInitiationRecipient
     */
    bacs?: RecipientBACSNullable | null;
}
/**
 * PaymentInitiationRecipientCreateRequest defines the request schema for `/payment_initiation/recipient/create`
 * @export
 * @interface PaymentInitiationRecipientCreateRequest
 */
export interface PaymentInitiationRecipientCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationRecipientCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationRecipientCreateRequest
     */
    secret?: string;
    /**
     * The name of the recipient. We recommend using strings of length 18 or less and avoid special characters to ensure compatibility with all institutions.
     * @type {string}
     * @memberof PaymentInitiationRecipientCreateRequest
     */
    name: string;
    /**
     * The International Bank Account Number (IBAN) for the recipient. If BACS data is not provided, an IBAN is required.
     * @type {string}
     * @memberof PaymentInitiationRecipientCreateRequest
     */
    iban?: string | null;
    /**
     *
     * @type {RecipientBACSNullable}
     * @memberof PaymentInitiationRecipientCreateRequest
     */
    bacs?: RecipientBACSNullable | null;
    /**
     *
     * @type {PaymentInitiationAddress}
     * @memberof PaymentInitiationRecipientCreateRequest
     */
    address?: PaymentInitiationAddress | null;
}
/**
 * PaymentInitiationRecipientCreateResponse defines the response schema for `/payment_initation/recipient/create`
 * @export
 * @interface PaymentInitiationRecipientCreateResponse
 */
export interface PaymentInitiationRecipientCreateResponse {
    /**
     * A unique ID identifying the recipient
     * @type {string}
     * @memberof PaymentInitiationRecipientCreateResponse
     */
    recipient_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationRecipientCreateResponse
     */
    request_id: string;
}
/**
 * PaymentInitiationRecipientGetRequest defines the request schema for `/payment_initiation/recipient/get`
 * @export
 * @interface PaymentInitiationRecipientGetRequest
 */
export interface PaymentInitiationRecipientGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationRecipientGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationRecipientGetRequest
     */
    secret?: string;
    /**
     * The ID of the recipient
     * @type {string}
     * @memberof PaymentInitiationRecipientGetRequest
     */
    recipient_id: string;
}
/**
 * PaymentInitiationRecipientGetResponse defines the response schema for `/payment_initiation/recipient/get`
 * @export
 * @interface PaymentInitiationRecipientGetResponse
 */
export interface PaymentInitiationRecipientGetResponse {
    /**
     * The ID of the recipient.
     * @type {string}
     * @memberof PaymentInitiationRecipientGetResponse
     */
    recipient_id: string;
    /**
     * The name of the recipient.
     * @type {string}
     * @memberof PaymentInitiationRecipientGetResponse
     */
    name: string;
    /**
     *
     * @type {PaymentInitiationAddress}
     * @memberof PaymentInitiationRecipientGetResponse
     */
    address?: PaymentInitiationAddress | null;
    /**
     * The International Bank Account Number (IBAN) for the recipient.
     * @type {string}
     * @memberof PaymentInitiationRecipientGetResponse
     */
    iban?: string | null;
    /**
     *
     * @type {RecipientBACSNullable}
     * @memberof PaymentInitiationRecipientGetResponse
     */
    bacs?: RecipientBACSNullable | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationRecipientGetResponse
     */
    request_id: string;
}
/**
 *
 * @export
 * @interface PaymentInitiationRecipientGetResponseAllOf
 */
export interface PaymentInitiationRecipientGetResponseAllOf {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationRecipientGetResponseAllOf
     */
    request_id?: string;
}
/**
 * PaymentInitiationRecipientListRequest defines the request schema for `/payment_initiation/recipient/list`
 * @export
 * @interface PaymentInitiationRecipientListRequest
 */
export interface PaymentInitiationRecipientListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationRecipientListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentInitiationRecipientListRequest
     */
    secret?: string;
}
/**
 * PaymentInitiationRecipientListResponse defines the response schema for `/payment_initiation/recipient/list`
 * @export
 * @interface PaymentInitiationRecipientListResponse
 */
export interface PaymentInitiationRecipientListResponse {
    /**
     * An array of payment recipients created for Payment Initiation
     * @type {Array<PaymentInitiationRecipient>}
     * @memberof PaymentInitiationRecipientListResponse
     */
    recipients: Array<PaymentInitiationRecipient>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentInitiationRecipientListResponse
     */
    request_id: string;
}
/**
 * Metadata specifically related to valid Payment Initiation standing order configurations for the institution.
 * @export
 * @interface PaymentInitiationStandingOrderMetadata
 */
export interface PaymentInitiationStandingOrderMetadata {
    /**
     * Indicates whether the institution supports closed-ended standing orders by providing an end date.
     * @type {boolean}
     * @memberof PaymentInitiationStandingOrderMetadata
     */
    supports_standing_order_end_date: boolean;
    /**
     * This is only applicable to `MONTHLY` standing orders. Indicates whether the institution supports negative integers (-1 to -5) for setting up a `MONTHLY` standing order relative to the end of the month.
     * @type {boolean}
     * @memberof PaymentInitiationStandingOrderMetadata
     */
    supports_standing_order_negative_execution_days: boolean;
    /**
     * A list of the valid standing order intervals supported by the institution.
     * @type {Array<PaymentScheduleInterval>}
     * @memberof PaymentInitiationStandingOrderMetadata
     */
    valid_standing_order_intervals: Array<PaymentScheduleInterval>;
}
/**
 * Transaction information specific to inter-bank transfers. If the transaction was not an inter-bank transfer, all fields will be `null`.  If the `transactions` object was returned by a Transactions endpoint such as `/transactions/sync` or `/transactions/get`, the `payment_meta` key will always appear, but no data elements are guaranteed. If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
 * @export
 * @interface PaymentMeta
 */
export interface PaymentMeta {
    /**
     * The transaction reference number supplied by the financial institution.
     * @type {string}
     * @memberof PaymentMeta
     */
    reference_number: string | null;
    /**
     * The ACH PPD ID for the payer.
     * @type {string}
     * @memberof PaymentMeta
     */
    ppd_id: string | null;
    /**
     * For transfers, the party that is receiving the transaction.
     * @type {string}
     * @memberof PaymentMeta
     */
    payee: string | null;
    /**
     * The party initiating a wire transfer. Will be `null` if the transaction is not a wire transfer.
     * @type {string}
     * @memberof PaymentMeta
     */
    by_order_of: string | null;
    /**
     * For transfers, the party that is paying the transaction.
     * @type {string}
     * @memberof PaymentMeta
     */
    payer: string | null;
    /**
     * The type of transfer, e.g. \'ACH\'
     * @type {string}
     * @memberof PaymentMeta
     */
    payment_method: string | null;
    /**
     * The name of the payment processor
     * @type {string}
     * @memberof PaymentMeta
     */
    payment_processor: string | null;
    /**
     * The payer-supplied description of the transfer.
     * @type {string}
     * @memberof PaymentMeta
     */
    reason: string | null;
}
/**
 * PaymentProfileCreateRequest defines the request schema for `/payment_profile/create`
 * @export
 * @interface PaymentProfileCreateRequest
 */
export interface PaymentProfileCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentProfileCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentProfileCreateRequest
     */
    secret?: string;
}
/**
 * PaymentProfileCreateResponse defines the response schema for `/payment_profile/create`
 * @export
 * @interface PaymentProfileCreateResponse
 */
export interface PaymentProfileCreateResponse {
    /**
     * A payment profile token associated with the Payment Profile data that is being requested.
     * @type {string}
     * @memberof PaymentProfileCreateResponse
     */
    payment_profile_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentProfileCreateResponse
     */
    request_id: string;
}
/**
 * PaymentProfileGetRequest defines the request schema for `/payment_profile/get`
 * @export
 * @interface PaymentProfileGetRequest
 */
export interface PaymentProfileGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentProfileGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentProfileGetRequest
     */
    secret?: string;
    /**
     * A payment profile token associated with the Payment Profile data that is being requested.
     * @type {string}
     * @memberof PaymentProfileGetRequest
     */
    payment_profile_token: string;
}
/**
 * PaymentProfileGetResponse defines the response schema for `/payment_profile/get`
 * @export
 * @interface PaymentProfileGetResponse
 */
export interface PaymentProfileGetResponse {
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the last time the given Payment Profile was updated at
     * @type {string}
     * @memberof PaymentProfileGetResponse
     */
    updated_at: string;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the time the given Payment Profile was created at
     * @type {string}
     * @memberof PaymentProfileGetResponse
     */
    created_at: string;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the time the given Payment Profile was deleted at. Always `null` if the Payment Profile has not been deleted
     * @type {string}
     * @memberof PaymentProfileGetResponse
     */
    deleted_at: string | null;
    /**
     *
     * @type {PaymentProfileStatus}
     * @memberof PaymentProfileGetResponse
     */
    status: PaymentProfileStatus;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentProfileGetResponse
     */
    request_id: string;
}
/**
 * PaymentProfileRemoveRequest defines the request schema for `/payment_profile/remove`
 * @export
 * @interface PaymentProfileRemoveRequest
 */
export interface PaymentProfileRemoveRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof PaymentProfileRemoveRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof PaymentProfileRemoveRequest
     */
    secret?: string;
    /**
     * A payment profile token associated with the Payment Profile data that is being requested.
     * @type {string}
     * @memberof PaymentProfileRemoveRequest
     */
    payment_profile_token: string;
}
/**
 * PaymentProfileRemoveResponse defines the response schema for `/payment_profile/remove`
 * @export
 * @interface PaymentProfileRemoveResponse
 */
export interface PaymentProfileRemoveResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof PaymentProfileRemoveResponse
     */
    request_id: string;
}
/**
 * The status of the given Payment Profile.  `READY`: This Payment Profile is ready to be used to create transfers using `/transfer/authorization/create` and `/transfer/create`.  `PENDING`: This Payment Profile is not ready to be used. You’ll need to call `/link/token/create` and provide the `payment_profile_token` in the `transfer.payment_profile_token` field to initiate the account linking experience.  `REMOVED`: This Payment Profile has been removed.
 * @export
 * @enum {string}
 */
export declare enum PaymentProfileStatus {
    Pending = "PENDING",
    Ready = "READY",
    Removed = "REMOVED"
}
/**
 * The frequency interval of the payment.
 * @export
 * @enum {string}
 */
export declare enum PaymentScheduleInterval {
    Weekly = "WEEKLY",
    Monthly = "MONTHLY"
}
/**
 * Payment scheme. If not specified - the default in the region will be used (e.g. `SEPA_CREDIT_TRANSFER` for EU). Using unsupported values will result in a failed payment.  `LOCAL_DEFAULT`: The default payment scheme for the selected market and currency will be used.  `LOCAL_INSTANT`: The instant payment scheme for the selected market and currency will be used (if applicable). Fees may be applied by the institution. If the market does not support an Instant Scheme (e.g. Denmark), the default in the region will be used.  `SEPA_CREDIT_TRANSFER`: The standard payment to a beneficiary within the SEPA area.  `SEPA_CREDIT_TRANSFER_INSTANT`: Instant payment within the SEPA area. May involve additional fees and may not be available at some banks.
 * @export
 * @enum {string}
 */
export declare enum PaymentScheme {
    Null = "null",
    LocalDefault = "LOCAL_DEFAULT",
    LocalInstant = "LOCAL_INSTANT",
    SepaCreditTransfer = "SEPA_CREDIT_TRANSFER",
    SepaCreditTransferInstant = "SEPA_CREDIT_TRANSFER_INSTANT"
}
/**
 * Fired when the status of a payment has changed.
 * @export
 * @interface PaymentStatusUpdateWebhook
 */
export interface PaymentStatusUpdateWebhook {
    /**
     * `PAYMENT_INITIATION`
     * @type {string}
     * @memberof PaymentStatusUpdateWebhook
     */
    webhook_type: string;
    /**
     * `PAYMENT_STATUS_UPDATE`
     * @type {string}
     * @memberof PaymentStatusUpdateWebhook
     */
    webhook_code: string;
    /**
     * The `payment_id` for the payment being updated
     * @type {string}
     * @memberof PaymentStatusUpdateWebhook
     */
    payment_id: string;
    /**
     * The transaction ID that this payment is associated with, if any. This is present only when a payment was initiated using virtual accounts.
     * @type {string}
     * @memberof PaymentStatusUpdateWebhook
     */
    transaction_id?: string | null;
    /**
     *
     * @type {PaymentInitiationPaymentStatus}
     * @memberof PaymentStatusUpdateWebhook
     */
    new_payment_status: PaymentInitiationPaymentStatus;
    /**
     *
     * @type {PaymentInitiationPaymentStatus}
     * @memberof PaymentStatusUpdateWebhook
     */
    old_payment_status: PaymentInitiationPaymentStatus;
    /**
     * The original value of the reference when creating the payment.
     * @type {string}
     * @memberof PaymentStatusUpdateWebhook
     */
    original_reference: string | null;
    /**
     * The value of the reference sent to the bank after adjustment to pass bank validation rules.
     * @type {string}
     * @memberof PaymentStatusUpdateWebhook
     */
    adjusted_reference?: string | null;
    /**
     * The original value of the `start_date` provided during the creation of a standing order. If the payment is not a standing order, this field will be `null`.
     * @type {string}
     * @memberof PaymentStatusUpdateWebhook
     */
    original_start_date: string | null;
    /**
     * The start date sent to the bank after adjusting for holidays or weekends.  Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). If the start date did not require adjustment, or if the payment is not a standing order, this field will be `null`.
     * @type {string}
     * @memberof PaymentStatusUpdateWebhook
     */
    adjusted_start_date: string | null;
    /**
     * The timestamp of the update, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`
     * @type {string}
     * @memberof PaymentStatusUpdateWebhook
     */
    timestamp: string;
    /**
     *
     * @type {PlaidError}
     * @memberof PaymentStatusUpdateWebhook
     */
    error?: PlaidError | null;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof PaymentStatusUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * An object containing account level data.
 * @export
 * @interface PayrollIncomeAccountData
 */
export interface PayrollIncomeAccountData {
    /**
     * ID of the payroll provider account.
     * @type {string}
     * @memberof PayrollIncomeAccountData
     */
    account_id: string | null;
    /**
     *
     * @type {PayrollIncomeRateOfPay}
     * @memberof PayrollIncomeAccountData
     */
    rate_of_pay: PayrollIncomeRateOfPay;
    /**
     * The frequency at which an individual is paid.
     * @type {string}
     * @memberof PayrollIncomeAccountData
     */
    pay_frequency: string | null;
}
/**
 * An object representing payroll data.
 * @export
 * @interface PayrollIncomeObject
 */
export interface PayrollIncomeObject {
    /**
     * ID of the payroll provider account.
     * @type {string}
     * @memberof PayrollIncomeObject
     */
    account_id: string | null;
    /**
     * Array of pay stubs for the user.
     * @type {Array<CreditPayStub>}
     * @memberof PayrollIncomeObject
     */
    pay_stubs: Array<CreditPayStub>;
    /**
     * Array of tax form W-2s.
     * @type {Array<CreditW2>}
     * @memberof PayrollIncomeObject
     */
    w2s: Array<CreditW2>;
    /**
     * Array of tax form 1099s.
     * @type {Array<Credit1099>}
     * @memberof PayrollIncomeObject
     */
    form1099s: Array<Credit1099>;
}
/**
 * An object representing the rate at which an individual is paid.
 * @export
 * @interface PayrollIncomeRateOfPay
 */
export interface PayrollIncomeRateOfPay {
    /**
     * The rate at which an employee is paid.
     * @type {string}
     * @memberof PayrollIncomeRateOfPay
     */
    pay_rate?: string | null;
    /**
     * The amount at which an employee is paid.
     * @type {number}
     * @memberof PayrollIncomeRateOfPay
     */
    pay_amount?: number | null;
}
/**
 * An object containing information about the payroll item.
 * @export
 * @interface PayrollItem
 */
export interface PayrollItem {
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof PayrollItem
     */
    item_id: string;
    /**
     * The unique identifier of the institution associated with the Item.
     * @type {string}
     * @memberof PayrollItem
     */
    institution_id: string;
    /**
     * The name of the institution associated with the Item.
     * @type {string}
     * @memberof PayrollItem
     */
    institution_name: string;
    /**
     *
     * @type {Array<PayrollIncomeAccountData>}
     * @memberof PayrollItem
     */
    accounts: Array<PayrollIncomeAccountData>;
    /**
     *
     * @type {Array<PayrollIncomeObject>}
     * @memberof PayrollItem
     */
    payroll_income: Array<PayrollIncomeObject>;
    /**
     *
     * @type {PayrollItemStatus}
     * @memberof PayrollItem
     */
    status: PayrollItemStatus | null;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDTHH:mm:ssZ) indicating the last time that the Item was updated.
     * @type {string}
     * @memberof PayrollItem
     */
    updated_at: string | null;
}
/**
 * Details about the status of the payroll item.
 * @export
 * @interface PayrollItemStatus
 */
export interface PayrollItemStatus {
    /**
     * Denotes the processing status for the verification.  `UNKNOWN`: The processing status could not be determined.  `PROCESSING_COMPLETE`: The processing has completed and the user has approved for sharing. The data is available to be retrieved.  `PROCESSING`: The verification is still processing. The data is not available yet.  `FAILED`: The processing failed to complete successfully.  `APPROVAL_STATUS_PENDING`: The processing has completed but the user has not yet approved the sharing of the data.
     * @type {string}
     * @memberof PayrollItemStatus
     */
    processing_status?: string | null;
}
/**
 * Object containing fraud risk data pertaining to the Item linked as part of the verification.
 * @export
 * @interface PayrollRiskSignalsItem
 */
export interface PayrollRiskSignalsItem {
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof PayrollRiskSignalsItem
     */
    item_id: string;
    /**
     * Array of payroll income document authenticity data retrieved for each of the user\'s accounts.
     * @type {Array<DocumentRiskSignalsObject>}
     * @memberof PayrollRiskSignalsItem
     */
    verification_risk_signals: Array<DocumentRiskSignalsObject>;
}
/**
 * An object representing data extracted from the end user\'s paystub.
 * @export
 * @interface Paystub
 */
export interface Paystub {
    /**
     *
     * @type {Deductions}
     * @memberof Paystub
     */
    deductions: Deductions;
    /**
     * An identifier of the document referenced by the document metadata.
     * @type {string}
     * @memberof Paystub
     */
    doc_id: string;
    /**
     *
     * @type {Earnings}
     * @memberof Paystub
     */
    earnings: Earnings;
    /**
     *
     * @type {Employee}
     * @memberof Paystub
     */
    employee: Employee;
    /**
     *
     * @type {PaystubEmployer}
     * @memberof Paystub
     */
    employer: PaystubEmployer;
    /**
     *
     * @type {EmploymentDetails}
     * @memberof Paystub
     * @deprecated
     */
    employment_details?: EmploymentDetails;
    /**
     *
     * @type {NetPay}
     * @memberof Paystub
     */
    net_pay: NetPay;
    /**
     *
     * @type {PayPeriodDetails}
     * @memberof Paystub
     */
    pay_period_details: PayPeriodDetails;
    /**
     *
     * @type {PaystubDetails}
     * @memberof Paystub
     * @deprecated
     */
    paystub_details?: PaystubDetails;
    /**
     *
     * @type {Array<IncomeBreakdown>}
     * @memberof Paystub
     * @deprecated
     */
    income_breakdown?: Array<IncomeBreakdown>;
    /**
     *
     * @type {PaystubYTDDetails}
     * @memberof Paystub
     * @deprecated
     */
    ytd_earnings?: PaystubYTDDetails;
}
/**
 * Address on the paystub
 * @export
 * @interface PaystubAddress
 */
export interface PaystubAddress {
    /**
     * The full city name.
     * @type {string}
     * @memberof PaystubAddress
     */
    city?: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code.
     * @type {string}
     * @memberof PaystubAddress
     */
    country?: string | null;
    /**
     * The postal code of the address.
     * @type {string}
     * @memberof PaystubAddress
     */
    postal_code?: string | null;
    /**
     * The region or state Example: `\"NC\"`
     * @type {string}
     * @memberof PaystubAddress
     */
    region?: string | null;
    /**
     * The full street address.
     * @type {string}
     * @memberof PaystubAddress
     */
    street?: string | null;
    /**
     * Street address line 1.
     * @type {string}
     * @memberof PaystubAddress
     * @deprecated
     */
    line1?: string | null;
    /**
     * Street address line 2.
     * @type {string}
     * @memberof PaystubAddress
     * @deprecated
     */
    line2?: string | null;
    /**
     * The region or state Example: `\"NC\"`
     * @type {string}
     * @memberof PaystubAddress
     * @deprecated
     */
    state_code?: string | null;
}
/**
 * Deduction on the paystub
 * @export
 * @interface PaystubDeduction
 */
export interface PaystubDeduction {
    /**
     * The description of the deduction, as provided on the paystub. For example: `\"401(k)\"`, `\"FICA MED TAX\"`.
     * @type {string}
     * @memberof PaystubDeduction
     */
    type: string | null;
    /**
     * `true` if the deduction is pre-tax; `false` otherwise.
     * @type {boolean}
     * @memberof PaystubDeduction
     */
    is_pretax: boolean | null;
    /**
     * The amount of the deduction.
     * @type {number}
     * @memberof PaystubDeduction
     */
    total: number | null;
}
/**
 * An object representing details that can be found on the paystub.
 * @export
 * @interface PaystubDetails
 */
export interface PaystubDetails {
    /**
     * Beginning date of the pay period on the paystub in the \'YYYY-MM-DD\' format.
     * @type {string}
     * @memberof PaystubDetails
     */
    pay_period_start_date?: string | null;
    /**
     * Ending date of the pay period on the paystub in the \'YYYY-MM-DD\' format.
     * @type {string}
     * @memberof PaystubDetails
     */
    pay_period_end_date?: string | null;
    /**
     * Pay date on the paystub in the \'YYYY-MM-DD\' format.
     * @type {string}
     * @memberof PaystubDetails
     */
    pay_date?: string | null;
    /**
     * The name of the payroll provider that generated the paystub, e.g. ADP
     * @type {string}
     * @memberof PaystubDetails
     */
    paystub_provider?: string | null;
    /**
     *
     * @type {PaystubPayFrequency}
     * @memberof PaystubDetails
     */
    pay_frequency?: PaystubPayFrequency | null;
}
/**
 * Information about the employer on the paystub
 * @export
 * @interface PaystubEmployer
 */
export interface PaystubEmployer {
    /**
     *
     * @type {PaystubAddress}
     * @memberof PaystubEmployer
     */
    address?: PaystubAddress;
    /**
     * The name of the employer on the paystub.
     * @type {string}
     * @memberof PaystubEmployer
     */
    name: string | null;
}
/**
 * An object representing data from a paystub.
 * @export
 * @interface PaystubOverride
 */
export interface PaystubOverride {
    /**
     *
     * @type {PaystubOverrideEmployer}
     * @memberof PaystubOverride
     */
    employer?: PaystubOverrideEmployer;
    /**
     *
     * @type {PaystubOverrideEmployee}
     * @memberof PaystubOverride
     */
    employee?: PaystubOverrideEmployee;
    /**
     *
     * @type {Array<IncomeBreakdown>}
     * @memberof PaystubOverride
     * @deprecated
     */
    income_breakdown?: Array<IncomeBreakdown>;
    /**
     *
     * @type {PaystubOverrideNetPay}
     * @memberof PaystubOverride
     */
    net_pay?: PaystubOverrideNetPay;
    /**
     *
     * @type {PaystubOverrideDeductions}
     * @memberof PaystubOverride
     */
    deductions?: PaystubOverrideDeductions;
    /**
     *
     * @type {PaystubOverrideEarnings}
     * @memberof PaystubOverride
     */
    earnings?: PaystubOverrideEarnings;
    /**
     *
     * @type {PaystubOverridePayPeriodDetails}
     * @memberof PaystubOverride
     */
    pay_period_details?: PaystubOverridePayPeriodDetails;
}
/**
 * An object with the deduction information found on a paystub.
 * @export
 * @interface PaystubOverrideDeductions
 */
export interface PaystubOverrideDeductions {
    /**
     *
     * @type {Array<PaystubOverrideDeductionsBreakdown>}
     * @memberof PaystubOverrideDeductions
     */
    breakdown?: Array<PaystubOverrideDeductionsBreakdown>;
    /**
     *
     * @type {PaystubOverrideDeductionsTotal}
     * @memberof PaystubOverrideDeductions
     */
    total?: PaystubOverrideDeductionsTotal;
}
/**
 * An object representing the deduction line items for the pay period
 * @export
 * @interface PaystubOverrideDeductionsBreakdown
 */
export interface PaystubOverrideDeductionsBreakdown {
    /**
     * Raw amount of the deduction
     * @type {number}
     * @memberof PaystubOverrideDeductionsBreakdown
     */
    current_amount?: number | null;
    /**
     * Description of the deduction line item
     * @type {string}
     * @memberof PaystubOverrideDeductionsBreakdown
     */
    description?: string | null;
    /**
     * The ISO-4217 currency code of the line item.
     * @type {string}
     * @memberof PaystubOverrideDeductionsBreakdown
     */
    currency?: string | null;
    /**
     * The year-to-date amount of the deduction
     * @type {number}
     * @memberof PaystubOverrideDeductionsBreakdown
     */
    ytd_amount?: number | null;
}
/**
 * An object representing the total deductions for the pay period
 * @export
 * @interface PaystubOverrideDeductionsTotal
 */
export interface PaystubOverrideDeductionsTotal {
    /**
     * Raw amount of the deduction
     * @type {number}
     * @memberof PaystubOverrideDeductionsTotal
     */
    current_amount?: number | null;
    /**
     * The ISO-4217 currency code of the line item.
     * @type {string}
     * @memberof PaystubOverrideDeductionsTotal
     */
    currency?: string | null;
    /**
     * The year-to-date total amount of the deductions
     * @type {number}
     * @memberof PaystubOverrideDeductionsTotal
     */
    ytd_amount?: number | null;
}
/**
 * Information about the accounts that the payment was distributed to.
 * @export
 * @interface PaystubOverrideDistributionBreakdown
 */
export interface PaystubOverrideDistributionBreakdown {
    /**
     * Name of the account for the given distribution.
     * @type {string}
     * @memberof PaystubOverrideDistributionBreakdown
     */
    account_name?: string | null;
    /**
     * The name of the bank that the payment is being deposited to.
     * @type {string}
     * @memberof PaystubOverrideDistributionBreakdown
     */
    bank_name?: string | null;
    /**
     * The amount distributed to this account.
     * @type {number}
     * @memberof PaystubOverrideDistributionBreakdown
     */
    current_amount?: number | null;
    /**
     * The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof PaystubOverrideDistributionBreakdown
     */
    currency?: string | null;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number.
     * @type {string}
     * @memberof PaystubOverrideDistributionBreakdown
     */
    mask?: string | null;
    /**
     * Type of the account that the paystub was sent to (e.g. \'checking\').
     * @type {string}
     * @memberof PaystubOverrideDistributionBreakdown
     */
    type?: string | null;
}
/**
 * An object representing both a breakdown of earnings on a paystub and the total earnings.
 * @export
 * @interface PaystubOverrideEarnings
 */
export interface PaystubOverrideEarnings {
    /**
     *
     * @type {Array<PaystubOverrideEarningsBreakdown>}
     * @memberof PaystubOverrideEarnings
     */
    breakdown?: Array<PaystubOverrideEarningsBreakdown>;
    /**
     *
     * @type {PaystubOverrideEarningsTotal}
     * @memberof PaystubOverrideEarnings
     */
    total?: PaystubOverrideEarningsTotal;
}
/**
 * An object representing the earnings line items for the pay period.
 * @export
 * @interface PaystubOverrideEarningsBreakdown
 */
export interface PaystubOverrideEarningsBreakdown {
    /**
     *
     * @type {EarningsBreakdownCanonicalDescription}
     * @memberof PaystubOverrideEarningsBreakdown
     */
    canonical_description?: EarningsBreakdownCanonicalDescription | null;
    /**
     * Raw amount of the earning line item.
     * @type {number}
     * @memberof PaystubOverrideEarningsBreakdown
     */
    current_amount?: number | null;
    /**
     * Description of the earning line item.
     * @type {string}
     * @memberof PaystubOverrideEarningsBreakdown
     */
    description?: string | null;
    /**
     * Number of hours applicable for this earning.
     * @type {number}
     * @memberof PaystubOverrideEarningsBreakdown
     */
    hours?: number | null;
    /**
     * The ISO-4217 currency code of the line item.
     * @type {string}
     * @memberof PaystubOverrideEarningsBreakdown
     */
    currency?: string | null;
    /**
     * Hourly rate applicable for this earning.
     * @type {number}
     * @memberof PaystubOverrideEarningsBreakdown
     */
    rate?: number | null;
    /**
     * The year-to-date amount of the deduction.
     * @type {number}
     * @memberof PaystubOverrideEarningsBreakdown
     */
    ytd_amount?: number | null;
}
/**
 * An object representing both the current pay period and year to date amount for an earning category.
 * @export
 * @interface PaystubOverrideEarningsTotal
 */
export interface PaystubOverrideEarningsTotal {
    /**
     * Total number of hours worked for this pay period
     * @type {number}
     * @memberof PaystubOverrideEarningsTotal
     */
    hours?: number | null;
    /**
     * The ISO-4217 currency code of the line item
     * @type {string}
     * @memberof PaystubOverrideEarningsTotal
     */
    currency?: string | null;
    /**
     * The year-to-date amount for the total earnings
     * @type {number}
     * @memberof PaystubOverrideEarningsTotal
     */
    ytd_amount?: number | null;
}
/**
 * The employee on the paystub.
 * @export
 * @interface PaystubOverrideEmployee
 */
export interface PaystubOverrideEmployee {
    /**
     * The name of the employee.
     * @type {string}
     * @memberof PaystubOverrideEmployee
     */
    name?: string;
    /**
     *
     * @type {PaystubOverrideEmployeeAddress}
     * @memberof PaystubOverrideEmployee
     */
    address?: PaystubOverrideEmployeeAddress;
    /**
     * Marital status of the employee - either `single` or `married`.
     * @type {string}
     * @memberof PaystubOverrideEmployee
     */
    marital_status?: string | null;
    /**
     *
     * @type {PaystubOverrideTaxpayerID}
     * @memberof PaystubOverrideEmployee
     */
    taxpayer_id?: PaystubOverrideTaxpayerID;
}
/**
 * The address of the employee.
 * @export
 * @interface PaystubOverrideEmployeeAddress
 */
export interface PaystubOverrideEmployeeAddress {
    /**
     * The full city name.
     * @type {string}
     * @memberof PaystubOverrideEmployeeAddress
     */
    city?: string;
    /**
     * The region or state Example: `\"NC\"`
     * @type {string}
     * @memberof PaystubOverrideEmployeeAddress
     */
    region?: string;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof PaystubOverrideEmployeeAddress
     */
    street?: string;
    /**
     * 5 digit postal code.
     * @type {string}
     * @memberof PaystubOverrideEmployeeAddress
     */
    postal_code?: string;
    /**
     * The country of the address.
     * @type {string}
     * @memberof PaystubOverrideEmployeeAddress
     */
    country?: string;
}
/**
 * The employer on the paystub.
 * @export
 * @interface PaystubOverrideEmployer
 */
export interface PaystubOverrideEmployer {
    /**
     * The name of the employer.
     * @type {string}
     * @memberof PaystubOverrideEmployer
     */
    name?: string | null;
    /**
     *
     * @type {PaystubOverrideEmployerAddress}
     * @memberof PaystubOverrideEmployer
     */
    address?: PaystubOverrideEmployerAddress;
}
/**
 * The address of the employer.
 * @export
 * @interface PaystubOverrideEmployerAddress
 */
export interface PaystubOverrideEmployerAddress {
    /**
     * The full city name.
     * @type {string}
     * @memberof PaystubOverrideEmployerAddress
     */
    city?: string;
    /**
     * The region or state Example: `\"NC\"`
     * @type {string}
     * @memberof PaystubOverrideEmployerAddress
     */
    region?: string;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof PaystubOverrideEmployerAddress
     */
    street?: string;
    /**
     * 5 digit postal code.
     * @type {string}
     * @memberof PaystubOverrideEmployerAddress
     */
    postal_code?: string;
    /**
     * The country of the address.
     * @type {string}
     * @memberof PaystubOverrideEmployerAddress
     */
    country?: string;
}
/**
 * An object representing information about the net pay amount on the paystub.
 * @export
 * @interface PaystubOverrideNetPay
 */
export interface PaystubOverrideNetPay {
    /**
     * Description of the net pay
     * @type {string}
     * @memberof PaystubOverrideNetPay
     */
    description?: string | null;
    /**
     * The ISO-4217 currency code of the net pay.
     * @type {string}
     * @memberof PaystubOverrideNetPay
     */
    currency?: string | null;
    /**
     * The year-to-date amount of the net pay
     * @type {number}
     * @memberof PaystubOverrideNetPay
     */
    ytd_amount?: number | null;
}
/**
 * Details about the pay period.
 * @export
 * @interface PaystubOverridePayPeriodDetails
 */
export interface PaystubOverridePayPeriodDetails {
    /**
     * The amount of the paycheck.
     * @type {number}
     * @memberof PaystubOverridePayPeriodDetails
     */
    check_amount?: number | null;
    /**
     *
     * @type {Array<PaystubOverrideDistributionBreakdown>}
     * @memberof PaystubOverridePayPeriodDetails
     */
    distribution_breakdown?: Array<PaystubOverrideDistributionBreakdown>;
    /**
     * The pay period end date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: \"yyyy-mm-dd\".
     * @type {string}
     * @memberof PaystubOverridePayPeriodDetails
     */
    end_date?: string | null;
    /**
     * Total earnings before tax/deductions.
     * @type {number}
     * @memberof PaystubOverridePayPeriodDetails
     */
    gross_earnings?: number | null;
    /**
     * The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof PaystubOverridePayPeriodDetails
     */
    pay_date?: string | null;
    /**
     *
     * @type {PayPeriodDetailsPayFrequency}
     * @memberof PaystubOverridePayPeriodDetails
     */
    pay_frequency?: PayPeriodDetailsPayFrequency | null;
    /**
     * The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof PaystubOverridePayPeriodDetails
     * @deprecated
     */
    pay_day?: string | null;
    /**
     * The pay period start date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: \"yyyy-mm-dd\".
     * @type {string}
     * @memberof PaystubOverridePayPeriodDetails
     */
    start_date?: string | null;
}
/**
 * Taxpayer ID of the individual receiving the paystub.
 * @export
 * @interface PaystubOverrideTaxpayerID
 */
export interface PaystubOverrideTaxpayerID {
    /**
     * Type of ID, e.g. \'SSN\'
     * @type {string}
     * @memberof PaystubOverrideTaxpayerID
     */
    id_type?: string | null;
    /**
     * ID mask; i.e. last 4 digits of the taxpayer ID
     * @type {string}
     * @memberof PaystubOverrideTaxpayerID
     */
    id_mask?: string | null;
}
/**
 * The frequency at which the employee is paid. Possible values: `MONTHLY`, `BI-WEEKLY`, `WEEKLY`, `SEMI-MONTHLY`.
 * @export
 * @enum {string}
 */
export declare enum PaystubPayFrequency {
    Monthly = "MONTHLY",
    BiWeekly = "BI-WEEKLY",
    Weekly = "WEEKLY",
    SemiMonthly = "SEMI-MONTHLY",
    Null = "null"
}
/**
 * The amount of income earned year to date, as based on paystub data.
 * @export
 * @interface PaystubYTDDetails
 */
export interface PaystubYTDDetails {
    /**
     * Year-to-date gross earnings.
     * @type {number}
     * @memberof PaystubYTDDetails
     */
    gross_earnings?: number | null;
    /**
     * Year-to-date net (take home) earnings.
     * @type {number}
     * @memberof PaystubYTDDetails
     */
    net_earnings?: number | null;
}
/**
 * Fired when an Item is expected to be disconnected. The webhook will currently be fired 7 days before the existing Item is scheduled for disconnection. This can be resolved by having the user go through Link’s [update mode](http://plaid.com/docs/link/update-mode). Currently, this webhook is fired only for US or Canadian institutions; in the UK or EU, you should continue to listed for the [`PENDING_EXPIRATION`](https://plaid.com/docs/api/items/#pending_expiration) webhook instead.
 * @export
 * @interface PendingDisconnectWebhook
 */
export interface PendingDisconnectWebhook {
    /**
     * `ITEM`
     * @type {string}
     * @memberof PendingDisconnectWebhook
     */
    webhook_type: string;
    /**
     * `PENDING_DISCONNECT`
     * @type {string}
     * @memberof PendingDisconnectWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof PendingDisconnectWebhook
     */
    item_id: string;
    /**
     *
     * @type {PendingDisconnectWebhookReason}
     * @memberof PendingDisconnectWebhook
     */
    reason: PendingDisconnectWebhookReason;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof PendingDisconnectWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Reason why the item is about to be disconnected. `INSTITUTION_MIGRATION`: The institution is moving to API or to a different integration. For example, this can occur when an institution moves from a non-OAuth integration to an OAuth integration. `INSTITUTION_TOKEN_EXPIRATION`: The consent on an Item associated with a US or CA institution is about to expire.
 * @export
 * @enum {string}
 */
export declare enum PendingDisconnectWebhookReason {
    Migration = "INSTITUTION_MIGRATION",
    TokenExpiration = "INSTITUTION_TOKEN_EXPIRATION"
}
/**
 * Fired when an Item’s access consent is expiring in 7 days. This can be resolved by having the user go through Link’s update mode. This webhook is fired only for Items associated with institutions in Europe (including the UK); for Items associated with institutions in the US or Canada, see [`PENDING_DISCONNECT`](https://plaid.com/docs/api/items/#pending_disconnect) instead.
 * @export
 * @interface PendingExpirationWebhook
 */
export interface PendingExpirationWebhook {
    /**
     * `ITEM`
     * @type {string}
     * @memberof PendingExpirationWebhook
     */
    webhook_type: string;
    /**
     * `PENDING_EXPIRATION`
     * @type {string}
     * @memberof PendingExpirationWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof PendingExpirationWebhook
     */
    item_id: string;
    /**
     * The date and time at which the Item\'s access consent will expire, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof PendingExpirationWebhook
     */
    consent_expiration_time: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof PendingExpirationWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Information describing the intent of the transaction. Most relevant for personal finance use cases, but not limited to such use cases.  See the [`taxonomy CSV file`](https://plaid.com/documents/transactions-personal-finance-category-taxonomy.csv) for a full list of personal finance categories. If you are migrating to personal finance categories from the legacy categories, also refer to the [`migration guide`](https://plaid.com/docs/transactions/pfc-migration/).
 * @export
 * @interface PersonalFinanceCategory
 */
export interface PersonalFinanceCategory {
    /**
     * A high level category that communicates the broad category of the transaction.
     * @type {string}
     * @memberof PersonalFinanceCategory
     */
    primary: string;
    /**
     * A granular category conveying the transaction\'s intent. This field can also be used as a unique identifier for the category.
     * @type {string}
     * @memberof PersonalFinanceCategory
     */
    detailed: string;
    /**
     * A description of how confident we are that the provided categories accurately describe the transaction intent.  `VERY_HIGH`: We are more than 98% confident that this category reflects the intent of the transaction. `HIGH`: We are more than 90% confident that this category reflects the intent of the transaction. `MEDIUM`: We are moderately confident that this category reflects the intent of the transaction. `LOW`: This category may reflect the intent, but there may be other categories that are more accurate. `UNKNOWN`: We don’t know the confidence level for this category.
     * @type {string}
     * @memberof PersonalFinanceCategory
     */
    confidence_level?: string | null;
}
/**
 * A phone number
 * @export
 * @interface PhoneNumber
 */
export interface PhoneNumber {
    /**
     * The phone number.
     * @type {string}
     * @memberof PhoneNumber
     */
    data: string;
    /**
     * When `true`, identifies the phone number as the primary number on an account.
     * @type {boolean}
     * @memberof PhoneNumber
     */
    primary: boolean;
    /**
     * The type of phone number.
     * @type {string}
     * @memberof PhoneNumber
     */
    type: PhoneNumberTypeEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum PhoneNumberTypeEnum {
    Home = "home",
    Work = "work",
    Office = "office",
    Mobile = "mobile",
    Mobile1 = "mobile1",
    Other = "other"
}
/**
 * Score found by matching phone number provided by the API with the phone number on the account at the financial institution. 100 is a perfect match and 0 is a no match. If the account contains multiple owners, the maximum match score is filled.
 * @export
 * @interface PhoneNumberMatchScore
 */
export interface PhoneNumberMatchScore {
    /**
     * Match score for normalized phone number. 100 is a perfect match, 99-70 is a partial match (matching the same phone number with extension against one without extension, etc.), anything below 70 is considered a mismatch. Typically, the match threshold should be set to a score of 70 or higher. If the phone number is missing from either the API or financial institution, this is null.
     * @type {number}
     * @memberof PhoneNumberMatchScore
     */
    score?: number | null;
}
/**
 * An enum indicating whether a phone number is a phone line or a fax line.
 * @export
 * @enum {string}
 */
export declare enum PhoneType {
    Phone = "phone",
    Fax = "fax"
}
/**
 * The type of identity document detected in the images provided. Will always be one of the following values:    `drivers_license` - A driver\'s license issued by the associated country, establishing identity without any guarantee as to citizenship, and granting driving privileges    `id_card` - A general national identification card, distinct from driver\'s licenses as it only establishes identity    `passport` - A travel passport issued by the associated country for one of its citizens    `residence_permit_card` - An identity document issued by the associated country permitting a foreign citizen to <em>temporarily</em> reside there    `resident_card` - An identity document issued by the associated country permitting a foreign citizen to <em>permanently</em> reside there    `visa` - An identity document issued by the associated country permitting a foreign citizen entry for a short duration and for a specific purpose, typically no longer than 6 months  Note: This value may be different from the ID type that the user selects within Link. For example, if they select \"Driver\'s License\" but then submit a picture of a passport, this field will say `passport`
 * @export
 * @enum {string}
 */
export declare enum PhysicalDocumentCategory {
    DriversLicense = "drivers_license",
    IdCard = "id_card",
    Passport = "passport",
    ResidencePermitCard = "residence_permit_card",
    ResidentCard = "resident_card",
    Visa = "visa"
}
/**
 * Data extracted from a user-submitted document.
 * @export
 * @interface PhysicalDocumentExtractedData
 */
export interface PhysicalDocumentExtractedData {
    /**
     * Alpha-numeric ID number extracted via OCR from the user\'s document image.
     * @type {string}
     * @memberof PhysicalDocumentExtractedData
     */
    id_number: string | null;
    /**
     *
     * @type {PhysicalDocumentCategory}
     * @memberof PhysicalDocumentExtractedData
     */
    category: PhysicalDocumentCategory;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof PhysicalDocumentExtractedData
     */
    expiration_date: string | null;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof PhysicalDocumentExtractedData
     */
    issuing_country: string;
    /**
     * An ISO 3166-2 subdivision code. Related terms would be \"state\", \"province\", \"prefecture\", \"zone\", \"subdivision\", etc.
     * @type {string}
     * @memberof PhysicalDocumentExtractedData
     */
    issuing_region: string | null;
    /**
     * A date extracted from the document in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof PhysicalDocumentExtractedData
     */
    date_of_birth: string | null;
    /**
     *
     * @type {IdentityVerificationDocumentAddressResponse}
     * @memberof PhysicalDocumentExtractedData
     */
    address: IdentityVerificationDocumentAddressResponse | null;
    /**
     *
     * @type {IdentityVerificationDocumentNameResponse}
     * @memberof PhysicalDocumentExtractedData
     */
    name?: IdentityVerificationDocumentNameResponse | null;
}
/**
 * Analysis of the data extracted from the submitted document.
 * @export
 * @interface PhysicalDocumentExtractedDataAnalysis
 */
export interface PhysicalDocumentExtractedDataAnalysis {
    /**
     *
     * @type {DocumentNameMatchCode}
     * @memberof PhysicalDocumentExtractedDataAnalysis
     */
    name: DocumentNameMatchCode;
    /**
     *
     * @type {DocumentDateOfBirthMatchCode}
     * @memberof PhysicalDocumentExtractedDataAnalysis
     */
    date_of_birth: DocumentDateOfBirthMatchCode;
    /**
     *
     * @type {ExpirationDate}
     * @memberof PhysicalDocumentExtractedDataAnalysis
     */
    expiration_date: ExpirationDate;
    /**
     *
     * @type {IssuingCountry}
     * @memberof PhysicalDocumentExtractedDataAnalysis
     */
    issuing_country: IssuingCountry;
}
/**
 * URLs for downloading original and cropped images for this document submission. The URLs are designed to only allow downloading, not hot linking, so the URL will only serve the document image for 60 seconds before expiring. The expiration time is 60 seconds after the `GET` request for the associated Identity Verification attempt. A new expiring URL is generated with each request, so you can always rerequest the Identity Verification attempt if one of your URLs expires.
 * @export
 * @interface PhysicalDocumentImages
 */
export interface PhysicalDocumentImages {
    /**
     * Temporary URL that expires after 60 seconds for downloading the uncropped original image of the front of the document.
     * @type {string}
     * @memberof PhysicalDocumentImages
     */
    original_front: string | null;
    /**
     * Temporary URL that expires after 60 seconds for downloading the original image of the back of the document. Might be null if the back of the document was not collected.
     * @type {string}
     * @memberof PhysicalDocumentImages
     */
    original_back: string | null;
    /**
     * Temporary URL that expires after 60 seconds for downloading a cropped image containing just the front of the document.
     * @type {string}
     * @memberof PhysicalDocumentImages
     */
    cropped_front: string | null;
    /**
     * Temporary URL that expires after 60 seconds for downloading a cropped image containing just the back of the document. Might be null if the back of the document was not collected.
     * @type {string}
     * @memberof PhysicalDocumentImages
     */
    cropped_back: string | null;
    /**
     * Temporary URL that expires after 60 seconds for downloading a crop of just the user\'s face from the document image. Might be null if the document does not contain a face photo.
     * @type {string}
     * @memberof PhysicalDocumentImages
     */
    face: string | null;
}
/**
 * The results of the Plaid Check score
 * @export
 * @interface PlaidCheckScore
 */
export interface PlaidCheckScore {
    /**
     * The score returned by the Plaid Check Score model.
     * @type {number}
     * @memberof PlaidCheckScore
     */
    score?: number | null;
    /**
     * The reasons for an individual having risk according to the Plaid Check score.
     * @type {Array<string>}
     * @memberof PlaidCheckScore
     */
    reason_codes?: Array<string>;
    /**
     * Human-readable description of why the Plaid Check score could not be computed.
     * @type {string}
     * @memberof PlaidCheckScore
     */
    error_reason?: string | null;
}
/**
 * Errors are identified by `error_code` and categorized by `error_type`. Use these in preference to HTTP status codes to identify and handle specific errors. HTTP status codes are set and provide the broadest categorization of errors: 4xx codes are for developer- or user-related errors, and 5xx codes are for Plaid-related errors, and the status will be 2xx in non-error cases. An Item with a non-`null` error object will only be part of an API response when calling `/item/get` to view Item status. Otherwise, error fields will be `null` if no error has occurred; if an error has occurred, an error code will be returned instead.
 * @export
 * @interface PlaidError
 */
export interface PlaidError {
    /**
     *
     * @type {PlaidErrorType}
     * @memberof PlaidError
     */
    error_type: PlaidErrorType;
    /**
     * The particular error code. Safe for programmatic use.
     * @type {string}
     * @memberof PlaidError
     */
    error_code: string;
    /**
     * The specific reason for the error code. Currently, reasons are only supported OAuth-based item errors; `null` will be returned otherwise. Safe for programmatic use.  Possible values: `OAUTH_INVALID_TOKEN`: The user’s OAuth connection to this institution has been invalidated.  `OAUTH_CONSENT_EXPIRED`: The user\'s access consent for this OAuth connection to this institution has expired.  `OAUTH_USER_REVOKED`: The user’s OAuth connection to this institution is invalid because the user revoked their connection.
     * @type {string}
     * @memberof PlaidError
     */
    error_code_reason?: string | null;
    /**
     * A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
     * @type {string}
     * @memberof PlaidError
     */
    error_message: string;
    /**
     * A user-friendly representation of the error code. `null` if the error is not related to user action.  This may change over time and is not safe for programmatic use.
     * @type {string}
     * @memberof PlaidError
     */
    display_message: string | null;
    /**
     * A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks.
     * @type {string}
     * @memberof PlaidError
     */
    request_id?: string;
    /**
     * In this product, a request can pertain to more than one Item. If an error is returned for such a request, `causes` will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.  `causes` will only be provided for the `error_type` `ASSET_REPORT_ERROR`. `causes` will also not be populated inside an error nested within a `warning` object.
     * @type {Array<any>}
     * @memberof PlaidError
     */
    causes?: Array<any>;
    /**
     * The HTTP status code associated with the error. This will only be returned in the response body when the error information is provided via a webhook.
     * @type {number}
     * @memberof PlaidError
     */
    status?: number | null;
    /**
     * The URL of a Plaid documentation page with more information about the error
     * @type {string}
     * @memberof PlaidError
     */
    documentation_url?: string;
    /**
     * Suggested steps for resolving the error
     * @type {string}
     * @memberof PlaidError
     */
    suggested_action?: string | null;
}
/**
 * A broad categorization of the error. Safe for programmatic use.
 * @export
 * @enum {string}
 */
export declare enum PlaidErrorType {
    InvalidRequest = "INVALID_REQUEST",
    InvalidResult = "INVALID_RESULT",
    InvalidInput = "INVALID_INPUT",
    InstitutionError = "INSTITUTION_ERROR",
    RateLimitExceeded = "RATE_LIMIT_EXCEEDED",
    ApiError = "API_ERROR",
    ItemError = "ITEM_ERROR",
    AssetReportError = "ASSET_REPORT_ERROR",
    RecaptchaError = "RECAPTCHA_ERROR",
    OauthError = "OAUTH_ERROR",
    PaymentError = "PAYMENT_ERROR",
    BankTransferError = "BANK_TRANSFER_ERROR",
    IncomeVerificationError = "INCOME_VERIFICATION_ERROR",
    MicrodepositsError = "MICRODEPOSITS_ERROR",
    SandboxError = "SANDBOX_ERROR",
    PartnerError = "PARTNER_ERROR",
    TransactionsError = "TRANSACTIONS_ERROR",
    TransactionError = "TRANSACTION_ERROR",
    TransferError = "TRANSFER_ERROR"
}
/**
 * An object containing a set of ids related to an employee
 * @export
 * @interface PlatformIds
 */
export interface PlatformIds {
    /**
     * The ID of an employee as given by their employer
     * @type {string}
     * @memberof PlatformIds
     */
    employee_id?: string | null;
    /**
     * The ID of an employee as given by their payroll
     * @type {string}
     * @memberof PlatformIds
     */
    payroll_id?: string | null;
    /**
     * The ID of the position of the employee
     * @type {string}
     * @memberof PlatformIds
     */
    position_id?: string | null;
}
/**
 * The data from the CashScore® product returned by Prism Data.
 * @export
 * @interface PrismCashScore
 */
export interface PrismCashScore {
    /**
     * The version of Prism Data\'s cash score model used. This field is deprecated in favor of `model_version`.
     * @type {number}
     * @memberof PrismCashScore
     * @deprecated
     */
    version: number;
    /**
     * The version of Prism Data\'s cash score model used.
     * @type {string}
     * @memberof PrismCashScore
     */
    model_version?: string;
    /**
     * The score returned by Prism Data. Ranges from 1-999, with higher score indicating lower risk.
     * @type {number}
     * @memberof PrismCashScore
     */
    score: number;
    /**
     * The reasons for an individual having risk according to the cash score.
     * @type {Array<string>}
     * @memberof PrismCashScore
     */
    reason_codes?: Array<string>;
    /**
     *
     * @type {PrismCashScoreMetadata}
     * @memberof PrismCashScore
     */
    metadata?: PrismCashScoreMetadata;
    /**
     * The error returned by Prism for this product.
     * @type {string}
     * @memberof PrismCashScore
     */
    error_reason?: string;
}
/**
 * An object containing metadata about the provided transactions.
 * @export
 * @interface PrismCashScoreMetadata
 */
export interface PrismCashScoreMetadata {
    /**
     * Number of days since the oldest transaction.
     * @type {number}
     * @memberof PrismCashScoreMetadata
     */
    max_age: number | null;
    /**
     * Number of days since the latest transaction.
     * @type {number}
     * @memberof PrismCashScoreMetadata
     */
    min_age: number | null;
    /**
     * Number of days since the latest credit transaction.
     * @type {number}
     * @memberof PrismCashScoreMetadata
     */
    min_age_credit: number | null;
    /**
     * Number of days since the latest debit transaction.
     * @type {number}
     * @memberof PrismCashScoreMetadata
     */
    min_age_debit: number | null;
    /**
     * Number of days since the oldest debit transaction.
     * @type {number}
     * @memberof PrismCashScoreMetadata
     */
    max_age_debit: number | null;
    /**
     * Number of days since the oldest credit transaction.
     * @type {number}
     * @memberof PrismCashScoreMetadata
     */
    max_age_credit: number | null;
    /**
     * Number of credit transactions.
     * @type {number}
     * @memberof PrismCashScoreMetadata
     */
    num_trxn_credit: number | null;
    /**
     * Number of debit transactions.
     * @type {number}
     * @memberof PrismCashScoreMetadata
     */
    num_trxn_debit: number | null;
    /**
     * Number of credit transactions in the last 30 days.
     * @type {number}
     * @memberof PrismCashScoreMetadata
     */
    l1m_credit_value_cnt: number | null;
    /**
     * Number of debit transactions in the last 30 days.
     * @type {number}
     * @memberof PrismCashScoreMetadata
     */
    l1m_debit_value_cnt: number | null;
}
/**
 * The version of Prism CashScore. If not specified, will default to v3.
 * @export
 * @enum {string}
 */
export declare enum PrismCashScoreVersion {
    _3Lite = "3_lite",
    _3 = "3",
    Null = "null"
}
/**
 * The data from the FirstDetect product returned by Prism Data.
 * @export
 * @interface PrismFirstDetect
 */
export interface PrismFirstDetect {
    /**
     * The version of Prism Data\'s FirstDetect model used. This field is deprecated in favor of `model_version`.
     * @type {number}
     * @memberof PrismFirstDetect
     * @deprecated
     */
    version: number;
    /**
     * The version of Prism Data\'s FirstDetect model used.
     * @type {string}
     * @memberof PrismFirstDetect
     */
    model_version?: string;
    /**
     * The score returned by Prism Data. Ranges from 1-999, with higher score indicating lower risk.
     * @type {number}
     * @memberof PrismFirstDetect
     */
    score: number;
    /**
     * The reasons for an individual having risk according to the FirstDetect score.
     * @type {Array<string>}
     * @memberof PrismFirstDetect
     */
    reason_codes?: Array<string>;
    /**
     *
     * @type {PrismCashScoreMetadata}
     * @memberof PrismFirstDetect
     */
    metadata?: PrismCashScoreMetadata;
    /**
     * The error returned by Prism for this product.
     * @type {string}
     * @memberof PrismFirstDetect
     */
    error_reason?: string;
}
/**
 * The version of Prism FirstDetect. If not specified, will default to v3.
 * @export
 * @enum {string}
 */
export declare enum PrismFirstDetectVersion {
    _3 = "3",
    Null = "null"
}
/**
 * The data from the Insights product returned by Prism Data.
 * @export
 * @interface PrismInsights
 */
export interface PrismInsights {
    /**
     * The version of Prism Data\'s insights model used.
     * @type {number}
     * @memberof PrismInsights
     */
    version: number;
    /**
     * The Insights Result object is a map of cash flow attributes, where the key is a string, and the value is a float or string.
     * @type {object}
     * @memberof PrismInsights
     */
    result?: object;
    /**
     * The error returned by Prism for this product.
     * @type {string}
     * @memberof PrismInsights
     */
    error_reason?: string;
}
/**
 * The version of Prism Insights. If not specified, will default to v3.
 * @export
 * @enum {string}
 */
export declare enum PrismInsightsVersion {
    _3 = "3",
    Null = "null"
}
/**
 * The Prism products that can be returned by the Plaid API
 * @export
 * @enum {string}
 */
export declare enum PrismProduct {
    Insights = "insights",
    Scores = "scores"
}
/**
 * The versions of Prism products to evaluate
 * @export
 * @interface PrismVersions
 */
export interface PrismVersions {
    /**
     *
     * @type {PrismFirstDetectVersion}
     * @memberof PrismVersions
     */
    firstdetect?: PrismFirstDetectVersion | null;
    /**
     *
     * @type {PrismCashScoreVersion}
     * @memberof PrismVersions
     */
    cashscore?: PrismCashScoreVersion | null;
    /**
     *
     * @type {PrismInsightsVersion}
     * @memberof PrismVersions
     */
    insights?: PrismInsightsVersion | null;
}
/**
 * ProcessorAccountGetRequest defines the request schema for `/processor/account/get`
 * @export
 * @interface ProcessorAccountGetRequest
 */
export interface ProcessorAccountGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorAccountGetRequest
     */
    client_id?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorAccountGetRequest
     */
    processor_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorAccountGetRequest
     */
    secret?: string;
}
/**
 * ProcessorAccountGetResponse defines the response schema for `/processor/account/get`
 * @export
 * @interface ProcessorAccountGetResponse
 */
export interface ProcessorAccountGetResponse {
    /**
     *
     * @type {AccountBase}
     * @memberof ProcessorAccountGetResponse
     */
    account: AccountBase;
    /**
     * The Plaid Institution ID associated with the Account.
     * @type {string}
     * @memberof ProcessorAccountGetResponse
     */
    institution_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorAccountGetResponse
     */
    request_id: string;
}
/**
 * ProcessorApexProcessorTokenCreateRequest defines the request schema for `/processor/apex/processor_token/create`
 * @export
 * @interface ProcessorApexProcessorTokenCreateRequest
 */
export interface ProcessorApexProcessorTokenCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorApexProcessorTokenCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorApexProcessorTokenCreateRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ProcessorApexProcessorTokenCreateRequest
     */
    access_token: string;
    /**
     * The `account_id` value obtained from the `onSuccess` callback in Link
     * @type {string}
     * @memberof ProcessorApexProcessorTokenCreateRequest
     */
    account_id: string;
}
/**
 * ProcessorAuthGetRequest defines the request schema for `/processor/auth/get`
 * @export
 * @interface ProcessorAuthGetRequest
 */
export interface ProcessorAuthGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorAuthGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorAuthGetRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorAuthGetRequest
     */
    processor_token: string;
}
/**
 * ProcessorAuthGetResponse defines the response schema for `/processor/auth/get`
 * @export
 * @interface ProcessorAuthGetResponse
 */
export interface ProcessorAuthGetResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorAuthGetResponse
     */
    request_id: string;
    /**
     *
     * @type {ProcessorNumber}
     * @memberof ProcessorAuthGetResponse
     */
    numbers: ProcessorNumber;
    /**
     *
     * @type {AccountBase}
     * @memberof ProcessorAuthGetResponse
     */
    account: AccountBase;
}
/**
 * ProcessorBalanceGetRequest defines the request schema for `/processor/balance/get`
 * @export
 * @interface ProcessorBalanceGetRequest
 */
export interface ProcessorBalanceGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorBalanceGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorBalanceGetRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorBalanceGetRequest
     */
    processor_token: string;
    /**
     *
     * @type {ProcessorBalanceGetRequestOptions}
     * @memberof ProcessorBalanceGetRequest
     */
    options?: ProcessorBalanceGetRequestOptions;
}
/**
 * Optional parameters to `/processor/balance/get`.
 * @export
 * @interface ProcessorBalanceGetRequestOptions
 */
export interface ProcessorBalanceGetRequestOptions {
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the oldest acceptable balance when making a request to `/accounts/balance/get`.  This field is only necessary when the institution is `ins_128026` (Capital One), *and* one or more account types being requested is a non-depository account (such as a credit card) as Capital One does not provide real-time balance for non-depository accounts. In this case, a value must be provided or an `INVALID_REQUEST` error with the code of `INVALID_FIELD` will be returned. For all other institutions, as well as for depository accounts at Capital One (including all checking and savings accounts) this field is ignored and real-time balance information will be fetched.  If this field is not ignored, and no acceptable balance is available, an `INVALID_RESULT` error with the code `LAST_UPDATED_DATETIME_OUT_OF_RANGE` will be returned.
     * @type {string}
     * @memberof ProcessorBalanceGetRequestOptions
     */
    min_last_updated_datetime?: string;
}
/**
 * ProcessorBalanceGetResponse defines the response schema for `/processor/balance/get`
 * @export
 * @interface ProcessorBalanceGetResponse
 */
export interface ProcessorBalanceGetResponse {
    /**
     *
     * @type {AccountBase}
     * @memberof ProcessorBalanceGetResponse
     */
    account: AccountBase;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorBalanceGetResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/processor/bank_transfer/create`
 * @export
 * @interface ProcessorBankTransferCreateRequest
 */
export interface ProcessorBankTransferCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorBankTransferCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorBankTransferCreateRequest
     */
    secret?: string;
    /**
     * A random key provided by the client, per unique bank transfer. Maximum of 50 characters.  The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a bank transfer fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single bank transfer is created.
     * @type {string}
     * @memberof ProcessorBankTransferCreateRequest
     */
    idempotency_key: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorBankTransferCreateRequest
     */
    processor_token: string;
    /**
     *
     * @type {BankTransferType}
     * @memberof ProcessorBankTransferCreateRequest
     */
    type: BankTransferType;
    /**
     *
     * @type {BankTransferNetwork}
     * @memberof ProcessorBankTransferCreateRequest
     */
    network: BankTransferNetwork;
    /**
     * The amount of the bank transfer (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof ProcessorBankTransferCreateRequest
     */
    amount: string;
    /**
     * The currency of the transfer amount – should be set to \"USD\".
     * @type {string}
     * @memberof ProcessorBankTransferCreateRequest
     */
    iso_currency_code: string;
    /**
     * The transfer description. Maximum of 10 characters.
     * @type {string}
     * @memberof ProcessorBankTransferCreateRequest
     */
    description: string;
    /**
     *
     * @type {ACHClass}
     * @memberof ProcessorBankTransferCreateRequest
     */
    ach_class?: ACHClass;
    /**
     *
     * @type {BankTransferUser}
     * @memberof ProcessorBankTransferCreateRequest
     */
    user: BankTransferUser;
    /**
     * An arbitrary string provided by the client for storage with the bank transfer. May be up to 100 characters.
     * @type {string}
     * @memberof ProcessorBankTransferCreateRequest
     */
    custom_tag?: string | null;
    /**
     * The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply: The JSON values must be Strings (no nested JSON objects allowed) Only ASCII characters may be used Maximum of 50 key/value pairs Maximum key length of 40 characters Maximum value length of 500 characters
     * @type {{ [key: string]: string; }}
     * @memberof ProcessorBankTransferCreateRequest
     */
    metadata?: {
        [key: string]: string;
    } | null;
    /**
     * Plaid’s unique identifier for the origination account for this transfer. If you have more than one origination account, this value must be specified.
     * @type {string}
     * @memberof ProcessorBankTransferCreateRequest
     */
    origination_account_id?: string | null;
}
/**
 * Defines the response schema for `/processor/bank_transfer/create`
 * @export
 * @interface ProcessorBankTransferCreateResponse
 */
export interface ProcessorBankTransferCreateResponse {
    /**
     *
     * @type {BankTransfer}
     * @memberof ProcessorBankTransferCreateResponse
     */
    bank_transfer: BankTransfer;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorBankTransferCreateResponse
     */
    request_id: string;
}
/**
 * This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).  Fired when new transaction data is available for an Item. Plaid will typically check for new transaction data several times a day.  This webhook is intended for use with `/processor/transactions/get`; if you are using the newer `/processor/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
 * @export
 * @interface ProcessorDefaultUpdateWebhook
 */
export interface ProcessorDefaultUpdateWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof ProcessorDefaultUpdateWebhook
     */
    webhook_type: string;
    /**
     * `DEFAULT_UPDATE`
     * @type {string}
     * @memberof ProcessorDefaultUpdateWebhook
     */
    webhook_code: string;
    /**
     *
     * @type {PlaidError}
     * @memberof ProcessorDefaultUpdateWebhook
     */
    error?: PlaidError | null;
    /**
     * The number of new transactions detected since the last time this webhook was fired.
     * @type {number}
     * @memberof ProcessorDefaultUpdateWebhook
     */
    new_transactions: number;
    /**
     * The ID of the account.
     * @type {string}
     * @memberof ProcessorDefaultUpdateWebhook
     */
    account_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ProcessorDefaultUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).  Fired when an Item\'s historical transaction pull is completed and Plaid has prepared as much historical transaction data as possible for the Item. Once this webhook has been fired, transaction data beyond the most recent 30 days can be fetched for the Item. This webhook will also be fired if account selections for the Item are updated, with `new_transactions` set to the number of net new transactions pulled after the account selection update.  This webhook is intended for use with `/processor/transactions/get`; if you are using the newer `/processor/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
 * @export
 * @interface ProcessorHistoricalUpdateWebhook
 */
export interface ProcessorHistoricalUpdateWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof ProcessorHistoricalUpdateWebhook
     */
    webhook_type: string;
    /**
     * `HISTORICAL_UPDATE`
     * @type {string}
     * @memberof ProcessorHistoricalUpdateWebhook
     */
    webhook_code: string;
    /**
     *
     * @type {PlaidError}
     * @memberof ProcessorHistoricalUpdateWebhook
     */
    error?: PlaidError | null;
    /**
     * The number of new transactions available
     * @type {number}
     * @memberof ProcessorHistoricalUpdateWebhook
     */
    new_transactions: number;
    /**
     * The ID of the account.
     * @type {string}
     * @memberof ProcessorHistoricalUpdateWebhook
     */
    account_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ProcessorHistoricalUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * ProcessorIdentityGetRequest defines the request schema for `/processor/identity/get`
 * @export
 * @interface ProcessorIdentityGetRequest
 */
export interface ProcessorIdentityGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorIdentityGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorIdentityGetRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorIdentityGetRequest
     */
    processor_token: string;
}
/**
 * ProcessorIdentityGetResponse defines the response schema for `/processor/identity/get`
 * @export
 * @interface ProcessorIdentityGetResponse
 */
export interface ProcessorIdentityGetResponse {
    /**
     *
     * @type {AccountIdentity}
     * @memberof ProcessorIdentityGetResponse
     */
    account: AccountIdentity;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorIdentityGetResponse
     */
    request_id: string;
}
/**
 * ProcessorIdentityMatchRequest defines the request schema for `/processor/identity/match`
 * @export
 * @interface ProcessorIdentityMatchRequest
 */
export interface ProcessorIdentityMatchRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorIdentityMatchRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorIdentityMatchRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorIdentityMatchRequest
     */
    processor_token: string;
    /**
     *
     * @type {IdentityMatchUser}
     * @memberof ProcessorIdentityMatchRequest
     */
    user?: IdentityMatchUser;
}
/**
 * ProcessorIdentityMatchResponse defines the response schema for `/processor/identity/match`
 * @export
 * @interface ProcessorIdentityMatchResponse
 */
export interface ProcessorIdentityMatchResponse {
    /**
     *
     * @type {AccountIdentityMatchScore}
     * @memberof ProcessorIdentityMatchResponse
     */
    account: AccountIdentityMatchScore;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorIdentityMatchResponse
     */
    request_id: string;
}
/**
 * This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).  Fired when an Item\'s initial transaction pull is completed. Once this webhook has been fired, transaction data for the most recent 30 days can be fetched for the Item. This webhook will also be fired if account selections for the Item are updated, with `new_transactions` set to the number of net new transactions pulled after the account selection update.  This webhook is intended for use with `/processor/transactions/get`; if you are using the newer `/processor/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
 * @export
 * @interface ProcessorInitialUpdateWebhook
 */
export interface ProcessorInitialUpdateWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof ProcessorInitialUpdateWebhook
     */
    webhook_type: string;
    /**
     * `INITIAL_UPDATE`
     * @type {string}
     * @memberof ProcessorInitialUpdateWebhook
     */
    webhook_code: string;
    /**
     * The error code associated with the webhook.
     * @type {string}
     * @memberof ProcessorInitialUpdateWebhook
     */
    error?: string | null;
    /**
     * The number of new transactions available.
     * @type {number}
     * @memberof ProcessorInitialUpdateWebhook
     */
    new_transactions: number;
    /**
     * The ID of the account.
     * @type {string}
     * @memberof ProcessorInitialUpdateWebhook
     */
    account_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ProcessorInitialUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * ProcessorInvestmentsHoldingsGetRequest defines the request schema for `/processor/investments/holdings/get`
 * @export
 * @interface ProcessorInvestmentsHoldingsGetRequest
 */
export interface ProcessorInvestmentsHoldingsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorInvestmentsHoldingsGetRequest
     */
    client_id?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorInvestmentsHoldingsGetRequest
     */
    processor_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorInvestmentsHoldingsGetRequest
     */
    secret?: string;
}
/**
 * ProcessorInvestmentsHoldingsGetResponse defines the response schema for `/processor/invesments/holdings/get`
 * @export
 * @interface ProcessorInvestmentsHoldingsGetResponse
 */
export interface ProcessorInvestmentsHoldingsGetResponse {
    /**
     *
     * @type {AccountBase}
     * @memberof ProcessorInvestmentsHoldingsGetResponse
     */
    account: AccountBase;
    /**
     * The holdings belonging to investment accounts associated with the Item. Details of the securities in the holdings are provided in the `securities` field.
     * @type {Array<Holding>}
     * @memberof ProcessorInvestmentsHoldingsGetResponse
     */
    holdings: Array<Holding>;
    /**
     * Objects describing the securities held in the account.
     * @type {Array<Security>}
     * @memberof ProcessorInvestmentsHoldingsGetResponse
     */
    securities: Array<Security>;
    /**
     * When true, this field indicates that the Item\'s portfolio was manually created with the Investments Fallback flow.
     * @type {boolean}
     * @memberof ProcessorInvestmentsHoldingsGetResponse
     */
    is_investments_fallback_item: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorInvestmentsHoldingsGetResponse
     */
    request_id?: string;
}
/**
 * ProcessorInvestmentsTransactionsGetRequest defines the request schema for `/processor/investments/transactions/get`
 * @export
 * @interface ProcessorInvestmentsTransactionsGetRequest
 */
export interface ProcessorInvestmentsTransactionsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorInvestmentsTransactionsGetRequest
     */
    client_id?: string;
    /**
     *
     * @type {InvestmentsTransactionsGetRequestOptions}
     * @memberof ProcessorInvestmentsTransactionsGetRequest
     */
    options?: InvestmentsTransactionsGetRequestOptions;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorInvestmentsTransactionsGetRequest
     */
    processor_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorInvestmentsTransactionsGetRequest
     */
    secret?: string;
    /**
     * The earliest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof ProcessorInvestmentsTransactionsGetRequest
     */
    start_date: string;
    /**
     * The latest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof ProcessorInvestmentsTransactionsGetRequest
     */
    end_date: string;
}
/**
 * ProcessorInvestmentsTransactionsGetRequest defines the response schema for `/processor/investments/transactions/get`
 * @export
 * @interface ProcessorInvestmentsTransactionsGetResponse
 */
export interface ProcessorInvestmentsTransactionsGetResponse {
    /**
     *
     * @type {AccountBase}
     * @memberof ProcessorInvestmentsTransactionsGetResponse
     */
    account: AccountBase;
    /**
     * An array containing investment transactions from the account. Investments transactions are returned in reverse chronological order, with the most recent at the beginning of the array. The maximum number of transactions returned is determined by the `count` parameter.
     * @type {Array<InvestmentTransaction>}
     * @memberof ProcessorInvestmentsTransactionsGetResponse
     */
    investment_transactions: Array<InvestmentTransaction>;
    /**
     * All securities for which there is a corresponding transaction being fetched.
     * @type {Array<Security>}
     * @memberof ProcessorInvestmentsTransactionsGetResponse
     */
    securities: Array<Security>;
    /**
     * The total number of transactions available within the date range specified. If `total_investment_transactions` is larger than the size of the `transactions` array, more transactions are available and can be fetched via manipulating the `offset` parameter.
     * @type {number}
     * @memberof ProcessorInvestmentsTransactionsGetResponse
     */
    total_investment_transactions: number;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorInvestmentsTransactionsGetResponse
     */
    request_id: string;
    /**
     * When true, this field indicates that the Item\'s portfolio was manually created with the Investments Fallback flow.
     * @type {boolean}
     * @memberof ProcessorInvestmentsTransactionsGetResponse
     */
    is_investments_fallback_item?: boolean;
}
/**
 * ProcessorLiabilitiesGetRequest defines the request schema for `/processor/liabilities/get`
 * @export
 * @interface ProcessorLiabilitiesGetRequest
 */
export interface ProcessorLiabilitiesGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorLiabilitiesGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorLiabilitiesGetRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorLiabilitiesGetRequest
     */
    processor_token: string;
}
/**
 * ProcessorLiabilitiesGetResponse defines the response schema for `/processor/liabilities/get`
 * @export
 * @interface ProcessorLiabilitiesGetResponse
 */
export interface ProcessorLiabilitiesGetResponse {
    /**
     *
     * @type {AccountBase}
     * @memberof ProcessorLiabilitiesGetResponse
     */
    account: AccountBase;
    /**
     *
     * @type {LiabilitiesObject}
     * @memberof ProcessorLiabilitiesGetResponse
     */
    liabilities: LiabilitiesObject;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorLiabilitiesGetResponse
     */
    request_id: string;
}
/**
 * An object containing identifying numbers used for making electronic transfers to and from the `account`. The identifying number type (ACH, EFT, IBAN, or BACS) used will depend on the country of the account. An account may have more than one number type. If a particular identifying number type is not used by the `account` for which auth data has been requested, a null value will be returned.
 * @export
 * @interface ProcessorNumber
 */
export interface ProcessorNumber {
    /**
     *
     * @type {NumbersACHNullable}
     * @memberof ProcessorNumber
     */
    ach?: NumbersACHNullable | null;
    /**
     *
     * @type {NumbersEFTNullable}
     * @memberof ProcessorNumber
     */
    eft?: NumbersEFTNullable | null;
    /**
     *
     * @type {NumbersInternationalNullable}
     * @memberof ProcessorNumber
     */
    international?: NumbersInternationalNullable | null;
    /**
     *
     * @type {NumbersBACSNullable}
     * @memberof ProcessorNumber
     */
    bacs?: NumbersBACSNullable | null;
}
/**
 * This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).  Fired when recurring transactions data is updated. This includes when a new recurring stream is detected or when a new transaction is added to an existing recurring stream. The `RECURRING_TRANSACTIONS_UPDATE` webhook will also fire when one or more attributes of the recurring stream changes, which is usually a result of the addition, update, or removal of transactions to the stream.  After receipt of this webhook, the updated data can be fetched from `/processor/transactions/recurring/get`.
 * @export
 * @interface ProcessorRecurringTransactionsUpdateWebhook
 */
export interface ProcessorRecurringTransactionsUpdateWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof ProcessorRecurringTransactionsUpdateWebhook
     */
    webhook_type: string;
    /**
     * `RECURRING_TRANSACTIONS_UPDATE`
     * @type {string}
     * @memberof ProcessorRecurringTransactionsUpdateWebhook
     */
    webhook_code: string;
    /**
     * The ID of the account.
     * @type {string}
     * @memberof ProcessorRecurringTransactionsUpdateWebhook
     */
    account_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ProcessorRecurringTransactionsUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * ProcessorSignalDecisionReportRequest defines the request schema for `/processor/signal/decision/report`
 * @export
 * @interface ProcessorSignalDecisionReportRequest
 */
export interface ProcessorSignalDecisionReportRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorSignalDecisionReportRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorSignalDecisionReportRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorSignalDecisionReportRequest
     */
    processor_token: string;
    /**
     * Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate`
     * @type {string}
     * @memberof ProcessorSignalDecisionReportRequest
     */
    client_transaction_id: string;
    /**
     * `true` if the ACH transaction was initiated, `false` otherwise.  This field must be returned as a boolean. If formatted incorrectly, this will result in an [`INVALID_FIELD`](/docs/errors/invalid-request/#invalid_field) error.
     * @type {boolean}
     * @memberof ProcessorSignalDecisionReportRequest
     */
    initiated: boolean;
    /**
     * The actual number of days (hold time) since the ACH debit transaction that you wait before making funds available to your customers. The holding time could affect the ACH return rate.  For example, use 0 if you make funds available to your customers instantly or the same day following the debit transaction, or 1 if you make funds available the next day following the debit initialization.
     * @type {number}
     * @memberof ProcessorSignalDecisionReportRequest
     */
    days_funds_on_hold?: number | null;
    /**
     *
     * @type {SignalDecisionOutcome}
     * @memberof ProcessorSignalDecisionReportRequest
     */
    decision_outcome?: SignalDecisionOutcome | null;
    /**
     *
     * @type {SignalPaymentMethod}
     * @memberof ProcessorSignalDecisionReportRequest
     */
    payment_method?: SignalPaymentMethod | null;
    /**
     * The amount (in USD) made available to your customers instantly following the debit transaction. It could be a partial amount of the requested transaction (example: 102.05).
     * @type {number}
     * @memberof ProcessorSignalDecisionReportRequest
     */
    amount_instantly_available?: number | null;
}
/**
 * ProcessorSignalDecisionReportResponse defines the response schema for `/processor/signal/decision/report`
 * @export
 * @interface ProcessorSignalDecisionReportResponse
 */
export interface ProcessorSignalDecisionReportResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorSignalDecisionReportResponse
     */
    request_id: string;
}
/**
 * ProcessorSignalEvaluateRequest defines the request schema for `/processor/signal/evaluate`
 * @export
 * @interface ProcessorSignalEvaluateRequest
 */
export interface ProcessorSignalEvaluateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorSignalEvaluateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorSignalEvaluateRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorSignalEvaluateRequest
     */
    processor_token: string;
    /**
     * The unique ID that you would like to use to refer to this transaction. For your convenience mapping your internal data, you could use your internal ID/identifier for this transaction. The max length for this field is 36 characters.
     * @type {string}
     * @memberof ProcessorSignalEvaluateRequest
     */
    client_transaction_id: string;
    /**
     * The transaction amount, in USD (e.g. `102.05`)
     * @type {number}
     * @memberof ProcessorSignalEvaluateRequest
     */
    amount: number;
    /**
     * `true` if the end user is present while initiating the ACH transfer and the endpoint is being called; `false` otherwise (for example, when the ACH transfer is scheduled and the end user is not present, or you call this endpoint after the ACH transfer but before submitting the Nacha file for ACH processing).
     * @type {boolean}
     * @memberof ProcessorSignalEvaluateRequest
     */
    user_present?: boolean | null;
    /**
     * A unique ID that identifies the end user in your system. This ID is used to correlate requests by a user with multiple Items. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof ProcessorSignalEvaluateRequest
     */
    client_user_id?: string;
    /**
     * **true** if the ACH transaction is a recurring transaction; **false** otherwise
     * @type {boolean}
     * @memberof ProcessorSignalEvaluateRequest
     */
    is_recurring?: boolean | null;
    /**
     * The default ACH or non-ACH payment method to complete the transaction. `SAME_DAY_ACH`: Same Day ACH by NACHA. The debit transaction is processed and settled on the same day `NEXT_DAY_ACH`: Next Day ACH settlement for debit transactions, offered by some payment processors `STANDARD_ACH`: standard ACH by NACHA `REAL_TIME_PAYMENTS`: real-time payments such as RTP and FedNow `DEBIT_CARD`: if the default payment is over debit card networks `MULTIPLE_PAYMENT_METHODS`: if there is no default debit rail or there are multiple payment methods Possible values:  `SAME_DAY_ACH`, `NEXT_DAY_ACH`, `STANDARD_ACH`, `REAL_TIME_PAYMENTS`, `DEBIT_CARD`, `MULTIPLE_PAYMENT_METHODS`
     * @type {string}
     * @memberof ProcessorSignalEvaluateRequest
     */
    default_payment_method?: string | null;
    /**
     *
     * @type {SignalUser}
     * @memberof ProcessorSignalEvaluateRequest
     */
    user?: SignalUser;
    /**
     *
     * @type {SignalDevice}
     * @memberof ProcessorSignalEvaluateRequest
     */
    device?: SignalDevice;
    /**
     * The key of the Ruleset to use for this transaction. You can configure a Ruleset using the Signal dashboard located within the Plaid Dashboard. If not provided, no Ruleset will be used. This feature is currently in closed beta; to request access, contact your account manager.
     * @type {string}
     * @memberof ProcessorSignalEvaluateRequest
     */
    ruleset_key?: string | null;
}
/**
 * ProcessorSignalEvaluateResponse defines the response schema for `/processor/signal/evaluate`
 * @export
 * @interface ProcessorSignalEvaluateResponse
 */
export interface ProcessorSignalEvaluateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorSignalEvaluateResponse
     */
    request_id: string;
    /**
     *
     * @type {SignalScores}
     * @memberof ProcessorSignalEvaluateResponse
     */
    scores: SignalScores | null;
    /**
     *
     * @type {SignalEvaluateCoreAttributes}
     * @memberof ProcessorSignalEvaluateResponse
     */
    core_attributes?: SignalEvaluateCoreAttributes;
    /**
     *
     * @type {Ruleset}
     * @memberof ProcessorSignalEvaluateResponse
     */
    ruleset?: Ruleset | null;
    /**
     * If bank information was not available to be used in the Signal model, this array contains warnings describing why bank data is missing. If you want to receive an API error instead of Signal scores in the case of missing bank data, file a support ticket or contact your Plaid account manager.
     * @type {Array<SignalWarning>}
     * @memberof ProcessorSignalEvaluateResponse
     */
    warnings?: Array<SignalWarning>;
}
/**
 * ProcessorSignalPrepareRequest defines the request schema for `/processor/signal/prepare`
 * @export
 * @interface ProcessorSignalPrepareRequest
 */
export interface ProcessorSignalPrepareRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorSignalPrepareRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorSignalPrepareRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorSignalPrepareRequest
     */
    processor_token: string;
}
/**
 * ProcessorSignalPrepareResponse defines the response schema for `/processor/signal/prepare`
 * @export
 * @interface ProcessorSignalPrepareResponse
 */
export interface ProcessorSignalPrepareResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorSignalPrepareResponse
     */
    request_id: string;
}
/**
 * ProcessorSignalReturnReportRequest defines the request schema for `/processor/signal/return/report`
 * @export
 * @interface ProcessorSignalReturnReportRequest
 */
export interface ProcessorSignalReturnReportRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorSignalReturnReportRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorSignalReturnReportRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorSignalReturnReportRequest
     */
    processor_token: string;
    /**
     * Must be the same as the `client_transaction_id` supplied when calling `/processor/signal/evaluate`
     * @type {string}
     * @memberof ProcessorSignalReturnReportRequest
     */
    client_transaction_id: string;
    /**
     * Must be a valid ACH return code (e.g. \"R01\")  If formatted incorrectly, this will result in an [`INVALID_FIELD`](/docs/errors/invalid-request/#invalid_field) error.
     * @type {string}
     * @memberof ProcessorSignalReturnReportRequest
     */
    return_code: string;
    /**
     * Date and time when you receive the returns from your payment processors, in ISO 8601 format (`YYYY-MM-DDTHH:mm:ssZ`).
     * @type {string}
     * @memberof ProcessorSignalReturnReportRequest
     */
    returned_at?: string | null;
}
/**
 * ProcessorSignalReturnReportResponse defines the response schema for `/processor/signal/return/report`
 * @export
 * @interface ProcessorSignalReturnReportResponse
 */
export interface ProcessorSignalReturnReportResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorSignalReturnReportResponse
     */
    request_id: string;
}
/**
 * ProcessorStripeBankAccountTokenCreateRequest defines the request schema for `/processor/stripe/bank_account/create`
 * @export
 * @interface ProcessorStripeBankAccountTokenCreateRequest
 */
export interface ProcessorStripeBankAccountTokenCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorStripeBankAccountTokenCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorStripeBankAccountTokenCreateRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ProcessorStripeBankAccountTokenCreateRequest
     */
    access_token: string;
    /**
     * The `account_id` value obtained from the `onSuccess` callback in Link
     * @type {string}
     * @memberof ProcessorStripeBankAccountTokenCreateRequest
     */
    account_id: string;
}
/**
 * ProcessorStripeBankAccountTokenCreateResponse defines the response schema for `/processor/stripe/bank_account/create`
 * @export
 * @interface ProcessorStripeBankAccountTokenCreateResponse
 */
export interface ProcessorStripeBankAccountTokenCreateResponse {
    /**
     * A token that can be sent to Stripe for use in making API calls to Plaid
     * @type {string}
     * @memberof ProcessorStripeBankAccountTokenCreateResponse
     */
    stripe_bank_account_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorStripeBankAccountTokenCreateResponse
     */
    request_id: string;
}
/**
 * This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).  Fired when an Item\'s transactions change. This can be due to any event resulting in new changes, such as an initial 30-day transactions fetch upon the initialization of an Item with transactions, the backfill of historical transactions that occurs shortly after, or when changes are populated from a regularly-scheduled transactions update job. It is recommended to listen for the `SYNC_UPDATES_AVAILABLE` webhook when using the `/processor/transactions/sync` endpoint. Note that when using `/processor/transactions/sync` the older webhooks `INITIAL_UPDATE`, `HISTORICAL_UPDATE`, `DEFAULT_UPDATE`, and `TRANSACTIONS_REMOVED`, which are intended for use with `/processor/transactions/get`, will also continue to be sent in order to maintain backwards compatibility. It is not necessary to listen for and respond to those webhooks when using `/processor/transactions/sync`.  After receipt of this webhook, the new changes can be fetched for the Item from `/processor/transactions/sync`.  Note that to receive this webhook for an Item, `/processor/transactions/sync` must have been called at least once on that Item. This means that, unlike the `INITIAL_UPDATE` and `HISTORICAL_UPDATE` webhooks, it will not fire immediately upon Item creation. If `/transactions/sync` is called on an Item that was *not* initialized with Transactions, the webhook will fire twice: once the first 30 days of transactions data has been fetched, and a second time when all available historical transactions data has been fetched.  This webhook will typically not fire in the Sandbox environment, due to the lack of dynamic transactions data. To test this webhook in Sandbox, call `/sandbox/item/fire_webhook`.
 * @export
 * @interface ProcessorSyncUpdatesAvailableWebhook
 */
export interface ProcessorSyncUpdatesAvailableWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof ProcessorSyncUpdatesAvailableWebhook
     */
    webhook_type: string;
    /**
     * `SYNC_UPDATES_AVAILABLE`
     * @type {string}
     * @memberof ProcessorSyncUpdatesAvailableWebhook
     */
    webhook_code: string;
    /**
     * The ID of the account.
     * @type {string}
     * @memberof ProcessorSyncUpdatesAvailableWebhook
     */
    account_id: string;
    /**
     * Indicates if initial pull information is available.
     * @type {boolean}
     * @memberof ProcessorSyncUpdatesAvailableWebhook
     */
    initial_update_complete: boolean;
    /**
     * Indicates if historical pull information is available.
     * @type {boolean}
     * @memberof ProcessorSyncUpdatesAvailableWebhook
     */
    historical_update_complete: boolean;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ProcessorSyncUpdatesAvailableWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * ProcessorTokenCreateRequest defines the request schema for `/processor/token/create`
 * @export
 * @interface ProcessorTokenCreateRequest
 */
export interface ProcessorTokenCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTokenCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTokenCreateRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof ProcessorTokenCreateRequest
     */
    access_token: string;
    /**
     * The `account_id` value obtained from the `onSuccess` callback in Link
     * @type {string}
     * @memberof ProcessorTokenCreateRequest
     */
    account_id: string;
    /**
     * The processor you are integrating with.
     * @type {string}
     * @memberof ProcessorTokenCreateRequest
     */
    processor: ProcessorTokenCreateRequestProcessorEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum ProcessorTokenCreateRequestProcessorEnum {
    Dwolla = "dwolla",
    Galileo = "galileo",
    ModernTreasury = "modern_treasury",
    Ocrolus = "ocrolus",
    Vesta = "vesta",
    Drivewealth = "drivewealth",
    Vopay = "vopay",
    Achq = "achq",
    Check = "check",
    Checkbook = "checkbook",
    Circle = "circle",
    SilaMoney = "sila_money",
    Rize = "rize",
    SvbApi = "svb_api",
    Unit = "unit",
    Wyre = "wyre",
    Lithic = "lithic",
    Alpaca = "alpaca",
    Astra = "astra",
    Moov = "moov",
    TreasuryPrime = "treasury_prime",
    Marqeta = "marqeta",
    Checkout = "checkout",
    Solid = "solid",
    Highnote = "highnote",
    Gemini = "gemini",
    ApexClearing = "apex_clearing",
    Gusto = "gusto",
    Adyen = "adyen",
    Atomic = "atomic",
    I2c = "i2c",
    Wepay = "wepay",
    Riskified = "riskified",
    Utb = "utb",
    AdpRoll = "adp_roll",
    FortressTrust = "fortress_trust",
    Bond = "bond",
    Bakkt = "bakkt",
    Teal = "teal",
    ZeroHash = "zero_hash",
    TabaPay = "taba_pay",
    Knot = "knot",
    Sardine = "sardine",
    Alloy = "alloy",
    Finix = "finix",
    Nuvei = "nuvei",
    Layer = "layer",
    Boom = "boom",
    Paynote = "paynote",
    Stake = "stake",
    Wedbush = "wedbush",
    Esusu = "esusu",
    Ansa = "ansa",
    Scribeup = "scribeup",
    Straddle = "straddle",
    Loanpro = "loanpro"
}
/**
 * ProcessorTokenCreateResponse defines the response schema for `/processor/token/create` and `/processor/apex/processor_token/create`
 * @export
 * @interface ProcessorTokenCreateResponse
 */
export interface ProcessorTokenCreateResponse {
    /**
     * The `processor_token` that can then be used by the Plaid partner to make API requests
     * @type {string}
     * @memberof ProcessorTokenCreateResponse
     */
    processor_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorTokenCreateResponse
     */
    request_id: string;
}
/**
 * ProcessorTokenPermissionsGetRequest defines the request schema for `/processor/token/permissions/get`
 * @export
 * @interface ProcessorTokenPermissionsGetRequest
 */
export interface ProcessorTokenPermissionsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTokenPermissionsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTokenPermissionsGetRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorTokenPermissionsGetRequest
     */
    processor_token: string;
}
/**
 * ProcessorTokenPermissionsGetResponse defines the response schema for `/processor/token/permissions/get`
 * @export
 * @interface ProcessorTokenPermissionsGetResponse
 */
export interface ProcessorTokenPermissionsGetResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorTokenPermissionsGetResponse
     */
    request_id: string;
    /**
     * A list of products the processor token should have access to. An empty list means that the processor has access to all available products, including future products.
     * @type {Array<Products>}
     * @memberof ProcessorTokenPermissionsGetResponse
     */
    products: Array<Products>;
}
/**
 * ProcessorTokenPermissionsSetRequest defines the request schema for `/processor/token/permissions/set`
 * @export
 * @interface ProcessorTokenPermissionsSetRequest
 */
export interface ProcessorTokenPermissionsSetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTokenPermissionsSetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTokenPermissionsSetRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorTokenPermissionsSetRequest
     */
    processor_token: string;
    /**
     * A list of products the processor token should have access to. An empty list will grant access to all products.
     * @type {Array<Products>}
     * @memberof ProcessorTokenPermissionsSetRequest
     */
    products: Array<Products>;
}
/**
 * ProcessorTokenPermissionsSetResponse defines the response schema for `/processor/token/permissions/set`
 * @export
 * @interface ProcessorTokenPermissionsSetResponse
 */
export interface ProcessorTokenPermissionsSetResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorTokenPermissionsSetResponse
     */
    request_id: string;
}
/**
 * This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).  Fired when a processor updates the webhook URL for a processor token via `/processor/token/webhook/update`.
 * @export
 * @interface ProcessorTokenWebhookUpdate
 */
export interface ProcessorTokenWebhookUpdate {
    /**
     * `PROCESSOR_TOKEN`
     * @type {string}
     * @memberof ProcessorTokenWebhookUpdate
     */
    webhook_type: string;
    /**
     * `WEBHOOK_UPDATE_ACKNOWLEDGED`
     * @type {string}
     * @memberof ProcessorTokenWebhookUpdate
     */
    webhook_code: string;
    /**
     *
     * @type {PlaidError}
     * @memberof ProcessorTokenWebhookUpdate
     */
    error?: PlaidError | null;
    /**
     * The ID of the account.
     * @type {string}
     * @memberof ProcessorTokenWebhookUpdate
     */
    account_id: string;
    /**
     * The new webhook URL.
     * @type {string}
     * @memberof ProcessorTokenWebhookUpdate
     */
    new_webhook_url: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ProcessorTokenWebhookUpdate
     */
    environment: WebhookEnvironmentValues;
}
/**
 * ProcessorTokenWebhookUpdateRequest defines the request schema for `/processor/token/webhook/update`
 * @export
 * @interface ProcessorTokenWebhookUpdateRequest
 */
export interface ProcessorTokenWebhookUpdateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTokenWebhookUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTokenWebhookUpdateRequest
     */
    secret?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorTokenWebhookUpdateRequest
     */
    processor_token: string;
    /**
     * The new webhook URL to associate with the processor token. To remove a webhook from a processor token, set to `null`.
     * @type {string}
     * @memberof ProcessorTokenWebhookUpdateRequest
     */
    webhook: string | null;
}
/**
 * ProcessorTokenWebhookUpdateResponse defines the response schema for `/processor/token/webhook/update`
 * @export
 * @interface ProcessorTokenWebhookUpdateResponse
 */
export interface ProcessorTokenWebhookUpdateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorTokenWebhookUpdateResponse
     */
    request_id: string;
}
/**
 * ProcessorTransactionsGetRequest defines the request schema for `/processor/transactions/get`
 * @export
 * @interface ProcessorTransactionsGetRequest
 */
export interface ProcessorTransactionsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTransactionsGetRequest
     */
    client_id?: string;
    /**
     *
     * @type {ProcessorTransactionsGetRequestOptions}
     * @memberof ProcessorTransactionsGetRequest
     */
    options?: ProcessorTransactionsGetRequestOptions;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorTransactionsGetRequest
     */
    processor_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTransactionsGetRequest
     */
    secret?: string;
    /**
     * The earliest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof ProcessorTransactionsGetRequest
     */
    start_date: string;
    /**
     * The latest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof ProcessorTransactionsGetRequest
     */
    end_date: string;
}
/**
 * An optional object to be used with the request. If specified, `options` must not be `null`.
 * @export
 * @interface ProcessorTransactionsGetRequestOptions
 */
export interface ProcessorTransactionsGetRequestOptions {
    /**
     * The number of transactions to fetch.
     * @type {number}
     * @memberof ProcessorTransactionsGetRequestOptions
     */
    count?: number;
    /**
     * The number of transactions to skip. The default value is 0.
     * @type {number}
     * @memberof ProcessorTransactionsGetRequestOptions
     */
    offset?: number;
    /**
     * Include the raw unparsed transaction description from the financial institution.
     * @type {boolean}
     * @memberof ProcessorTransactionsGetRequestOptions
     */
    include_original_description?: boolean | null;
    /**
     * Personal finance categories are now returned by default.
     * @type {boolean}
     * @memberof ProcessorTransactionsGetRequestOptions
     * @deprecated
     */
    include_personal_finance_category_beta?: boolean;
    /**
     * Personal finance categories are now returned by default.
     * @type {boolean}
     * @memberof ProcessorTransactionsGetRequestOptions
     * @deprecated
     */
    include_personal_finance_category?: boolean;
    /**
     * Counterparties and extra merchant fields are now returned by default.
     * @type {boolean}
     * @memberof ProcessorTransactionsGetRequestOptions
     * @deprecated
     */
    include_logo_and_counterparty_beta?: boolean;
}
/**
 * ProcessorTransactionsGetResponse defines the response schema for `/processor/transactions/get`
 * @export
 * @interface ProcessorTransactionsGetResponse
 */
export interface ProcessorTransactionsGetResponse {
    /**
     *
     * @type {AccountBase}
     * @memberof ProcessorTransactionsGetResponse
     */
    account: AccountBase;
    /**
     * An array containing transactions from the account. Transactions are returned in reverse chronological order, with the most recent at the beginning of the array. The maximum number of transactions returned is determined by the `count` parameter.
     * @type {Array<Transaction>}
     * @memberof ProcessorTransactionsGetResponse
     */
    transactions: Array<Transaction>;
    /**
     * The total number of transactions available within the date range specified. If `total_transactions` is larger than the size of the `transactions` array, more transactions are available and can be fetched via manipulating the `offset` parameter.
     * @type {number}
     * @memberof ProcessorTransactionsGetResponse
     */
    total_transactions: number;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorTransactionsGetResponse
     */
    request_id: string;
}
/**
 * ProcessorTransactionsRecurringGetRequest defines the request schema for `/processor/transactions/recurring/get`
 * @export
 * @interface ProcessorTransactionsRecurringGetRequest
 */
export interface ProcessorTransactionsRecurringGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTransactionsRecurringGetRequest
     */
    client_id?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorTransactionsRecurringGetRequest
     */
    processor_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTransactionsRecurringGetRequest
     */
    secret?: string;
    /**
     *
     * @type {TransactionsRecurringGetRequestOptions}
     * @memberof ProcessorTransactionsRecurringGetRequest
     */
    options?: TransactionsRecurringGetRequestOptions;
}
/**
 * ProcessorTransactionsRecurringGetResponse defines the response schema for `/processor/transactions/recurring/get`
 * @export
 * @interface ProcessorTransactionsRecurringGetResponse
 */
export interface ProcessorTransactionsRecurringGetResponse {
    /**
     * An array of depository transaction streams.
     * @type {Array<TransactionStream>}
     * @memberof ProcessorTransactionsRecurringGetResponse
     */
    inflow_streams: Array<TransactionStream>;
    /**
     * An array of expense transaction streams.
     * @type {Array<TransactionStream>}
     * @memberof ProcessorTransactionsRecurringGetResponse
     */
    outflow_streams: Array<TransactionStream>;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the last time transaction streams for the given account were updated on
     * @type {string}
     * @memberof ProcessorTransactionsRecurringGetResponse
     */
    updated_datetime: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorTransactionsRecurringGetResponse
     */
    request_id: string;
}
/**
 * ProcessorTransactionsRefreshRequest defines the request schema for `/processor/transactions/refresh`
 * @export
 * @interface ProcessorTransactionsRefreshRequest
 */
export interface ProcessorTransactionsRefreshRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTransactionsRefreshRequest
     */
    client_id?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorTransactionsRefreshRequest
     */
    processor_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTransactionsRefreshRequest
     */
    secret?: string;
}
/**
 * ProcessorTransactionsRefreshResponse defines the response schema for `/processor/transactions/refresh`
 * @export
 * @interface ProcessorTransactionsRefreshResponse
 */
export interface ProcessorTransactionsRefreshResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorTransactionsRefreshResponse
     */
    request_id: string;
}
/**
 * This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).  Fired when transaction(s) for an Item are deleted. The deleted transaction IDs are included in the webhook payload. Plaid will typically check for deleted transaction data several times a day.  This webhook is intended for use with `/processor/transactions/get`; if you are using the newer `/processor/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
 * @export
 * @interface ProcessorTransactionsRemovedWebhook
 */
export interface ProcessorTransactionsRemovedWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof ProcessorTransactionsRemovedWebhook
     */
    webhook_type: string;
    /**
     * `TRANSACTIONS_REMOVED`
     * @type {string}
     * @memberof ProcessorTransactionsRemovedWebhook
     */
    webhook_code: string;
    /**
     *
     * @type {PlaidError}
     * @memberof ProcessorTransactionsRemovedWebhook
     */
    error?: PlaidError | null;
    /**
     * An array of `transaction_ids` corresponding to the removed transactions
     * @type {Array<string>}
     * @memberof ProcessorTransactionsRemovedWebhook
     */
    removed_transactions: Array<string>;
    /**
     * The ID of the account.
     * @type {string}
     * @memberof ProcessorTransactionsRemovedWebhook
     */
    account_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ProcessorTransactionsRemovedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * ProcessorTransactionsSyncRequest defines the request schema for `/processor/transactions/sync`
 * @export
 * @interface ProcessorTransactionsSyncRequest
 */
export interface ProcessorTransactionsSyncRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTransactionsSyncRequest
     */
    client_id?: string;
    /**
     * The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`
     * @type {string}
     * @memberof ProcessorTransactionsSyncRequest
     */
    processor_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProcessorTransactionsSyncRequest
     */
    secret?: string;
    /**
     * The cursor value represents the last update requested. Providing it will cause the response to only return changes after this update. If omitted, the entire history of updates will be returned, starting with the first-added transactions on the item. Note: The upper-bound length of this cursor is 256 characters of base64.
     * @type {string}
     * @memberof ProcessorTransactionsSyncRequest
     */
    cursor?: string;
    /**
     * The number of transaction updates to fetch.
     * @type {number}
     * @memberof ProcessorTransactionsSyncRequest
     */
    count?: number;
    /**
     *
     * @type {TransactionsSyncRequestOptions}
     * @memberof ProcessorTransactionsSyncRequest
     */
    options?: TransactionsSyncRequestOptions;
}
/**
 * ProcessorTransactionsSyncResponse defines the response schema for `/processor/transactions/sync`
 * @export
 * @interface ProcessorTransactionsSyncResponse
 */
export interface ProcessorTransactionsSyncResponse {
    /**
     *
     * @type {TransactionsUpdateStatus}
     * @memberof ProcessorTransactionsSyncResponse
     */
    transactions_update_status: TransactionsUpdateStatus;
    /**
     *
     * @type {AccountBase}
     * @memberof ProcessorTransactionsSyncResponse
     */
    account: AccountBase;
    /**
     * Transactions that have been added to the Item since `cursor` ordered by ascending last modified time.
     * @type {Array<Transaction>}
     * @memberof ProcessorTransactionsSyncResponse
     */
    added: Array<Transaction>;
    /**
     * Transactions that have been modified on the Item since `cursor` ordered by ascending last modified time.
     * @type {Array<Transaction>}
     * @memberof ProcessorTransactionsSyncResponse
     */
    modified: Array<Transaction>;
    /**
     * Transactions that have been removed from the Item since `cursor` ordered by ascending last modified time.
     * @type {Array<RemovedTransaction>}
     * @memberof ProcessorTransactionsSyncResponse
     */
    removed: Array<RemovedTransaction>;
    /**
     * Cursor used for fetching any future updates after the latest update provided in this response. The cursor obtained after all pages have been pulled (indicated by `has_more` being `false`) will be valid for at least 1 year. This cursor should be persisted for later calls. If transactions are not yet available, this will be an empty string.
     * @type {string}
     * @memberof ProcessorTransactionsSyncResponse
     */
    next_cursor: string;
    /**
     * Represents if more than requested count of transaction updates exist. If true, the additional updates can be fetched by making an additional request with `cursor` set to `next_cursor`. If `has_more` is true, it’s important to pull all available pages, to make it less likely for underlying data changes to conflict with pagination.
     * @type {boolean}
     * @memberof ProcessorTransactionsSyncResponse
     */
    has_more: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProcessorTransactionsSyncResponse
     */
    request_id: string;
}
/**
 * The product access being requested. Used to or disallow product access across all accounts. If unset, defaults to all products allowed.
 * @export
 * @interface ProductAccess
 */
export interface ProductAccess {
    /**
     * Allow access to statements. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof ProductAccess
     */
    statements?: boolean | null;
    /**
     * Allow access to the Identity product (name, email, phone, address). Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof ProductAccess
     */
    identity?: boolean | null;
    /**
     * Allow access to account number details. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof ProductAccess
     */
    auth?: boolean | null;
    /**
     * Allow access to transaction details. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof ProductAccess
     */
    transactions?: boolean | null;
    /**
     * Allow access to \"accounts_details_transactions\". Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof ProductAccess
     */
    accounts_details_transactions?: boolean | null;
    /**
     * Allow access to \"accounts_routing_number\". Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof ProductAccess
     */
    accounts_routing_number?: boolean | null;
    /**
     * Allow access to \"accounts_statements\". Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof ProductAccess
     */
    accounts_statements?: boolean | null;
    /**
     * Allow access to \"accounts_tax_statements\". Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof ProductAccess
     */
    accounts_tax_statements?: boolean | null;
    /**
     * Allow access to \"customers_profiles\". Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
     * @type {boolean}
     * @memberof ProductAccess
     */
    customers_profiles?: boolean | null;
}
/**
 * Fired when an `ACCESS_NOT_GRANTED` error is hit for Auth. The error can be resolved by putting the user through update mode with `auth` in the `products` array, as well as through the limited beta for update mode Authentication product validations.
 * @export
 * @interface ProductPermissionsRequiredAuthWebhook
 */
export interface ProductPermissionsRequiredAuthWebhook {
    /**
     * `AUTH`
     * @type {string}
     * @memberof ProductPermissionsRequiredAuthWebhook
     */
    webhook_type: string;
    /**
     * `PRODUCT_PERMISSIONS_REQUIRED`
     * @type {string}
     * @memberof ProductPermissionsRequiredAuthWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof ProductPermissionsRequiredAuthWebhook
     */
    item_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ProductPermissionsRequiredAuthWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Fired when an `ACCESS_NOT_GRANTED` error is hit for Identity. The error can be resolved by putting the user through update mode with `identity` in the `products` array, as well as through the limited beta for update mode Identity product validations.
 * @export
 * @interface ProductPermissionsRequiredIdentityWebhook
 */
export interface ProductPermissionsRequiredIdentityWebhook {
    /**
     * `IDENTITY`
     * @type {string}
     * @memberof ProductPermissionsRequiredIdentityWebhook
     */
    webhook_type: string;
    /**
     * `PRODUCT_PERMISSIONS_REQUIRED`
     * @type {string}
     * @memberof ProductPermissionsRequiredIdentityWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof ProductPermissionsRequiredIdentityWebhook
     */
    item_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ProductPermissionsRequiredIdentityWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * A representation of the status health of a request type. Auth requests, Balance requests, Identity requests, Investments requests, Liabilities requests, Transactions updates, Investments updates, Liabilities updates, and Item logins each have their own status object.
 * @export
 * @interface ProductStatus
 */
export interface ProductStatus {
    /**
     * This field is deprecated in favor of the `breakdown` object, which provides more granular institution health data.  `HEALTHY`: the majority of requests are successful `DEGRADED`: only some requests are successful `DOWN`: all requests are failing
     * @type {string}
     * @memberof ProductStatus
     * @deprecated
     */
    status: ProductStatusStatusEnum;
    /**
     * [ISO 8601](https://wikipedia.org/wiki/ISO_8601) formatted timestamp of the last status change for the institution.
     * @type {string}
     * @memberof ProductStatus
     */
    last_status_change: string;
    /**
     *
     * @type {ProductStatusBreakdown}
     * @memberof ProductStatus
     */
    breakdown: ProductStatusBreakdown;
}
/**
    * @export
    * @enum {string}
    */
export declare enum ProductStatusStatusEnum {
    Healthy = "HEALTHY",
    Degraded = "DEGRADED",
    Down = "DOWN"
}
/**
 * A detailed breakdown of the institution\'s performance for a request type. The values for `success`, `error_plaid`, and `error_institution` sum to 1. The time range used for calculating the breakdown may range from the most recent few minutes to the past six hours. In general, smaller institutions will show status that was calculated over a longer period of time. For Investment updates, which are refreshed less frequently, the period assessed may be 24 hours or more. For more details, see [Institution status details](https://plaid.com/docs/account/activity/#institution-status-details).
 * @export
 * @interface ProductStatusBreakdown
 */
export interface ProductStatusBreakdown {
    /**
     * The percentage of login attempts that are successful, expressed as a decimal.
     * @type {number}
     * @memberof ProductStatusBreakdown
     */
    success: number;
    /**
     * The percentage of logins that are failing due to an internal Plaid issue, expressed as a decimal.
     * @type {number}
     * @memberof ProductStatusBreakdown
     */
    error_plaid: number;
    /**
     * The percentage of logins that are failing due to an issue in the institution\'s system, expressed as a decimal.
     * @type {number}
     * @memberof ProductStatusBreakdown
     */
    error_institution: number;
    /**
     * How frequently data for subscription products like Investments, Transactions, and Liabilities, is being refreshed, relative to the institution\'s normal scheduling. The `refresh_interval` may be `DELAYED` or `STOPPED` even when the success rate is high.
     * @type {string}
     * @memberof ProductStatusBreakdown
     */
    refresh_interval?: ProductStatusBreakdownRefreshIntervalEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum ProductStatusBreakdownRefreshIntervalEnum {
    Normal = "NORMAL",
    Delayed = "DELAYED",
    Stopped = "STOPPED"
}
/**
 * A list of products that an institution can support. All Items must be initialized with at least one product. The Balance product is always available and does not need to be specified during initialization.
 * @export
 * @enum {string}
 */
export declare enum Products {
    Assets = "assets",
    Auth = "auth",
    Balance = "balance",
    BalancePlus = "balance_plus",
    Beacon = "beacon",
    Identity = "identity",
    IdentityMatch = "identity_match",
    Investments = "investments",
    InvestmentsAuth = "investments_auth",
    Liabilities = "liabilities",
    PaymentInitiation = "payment_initiation",
    IdentityVerification = "identity_verification",
    Transactions = "transactions",
    CreditDetails = "credit_details",
    Income = "income",
    IncomeVerification = "income_verification",
    StandingOrders = "standing_orders",
    Transfer = "transfer",
    Employment = "employment",
    RecurringTransactions = "recurring_transactions",
    TransactionsRefresh = "transactions_refresh",
    Signal = "signal",
    Statements = "statements",
    ProcessorPayments = "processor_payments",
    ProcessorIdentity = "processor_identity",
    Profile = "profile",
    CraBaseReport = "cra_base_report",
    CraIncomeInsights = "cra_income_insights",
    CraPartnerInsights = "cra_partner_insights",
    CraNetworkInsights = "cra_network_insights",
    CraCashflowInsights = "cra_cashflow_insights",
    Layer = "layer",
    PayByBank = "pay_by_bank"
}
/**
 * ProfileNetworkStatusGetRequest defines the request schema for `/profile/network_status/get`
 * @export
 * @interface ProfileNetworkStatusGetRequest
 */
export interface ProfileNetworkStatusGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof ProfileNetworkStatusGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof ProfileNetworkStatusGetRequest
     */
    secret?: string;
    /**
     *
     * @type {NetworkStatusGetUser}
     * @memberof ProfileNetworkStatusGetRequest
     */
    user: NetworkStatusGetUser;
}
/**
 * ProfileNetworkStatusGetResponse defines the response schema for `/profile/network_status/get`
 * @export
 * @interface ProfileNetworkStatusGetResponse
 */
export interface ProfileNetworkStatusGetResponse {
    /**
     *
     * @type {NetworkStatusGetResponseNetworkStatus}
     * @memberof ProfileNetworkStatusGetResponse
     */
    network_status: NetworkStatusGetResponseNetworkStatus;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof ProfileNetworkStatusGetResponse
     */
    request_id: string;
}
/**
 * The valid name matching sensitivity configurations for a screening program. Note that while certain matching techniques may be more prevalent on less strict settings, all matching algorithms are enabled for every sensitivity.  `coarse` - See more potential matches. This sensitivity will see more broad phonetic matches across alphabets that make missing a potential hit very unlikely. This setting is noisier and will require more manual review.  `balanced` - A good default for most companies. This sensitivity is balanced to show high quality hits with reduced noise.  `strict` - Aggressive false positive reduction. This sensitivity will require names to be more similar than `coarse` and `balanced` settings, relying less on phonetics, while still accounting for character transpositions, missing tokens, and other common permutations.  `exact` - Matches must be nearly exact. This sensitivity will only show hits with exact or nearly exact name matches with only basic correction such as extraneous symbols and capitalization. This setting is generally not recommended unless you have a very specific use case.
 * @export
 * @enum {string}
 */
export declare enum ProgramNameSensitivity {
    Coarse = "coarse",
    Balanced = "balanced",
    Strict = "strict",
    Exact = "exact"
}
/**
 * The employee\'s estimated annual salary, as derived from information reported on the paystub.
 * @export
 * @interface ProjectedIncomeSummaryFieldNumber
 */
export interface ProjectedIncomeSummaryFieldNumber {
    /**
     * The value of the field.
     * @type {number}
     * @memberof ProjectedIncomeSummaryFieldNumber
     */
    value: number;
    /**
     *
     * @type {VerificationStatus}
     * @memberof ProjectedIncomeSummaryFieldNumber
     */
    verification_status: VerificationStatus;
}
/**
 * An enum indicating whether a network proxy is present and if so what type it is.  `none_detected` indicates the user is not on a detectable proxy network.  `tor` indicates the user was using a Tor browser, which sends encrypted traffic on a decentralized network and is somewhat similar to a VPN (Virtual Private Network).  `vpn` indicates the user is on a VPN (Virtual Private Network)  `web_proxy` indicates the user is on a web proxy server, which may allow them to conceal information such as their IP address or other identifying information.  `public_proxy` indicates the user is on a public web proxy server, which is similar to a web proxy but can be shared by multiple users. This may allow multiple users to appear as if they have the same IP address for instance.
 * @export
 * @enum {string}
 */
export declare enum ProxyType {
    NoneDetected = "none_detected",
    Tor = "tor",
    Vpn = "vpn",
    WebProxy = "web_proxy",
    PublicProxy = "public_proxy"
}
/**
 * The request was flagged by Plaid\'s fraud system, and requires additional verification to ensure they are not a bot.
 * @export
 * @interface RecaptchaRequiredError
 */
export interface RecaptchaRequiredError {
    /**
     * RECAPTCHA_ERROR
     * @type {string}
     * @memberof RecaptchaRequiredError
     */
    error_type: string;
    /**
     * RECAPTCHA_REQUIRED
     * @type {string}
     * @memberof RecaptchaRequiredError
     */
    error_code: string;
    /**
     *
     * @type {string}
     * @memberof RecaptchaRequiredError
     */
    display_message: string;
    /**
     * 400
     * @type {string}
     * @memberof RecaptchaRequiredError
     */
    http_code: string;
    /**
     * Your user will be prompted to solve a Google reCAPTCHA challenge in the Link Recaptcha pane. If they solve the challenge successfully, the user\'s request is resubmitted and they are directed to the next Item creation step.
     * @type {string}
     * @memberof RecaptchaRequiredError
     */
    link_user_experience: string;
    /**
     * Plaid\'s fraud system detects abusive traffic and considers a variety of parameters throughout Item creation requests. When a request is considered risky or possibly fraudulent, Link presents a reCAPTCHA for the user to solve.
     * @type {string}
     * @memberof RecaptchaRequiredError
     */
    common_causes: string;
    /**
     * Link will automatically guide your user through reCAPTCHA verification. As a general rule, we recommend instrumenting basic fraud monitoring to detect and protect your website from spam and abuse.  If your user cannot verify their session, please submit a Support ticket with the following identifiers: `link_session_id` or `request_id`
     * @type {string}
     * @memberof RecaptchaRequiredError
     */
    troubleshooting_steps: string;
}
/**
 * An object containing a BACS account number and sort code. If an IBAN is not provided or if you need to accept domestic GBP-denominated payments, BACS data is required.
 * @export
 * @interface RecipientBACS
 */
export interface RecipientBACS {
    /**
     * The account number of the account. Maximum of 10 characters.
     * @type {string}
     * @memberof RecipientBACS
     */
    account?: string;
    /**
     * The 6-character sort code of the account.
     * @type {string}
     * @memberof RecipientBACS
     */
    sort_code?: string;
}
/**
 * An object containing a BACS account number and sort code. If an IBAN is not provided or if this recipient needs to accept domestic GBP-denominated payments, BACS data is required.
 * @export
 * @interface RecipientBACSNullable
 */
export interface RecipientBACSNullable {
    /**
     * The account number of the account. Maximum of 10 characters.
     * @type {string}
     * @memberof RecipientBACSNullable
     */
    account?: string;
    /**
     * The 6-character sort code of the account.
     * @type {string}
     * @memberof RecipientBACSNullable
     */
    sort_code?: string;
}
/**
 * The recommendation result for that date.
 * @export
 * @enum {string}
 */
export declare enum RecommendationString {
    Recommended = "RECOMMENDED",
    NotRecommended = "NOT_RECOMMENDED",
    Unknown = "UNKNOWN"
}
/**
 * Insights relating to expenses and deposits that are predicted to occur on a scheduled basis, such as biweekly, monthly, or annually.  Common examples include loan payments, bill payments, subscriptions, and payroll income.  This is a beta field, available to all users.
 * @export
 * @interface Recurrence
 */
export interface Recurrence {
    /**
     * Whether or not the transaction is periodically recurring.
     * @type {boolean}
     * @memberof Recurrence
     */
    is_recurring?: boolean | null;
    /**
     *
     * @type {RecurringFrequency}
     * @memberof Recurrence
     */
    frequency?: RecurringFrequency | null;
}
/**
 * Fired when a recurring transfer is cancelled by Plaid.
 * @export
 * @interface RecurringCancelledWebhook
 */
export interface RecurringCancelledWebhook {
    /**
     * `TRANSFER`
     * @type {string}
     * @memberof RecurringCancelledWebhook
     */
    webhook_type: string;
    /**
     * `RECURRING_CANCELLED`
     * @type {string}
     * @memberof RecurringCancelledWebhook
     */
    webhook_code: string;
    /**
     * Plaid’s unique identifier for a recurring transfer.
     * @type {string}
     * @memberof RecurringCancelledWebhook
     */
    recurring_transfer_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof RecurringCancelledWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Describes the frequency of the transaction stream.  `WEEKLY`: Assigned to a transaction stream that occurs approximately every week.  `BIWEEKLY`: Assigned to a transaction stream that occurs approximately every 2 weeks.  `SEMI_MONTHLY`: Assigned to a transaction stream that occurs approximately twice per month. This frequency is typically seen for inflow transaction streams.  `MONTHLY`: Assigned to a transaction stream that occurs approximately every month.  `ANNUALLY`: Assigned to a transaction stream that occurs approximately every year.  `DAILY`: Assigned to a transaction stream that occurs approximately every day.  `DYNAMIC`: Assigned to a transaction stream that varies in recurrence frequency. This frequency is typically seen for inflow streams in the gig economy.  `UNKNOWN`: Assigned to a transaction stream that isn\'t recurring in nature.
 * @export
 * @enum {string}
 */
export declare enum RecurringFrequency {
    Unknown = "UNKNOWN",
    Weekly = "WEEKLY",
    Biweekly = "BIWEEKLY",
    SemiMonthly = "SEMI_MONTHLY",
    Monthly = "MONTHLY",
    Annually = "ANNUALLY",
    Daily = "DAILY",
    Dynamic = "DYNAMIC",
    Null = "null"
}
/**
 * Insights object for recurring transactions streams.
 * @export
 * @interface RecurringInsightsStream
 */
export interface RecurringInsightsStream {
    /**
     * A unique id for the stream.
     * @type {string}
     * @memberof RecurringInsightsStream
     */
    stream_id: string;
    /**
     * The client-provided raw description of the most recent transaction in the stream.
     * @type {string}
     * @memberof RecurringInsightsStream
     */
    description?: string;
    /**
     * The merchant or primary counterparty associated with the transaction stream.
     * @type {string}
     * @memberof RecurringInsightsStream
     */
    merchant_name: string;
    /**
     * The posted date of the earliest transaction in the stream.
     * @type {string}
     * @memberof RecurringInsightsStream
     */
    oldest_transaction_date?: string;
    /**
     * The posted date of the latest transaction in the stream.
     * @type {string}
     * @memberof RecurringInsightsStream
     */
    newest_transaction_date?: string;
    /**
     * The average number of days between each of the recurring transactions.
     * @type {number}
     * @memberof RecurringInsightsStream
     */
    average_days_apart: number;
    /**
     *
     * @type {RecurringTransactionFrequency}
     * @memberof RecurringInsightsStream
     */
    frequency?: RecurringTransactionFrequency;
    /**
     * The number of transactions in this stream.
     * @type {number}
     * @memberof RecurringInsightsStream
     */
    transaction_count?: number;
    /**
     * An array of Plaid transaction IDs belonging to the stream, sorted by posted date.
     * @type {Array<string>}
     * @memberof RecurringInsightsStream
     */
    transaction_ids?: Array<string>;
    /**
     *
     * @type {TransactionStreamAmount}
     * @memberof RecurringInsightsStream
     */
    average_amount?: TransactionStreamAmount;
    /**
     *
     * @type {TransactionStreamAmount}
     * @memberof RecurringInsightsStream
     */
    newest_transaction_amount?: TransactionStreamAmount;
    /**
     * Indicates whether the transaction stream is still live.
     * @type {boolean}
     * @memberof RecurringInsightsStream
     */
    is_active: boolean;
    /**
     *
     * @type {TransactionStreamStatus}
     * @memberof RecurringInsightsStream
     */
    status?: TransactionStreamStatus;
    /**
     * The primary category associated with the transaction stream.
     * @type {string}
     * @memberof RecurringInsightsStream
     */
    personal_finance_category_primary?: string;
    /**
     * The detailed category associated with the transaction stream.
     * @type {string}
     * @memberof RecurringInsightsStream
     */
    personal_finance_category_detailed?: string;
}
/**
 * Fired when a new transfer of a recurring transfer is originated.
 * @export
 * @interface RecurringNewTransferWebhook
 */
export interface RecurringNewTransferWebhook {
    /**
     * `TRANSFER`
     * @type {string}
     * @memberof RecurringNewTransferWebhook
     */
    webhook_type: string;
    /**
     * `RECURRING_NEW_TRANSFER`
     * @type {string}
     * @memberof RecurringNewTransferWebhook
     */
    webhook_code: string;
    /**
     * Plaid’s unique identifier for a recurring transfer.
     * @type {string}
     * @memberof RecurringNewTransferWebhook
     */
    recurring_transfer_id: string;
    /**
     * Plaid’s unique identifier for a transfer.
     * @type {string}
     * @memberof RecurringNewTransferWebhook
     */
    transfer_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof RecurringNewTransferWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Describes the frequency of the transaction stream.  `WEEKLY`: Assigned to a transaction stream that occurs approximately every week.  `BIWEEKLY`: Assigned to a transaction stream that occurs approximately every 2 weeks.  `SEMI_MONTHLY`: Assigned to a transaction stream that occurs approximately twice per month. This frequency is typically seen for inflow transaction streams.  `MONTHLY`: Assigned to a transaction stream that occurs approximately every month.  `ANNUALLY`: Assigned to a transaction stream that occurs approximately every year.  `UNKNOWN`: Assigned to a transaction stream that does not fit any of the pre-defined frequencies.
 * @export
 * @enum {string}
 */
export declare enum RecurringTransactionFrequency {
    Unknown = "UNKNOWN",
    Weekly = "WEEKLY",
    Biweekly = "BIWEEKLY",
    SemiMonthly = "SEMI_MONTHLY",
    Monthly = "MONTHLY",
    Annually = "ANNUALLY"
}
/**
 * Insights object for recurring transactions for `/beta/transactions/user_insights/v1/get` endpoint
 * @export
 * @interface RecurringTransactions
 */
export interface RecurringTransactions {
    /**
     * An array of inflow transaction streams (e.g., income).
     * @type {Array<RecurringInsightsStream>}
     * @memberof RecurringTransactions
     */
    inflow_streams: Array<RecurringInsightsStream>;
    /**
     * An array of outflow transaction streams (e.g., subscriptions, bills, loan payments).
     * @type {Array<RecurringInsightsStream>}
     * @memberof RecurringTransactions
     */
    outflow_streams: Array<RecurringInsightsStream>;
}
/**
 * Fired when recurring transactions data is updated. This includes when a new recurring stream is detected or when a new transaction is added to an existing recurring stream. The `RECURRING_TRANSACTIONS_UPDATE` webhook will also fire when one or more attributes of the recurring stream changes, which is usually a result of the addition, update, or removal of transactions to the stream.  After receipt of this webhook, the updated data can be fetched from `/transactions/recurring/get`.
 * @export
 * @interface RecurringTransactionsUpdateWebhook
 */
export interface RecurringTransactionsUpdateWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof RecurringTransactionsUpdateWebhook
     */
    webhook_type: string;
    /**
     * `RECURRING_TRANSACTIONS_UPDATE`
     * @type {string}
     * @memberof RecurringTransactionsUpdateWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof RecurringTransactionsUpdateWebhook
     */
    item_id: string;
    /**
     * A list of `account_ids` for accounts that have new or updated recurring transactions data.
     * @type {Array<string>}
     * @memberof RecurringTransactionsUpdateWebhook
     */
    account_ids: Array<string>;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof RecurringTransactionsUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Represents a recurring transfer within the Transfers API.
 * @export
 * @interface RecurringTransfer
 */
export interface RecurringTransfer {
    /**
     * Plaid’s unique identifier for a recurring transfer.
     * @type {string}
     * @memberof RecurringTransfer
     */
    recurring_transfer_id: string;
    /**
     * The datetime when this transfer was created. This will be of the form `2006-01-02T15:04:05Z`
     * @type {string}
     * @memberof RecurringTransfer
     */
    created: string;
    /**
     * A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).  The next transfer origination date after bank holiday adjustment.
     * @type {string}
     * @memberof RecurringTransfer
     */
    next_origination_date: string | null;
    /**
     * Plaid’s unique identifier for a test clock.
     * @type {string}
     * @memberof RecurringTransfer
     */
    test_clock_id?: string | null;
    /**
     *
     * @type {TransferType}
     * @memberof RecurringTransfer
     */
    type: TransferType;
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.
     * @type {string}
     * @memberof RecurringTransfer
     */
    amount: string;
    /**
     *
     * @type {TransferRecurringStatus}
     * @memberof RecurringTransfer
     */
    status: TransferRecurringStatus;
    /**
     *
     * @type {ACHClass}
     * @memberof RecurringTransfer
     */
    ach_class?: ACHClass;
    /**
     *
     * @type {TransferRecurringNetwork}
     * @memberof RecurringTransfer
     */
    network: TransferRecurringNetwork;
    /**
     * Plaid’s unique identifier for the origination account that was used for this transfer.
     * @type {string}
     * @memberof RecurringTransfer
     * @deprecated
     */
    origination_account_id: string;
    /**
     * The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
     * @type {string}
     * @memberof RecurringTransfer
     */
    account_id: string;
    /**
     * The id of the funding account to use, available in the Plaid Dashboard. This determines which of your business checking accounts will be credited or debited.
     * @type {string}
     * @memberof RecurringTransfer
     */
    funding_account_id: string;
    /**
     * The currency of the transfer amount, e.g. \"USD\"
     * @type {string}
     * @memberof RecurringTransfer
     */
    iso_currency_code: string;
    /**
     * The description of the recurring transfer.
     * @type {string}
     * @memberof RecurringTransfer
     */
    description: string;
    /**
     *
     * @type {Array<string>}
     * @memberof RecurringTransfer
     */
    transfer_ids: Array<string>;
    /**
     *
     * @type {TransferUserInResponse}
     * @memberof RecurringTransfer
     */
    user: TransferUserInResponse;
    /**
     *
     * @type {TransferRecurringSchedule}
     * @memberof RecurringTransfer
     */
    schedule: TransferRecurringSchedule;
}
/**
 * Represents a recurring transfer within the Transfers API.
 * @export
 * @interface RecurringTransferNullable
 */
export interface RecurringTransferNullable {
    /**
     * Plaid’s unique identifier for a recurring transfer.
     * @type {string}
     * @memberof RecurringTransferNullable
     */
    recurring_transfer_id: string;
    /**
     * The datetime when this transfer was created. This will be of the form `2006-01-02T15:04:05Z`
     * @type {string}
     * @memberof RecurringTransferNullable
     */
    created: string;
    /**
     * A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).  The next transfer origination date after bank holiday adjustment.
     * @type {string}
     * @memberof RecurringTransferNullable
     */
    next_origination_date: string | null;
    /**
     * Plaid’s unique identifier for a test clock.
     * @type {string}
     * @memberof RecurringTransferNullable
     */
    test_clock_id?: string | null;
    /**
     *
     * @type {TransferType}
     * @memberof RecurringTransferNullable
     */
    type: TransferType;
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.
     * @type {string}
     * @memberof RecurringTransferNullable
     */
    amount: string;
    /**
     *
     * @type {TransferRecurringStatus}
     * @memberof RecurringTransferNullable
     */
    status: TransferRecurringStatus;
    /**
     *
     * @type {ACHClass}
     * @memberof RecurringTransferNullable
     */
    ach_class?: ACHClass;
    /**
     *
     * @type {TransferRecurringNetwork}
     * @memberof RecurringTransferNullable
     */
    network: TransferRecurringNetwork;
    /**
     * Plaid’s unique identifier for the origination account that was used for this transfer.
     * @type {string}
     * @memberof RecurringTransferNullable
     * @deprecated
     */
    origination_account_id: string;
    /**
     * The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
     * @type {string}
     * @memberof RecurringTransferNullable
     */
    account_id: string;
    /**
     * The id of the funding account to use, available in the Plaid Dashboard. This determines which of your business checking accounts will be credited or debited.
     * @type {string}
     * @memberof RecurringTransferNullable
     */
    funding_account_id: string;
    /**
     * The currency of the transfer amount, e.g. \"USD\"
     * @type {string}
     * @memberof RecurringTransferNullable
     */
    iso_currency_code: string;
    /**
     * The description of the recurring transfer.
     * @type {string}
     * @memberof RecurringTransferNullable
     */
    description: string;
    /**
     *
     * @type {Array<string>}
     * @memberof RecurringTransferNullable
     */
    transfer_ids: Array<string>;
    /**
     *
     * @type {TransferUserInResponse}
     * @memberof RecurringTransferNullable
     */
    user: TransferUserInResponse;
    /**
     *
     * @type {TransferRecurringSchedule}
     * @memberof RecurringTransferNullable
     */
    schedule: TransferRecurringSchedule;
}
/**
 * Fired when Plaid is unable to originate a new ACH transaction of the recurring transfer on the planned date.
 * @export
 * @interface RecurringTransferSkippedWebhook
 */
export interface RecurringTransferSkippedWebhook {
    /**
     * `TRANSFER`
     * @type {string}
     * @memberof RecurringTransferSkippedWebhook
     */
    webhook_type: string;
    /**
     * `RECURRING_TRANSFER_SKIPPED`
     * @type {string}
     * @memberof RecurringTransferSkippedWebhook
     */
    webhook_code: string;
    /**
     * Plaid’s unique identifier for a recurring transfer.
     * @type {string}
     * @memberof RecurringTransferSkippedWebhook
     */
    recurring_transfer_id: string;
    /**
     *
     * @type {TransferAuthorizationDecision}
     * @memberof RecurringTransferSkippedWebhook
     */
    authorization_decision: TransferAuthorizationDecision;
    /**
     *
     * @type {TransferAuthorizationDecisionRationaleCode}
     * @memberof RecurringTransferSkippedWebhook
     */
    authorization_decision_rationale_code?: TransferAuthorizationDecisionRationaleCode;
    /**
     * The planned date on which Plaid is unable to originate a new ACH transaction of the recurring transfer. This will be of the form YYYY-MM-DD.
     * @type {string}
     * @memberof RecurringTransferSkippedWebhook
     */
    skipped_origination_date: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof RecurringTransferSkippedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * A representation of a removed transaction
 * @export
 * @interface RemovedTransaction
 */
export interface RemovedTransaction {
    /**
     * The ID of the removed transaction.
     * @type {string}
     * @memberof RemovedTransaction
     */
    transaction_id: string;
    /**
     * The ID of the account of the removed transaction.
     * @type {string}
     * @memberof RemovedTransaction
     */
    account_id: string;
}
/**
 * The report type. It can be `asset`. Income report types are not yet supported.
 * @export
 * @enum {string}
 */
export declare enum ReportType {
    Asset = "asset"
}
/**
 * Information about an report identifier and a report name.
 * @export
 * @interface ReportingInformation
 */
export interface ReportingInformation {
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
     * @type {string}
     * @memberof ReportingInformation
     */
    ReportingInformationIdentifier: string;
}
/**
 * Result summary object specifying values for `behavior` attributes of risk check, when available.
 * @export
 * @interface RiskCheckBehavior
 */
export interface RiskCheckBehavior {
    /**
     *
     * @type {RiskCheckBehaviorUserInteractionsLabel}
     * @memberof RiskCheckBehavior
     */
    user_interactions: RiskCheckBehaviorUserInteractionsLabel;
    /**
     *
     * @type {RiskCheckBehaviorFraudRingDetectedLabel}
     * @memberof RiskCheckBehavior
     */
    fraud_ring_detected: RiskCheckBehaviorFraudRingDetectedLabel;
    /**
     *
     * @type {RiskCheckBehaviorBotDetectedLabel}
     * @memberof RiskCheckBehavior
     */
    bot_detected: RiskCheckBehaviorBotDetectedLabel;
    /**
     *
     * @type {RiskLevelWithNoData}
     * @memberof RiskCheckBehavior
     */
    risk_level?: RiskLevelWithNoData;
}
/**
 * Field describing the outcome of a bot detection behavior risk check.  `yes` indicates that automated activity was detected.  `no` indicates that automated activity was not detected.  `no_data` indicates there was not enough information available to give an accurate signal.
 * @export
 * @enum {string}
 */
export declare enum RiskCheckBehaviorBotDetectedLabel {
    Yes = "yes",
    No = "no",
    NoData = "no_data"
}
/**
 * Field describing the outcome of a fraud ring behavior risk check.  `yes` indicates that fraud ring activity was detected.  `no` indicates that fraud ring activity was not detected.  `no_data` indicates there was not enough information available to give an accurate signal.
 * @export
 * @enum {string}
 */
export declare enum RiskCheckBehaviorFraudRingDetectedLabel {
    Yes = "yes",
    No = "no",
    NoData = "no_data"
}
/**
 * Field describing the overall user interaction signals of a behavior risk check. This value represents how familiar the user is with the personal data they provide, based on a number of signals that are collected during their session.  `genuine` indicates the user has high familiarity with the data they are providing, and that fraud is unlikely.  `neutral` indicates some signals are present in between `risky` and `genuine`, but there are not enough clear signals to determine an outcome.  `risky` indicates the user has low familiarity with the data they are providing, and that fraud is likely.  `no_data` indicates there is not sufficient information to give an accurate signal.
 * @export
 * @enum {string}
 */
export declare enum RiskCheckBehaviorUserInteractionsLabel {
    Genuine = "genuine",
    Neutral = "neutral",
    Risky = "risky",
    NoData = "no_data"
}
/**
 * Additional information for the `risk_check` step.
 * @export
 * @interface RiskCheckDetails
 */
export interface RiskCheckDetails {
    /**
     *
     * @type {IdentityVerificationStepStatus}
     * @memberof RiskCheckDetails
     */
    status: IdentityVerificationStepStatus;
    /**
     *
     * @type {RiskCheckBehavior}
     * @memberof RiskCheckDetails
     */
    behavior: RiskCheckBehavior | null;
    /**
     *
     * @type {RiskCheckEmail}
     * @memberof RiskCheckDetails
     */
    email: RiskCheckEmail | null;
    /**
     *
     * @type {RiskCheckPhone}
     * @memberof RiskCheckDetails
     */
    phone: RiskCheckPhone | null;
    /**
     * Array of result summary objects specifying values for `device` attributes of risk check.
     * @type {Array<RiskCheckDevice>}
     * @memberof RiskCheckDetails
     */
    devices: Array<RiskCheckDevice>;
    /**
     *
     * @type {RiskCheckIdentityAbuseSignals}
     * @memberof RiskCheckDetails
     */
    identity_abuse_signals: RiskCheckIdentityAbuseSignals | null;
    /**
     *
     * @type {RiskCheckNetwork}
     * @memberof RiskCheckDetails
     */
    network?: RiskCheckNetwork | null;
}
/**
 * Result summary object specifying values for `device` attributes of risk check.
 * @export
 * @interface RiskCheckDevice
 */
export interface RiskCheckDevice {
    /**
     *
     * @type {ProxyType}
     * @memberof RiskCheckDevice
     */
    ip_proxy_type: ProxyType | null;
    /**
     * Count of spam lists the IP address is associated with if known.
     * @type {number}
     * @memberof RiskCheckDevice
     */
    ip_spam_list_count: number | null;
    /**
     * UTC offset of the timezone associated with the IP address.
     * @type {string}
     * @memberof RiskCheckDevice
     */
    ip_timezone_offset: string | null;
    /**
     *
     * @type {RiskLevel}
     * @memberof RiskCheckDevice
     */
    risk_level?: RiskLevel;
    /**
     * List of factors, when available, that contribute towards the risk level of the given risk check type.
     * @type {Array<string>}
     * @memberof RiskCheckDevice
     */
    factors?: Array<string>;
}
/**
 * Result summary object specifying values for `email` attributes of risk check.
 * @export
 * @interface RiskCheckEmail
 */
export interface RiskCheckEmail {
    /**
     *
     * @type {RiskCheckEmailIsDeliverableStatus}
     * @memberof RiskCheckEmail
     */
    is_deliverable: RiskCheckEmailIsDeliverableStatus;
    /**
     * Count of all known breaches of this email address if known.
     * @type {number}
     * @memberof RiskCheckEmail
     */
    breach_count: number | null;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof RiskCheckEmail
     */
    first_breached_at: string | null;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof RiskCheckEmail
     */
    last_breached_at: string | null;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof RiskCheckEmail
     */
    domain_registered_at: string | null;
    /**
     *
     * @type {RiskCheckEmailDomainIsFreeProvider}
     * @memberof RiskCheckEmail
     */
    domain_is_free_provider: RiskCheckEmailDomainIsFreeProvider;
    /**
     *
     * @type {RiskCheckEmailDomainIsCustom}
     * @memberof RiskCheckEmail
     */
    domain_is_custom: RiskCheckEmailDomainIsCustom;
    /**
     *
     * @type {RiskCheckEmailDomainIsDisposable}
     * @memberof RiskCheckEmail
     */
    domain_is_disposable: RiskCheckEmailDomainIsDisposable;
    /**
     *
     * @type {RiskCheckEmailTopLevelDomainIsSuspicious}
     * @memberof RiskCheckEmail
     */
    top_level_domain_is_suspicious: RiskCheckEmailTopLevelDomainIsSuspicious;
    /**
     * A list of online services where this email address has been detected to have accounts or other activity.
     * @type {Set<RiskCheckLinkedService>}
     * @memberof RiskCheckEmail
     */
    linked_services: Set<RiskCheckLinkedService>;
    /**
     *
     * @type {RiskLevel}
     * @memberof RiskCheckEmail
     */
    risk_level?: RiskLevel;
    /**
     * List of factors, when available, that contribute towards the risk level of the given risk check type.
     * @type {Array<string>}
     * @memberof RiskCheckEmail
     */
    factors?: Array<string>;
}
/**
 * Indicates whether the email address domain is custom if known, i.e. a company domain and not free or disposable.
 * @export
 * @enum {string}
 */
export declare enum RiskCheckEmailDomainIsCustom {
    Yes = "yes",
    No = "no",
    NoData = "no_data"
}
/**
 * Indicates whether the email domain is listed as disposable if known. Disposable domains are often used to create email addresses that are part of a fake set of user details.
 * @export
 * @enum {string}
 */
export declare enum RiskCheckEmailDomainIsDisposable {
    Yes = "yes",
    No = "no",
    NoData = "no_data"
}
/**
 * Indicates whether the email address domain is a free provider such as Gmail or Hotmail if known.
 * @export
 * @enum {string}
 */
export declare enum RiskCheckEmailDomainIsFreeProvider {
    Yes = "yes",
    No = "no",
    NoData = "no_data"
}
/**
 * SMTP-MX check to confirm the email address exists if known.
 * @export
 * @enum {string}
 */
export declare enum RiskCheckEmailIsDeliverableStatus {
    Yes = "yes",
    No = "no",
    NoData = "no_data"
}
/**
 * Indicates whether the email address top level domain, which is the last part of the domain, is fraudulent or risky if known. In most cases, a suspicious top level domain is also associated with a disposable or high-risk domain.
 * @export
 * @enum {string}
 */
export declare enum RiskCheckEmailTopLevelDomainIsSuspicious {
    Yes = "yes",
    No = "no",
    NoData = "no_data"
}
/**
 * Result summary object capturing abuse signals related to `identity abuse`, e.g. stolen and synthetic identity fraud. These attributes are only available for US identities and some signals may not be available depending on what information was collected.
 * @export
 * @interface RiskCheckIdentityAbuseSignals
 */
export interface RiskCheckIdentityAbuseSignals {
    /**
     *
     * @type {RiskCheckSyntheticIdentity}
     * @memberof RiskCheckIdentityAbuseSignals
     */
    synthetic_identity: RiskCheckSyntheticIdentity | null;
    /**
     *
     * @type {RiskCheckStolenIdentity}
     * @memberof RiskCheckIdentityAbuseSignals
     */
    stolen_identity: RiskCheckStolenIdentity | null;
}
/**
 * An enum indicating the type of a linked service. Note that `adult_sites` refers\' to explicit video content, and includes a number of related services.
 * @export
 * @enum {string}
 */
export declare enum RiskCheckLinkedService {
    Aboutme = "aboutme",
    Adobe = "adobe",
    AdultSites = "adult_sites",
    Airbnb = "airbnb",
    Altbalaji = "altbalaji",
    Amazon = "amazon",
    Apple = "apple",
    Archiveorg = "archiveorg",
    Atlassian = "atlassian",
    Bitmoji = "bitmoji",
    Bodybuilding = "bodybuilding",
    Booking = "booking",
    Bukalapak = "bukalapak",
    Codecademy = "codecademy",
    Deliveroo = "deliveroo",
    Diigo = "diigo",
    Discord = "discord",
    Disneyplus = "disneyplus",
    Duolingo = "duolingo",
    Ebay = "ebay",
    Envato = "envato",
    Eventbrite = "eventbrite",
    Evernote = "evernote",
    Facebook = "facebook",
    Firefox = "firefox",
    Flickr = "flickr",
    Flipkart = "flipkart",
    Foursquare = "foursquare",
    Freelancer = "freelancer",
    Gaana = "gaana",
    Giphy = "giphy",
    Github = "github",
    Google = "google",
    Gravatar = "gravatar",
    Hubspot = "hubspot",
    Imgur = "imgur",
    Instagram = "instagram",
    Jdid = "jdid",
    Kakao = "kakao",
    Kommo = "kommo",
    Komoot = "komoot",
    Lastfm = "lastfm",
    Lazada = "lazada",
    Line = "line",
    Linkedin = "linkedin",
    Mailru = "mailru",
    Microsoft = "microsoft",
    Myspace = "myspace",
    Netflix = "netflix",
    Nike = "nike",
    Ok = "ok",
    Patreon = "patreon",
    Pinterest = "pinterest",
    Plurk = "plurk",
    Quora = "quora",
    Qzone = "qzone",
    Rambler = "rambler",
    Rappi = "rappi",
    Replit = "replit",
    Samsung = "samsung",
    Seoclerks = "seoclerks",
    Shopclues = "shopclues",
    Skype = "skype",
    Snapchat = "snapchat",
    Snapdeal = "snapdeal",
    Soundcloud = "soundcloud",
    Spotify = "spotify",
    Starz = "starz",
    Strava = "strava",
    Taringa = "taringa",
    Telegram = "telegram",
    Tiki = "tiki",
    Tokopedia = "tokopedia",
    Treehouse = "treehouse",
    Tumblr = "tumblr",
    Twitter = "twitter",
    Venmo = "venmo",
    Viber = "viber",
    Vimeo = "vimeo",
    Vivino = "vivino",
    Vkontakte = "vkontakte",
    Wattpad = "wattpad",
    Weibo = "weibo",
    Whatsapp = "whatsapp",
    Wordpress = "wordpress",
    Xing = "xing",
    Yahoo = "yahoo",
    Yandex = "yandex",
    Zalo = "zalo",
    Zoho = "zoho"
}
/**
 * Result summary object specifying values for network attributes of risk check.
 * @export
 * @interface RiskCheckNetwork
 */
export interface RiskCheckNetwork {
    /**
     *
     * @type {RiskLevel}
     * @memberof RiskCheckNetwork
     */
    risk_level: RiskLevel;
    /**
     * List of factors, when available, that contribute towards the risk level of the given risk check type.
     * @type {Array<string>}
     * @memberof RiskCheckNetwork
     */
    factors: Array<string>;
}
/**
 * Result summary object specifying values for `phone` attributes of risk check.
 * @export
 * @interface RiskCheckPhone
 */
export interface RiskCheckPhone {
    /**
     * A list of online services where this phone number has been detected to have accounts or other activity.
     * @type {Set<RiskCheckLinkedService>}
     * @memberof RiskCheckPhone
     */
    linked_services: Set<RiskCheckLinkedService>;
    /**
     *
     * @type {RiskLevel}
     * @memberof RiskCheckPhone
     */
    risk_level?: RiskLevel;
    /**
     * List of factors, when available, that contribute towards the risk level of the given risk check type.
     * @type {Array<string>}
     * @memberof RiskCheckPhone
     */
    factors?: Array<string>;
}
/**
 * Field containing the data used in determining the outcome of the stolen identity risk check.  Contains the following fields:  `score` - A score from 0 to 100 indicating the likelihood that the user is a stolen identity.
 * @export
 * @interface RiskCheckStolenIdentity
 */
export interface RiskCheckStolenIdentity {
    /**
     * A score from 0 to 100 indicating the likelihood that the user is a stolen identity.
     * @type {number}
     * @memberof RiskCheckStolenIdentity
     */
    score: number;
    /**
     *
     * @type {RiskLevel}
     * @memberof RiskCheckStolenIdentity
     */
    risk_level?: RiskLevel;
}
/**
 * Field containing the data used in determining the outcome of the synthetic identity risk check.  Contains the following fields:  `score` - A score from 0 to 100 indicating the likelihood that the user is a synthetic identity.
 * @export
 * @interface RiskCheckSyntheticIdentity
 */
export interface RiskCheckSyntheticIdentity {
    /**
     * A score from 0 to 100 indicating the likelihood that the user is a synthetic identity.
     * @type {number}
     * @memberof RiskCheckSyntheticIdentity
     */
    score: number;
    /**
     *
     * @type {RiskLevel}
     * @memberof RiskCheckSyntheticIdentity
     */
    risk_level?: RiskLevel;
    /**
     *
     * @type {SyntheticFraud}
     * @memberof RiskCheckSyntheticIdentity
     */
    first_party_synthetic_fraud?: SyntheticFraud | null;
    /**
     *
     * @type {SyntheticFraud}
     * @memberof RiskCheckSyntheticIdentity
     */
    third_party_synthetic_fraud?: SyntheticFraud | null;
}
/**
 * Risk level for the given risk check type.
 * @export
 * @enum {string}
 */
export declare enum RiskLevel {
    Low = "low",
    Medium = "medium",
    High = "high"
}
/**
 * Risk level for the given risk check type, when available.
 * @export
 * @enum {string}
 */
export declare enum RiskLevelWithNoData {
    Low = "low",
    Medium = "medium",
    High = "high",
    NoData = "no_data"
}
/**
 * RiskProfile is deprecated, use `ruleset` instead.
 * @export
 * @interface RiskProfile
 */
export interface RiskProfile {
    /**
     * The key of the risk profile used for this transaction.
     * @type {string}
     * @memberof RiskProfile
     */
    key?: string;
    /**
     * The evaluated outcome for this transaction. You can configure a list of outcomes, such as \"accept\", \"review\", and \"decline\" using the Signal dashboard located within the Plaid Dashboard.
     * @type {string}
     * @memberof RiskProfile
     */
    outcome?: string;
}
/**
 * This object includes a code and description to describe medium risk transactions and above on /accounts/balance/get.
 * @export
 * @interface RiskReason
 */
export interface RiskReason {
    /**
     * A code that represents the type of risk associated with the proposed transaction.  The codes are from PL01 to PL08 and from BK01 to BK07. For a full listing of risk reason codes, see [Risk codes](https://plaid.com/docs/balance/balance-plus/#risk-codes).
     * @type {string}
     * @memberof RiskReason
     */
    code: string;
    /**
     * A human-readable description explaining the risk code associated with the proposed transaction and some recommended actions. This field is subject to change; any programmatic logic should be based on the `code` field instead.
     * @type {string}
     * @memberof RiskReason
     */
    description: string;
}
/**
 * Object containing metadata for the document
 * @export
 * @interface RiskSignalDocumentReference
 */
export interface RiskSignalDocumentReference {
    /**
     * An identifier of the document referenced by the document metadata.
     * @type {string}
     * @memberof RiskSignalDocumentReference
     */
    document_id?: string | null;
    /**
     * The name of the document
     * @type {string}
     * @memberof RiskSignalDocumentReference
     */
    document_name?: string;
    /**
     *
     * @type {RiskSignalDocumentStatus}
     * @memberof RiskSignalDocumentReference
     */
    status?: RiskSignalDocumentStatus;
    /**
     *
     * @type {RiskSignalDocumentType}
     * @memberof RiskSignalDocumentReference
     */
    document_type?: RiskSignalDocumentType | null;
    /**
     *
     * @type {RiskSignalFileType}
     * @memberof RiskSignalDocumentReference
     */
    file_type?: RiskSignalFileType | null;
}
/**
 * Status of a document for risk signal analysis
 * @export
 * @enum {string}
 */
export declare enum RiskSignalDocumentStatus {
    Processing = "PROCESSING",
    ProcessingComplete = "PROCESSING_COMPLETE",
    ProcessingError = "PROCESSING_ERROR",
    PasswordProtected = "PASSWORD_PROTECTED",
    VirusDetected = "VIRUS_DETECTED"
}
/**
 * Type of a document for risk signal analysis
 * @export
 * @enum {string}
 */
export declare enum RiskSignalDocumentType {
    Unknown = "UNKNOWN",
    BankStatement = "BANK_STATEMENT",
    BenefitsStatement = "BENEFITS_STATEMENT",
    BusinessFiling = "BUSINESS_FILING",
    Check = "CHECK",
    DrivingLicense = "DRIVING_LICENSE",
    FinancialStatement = "FINANCIAL_STATEMENT",
    Invoice = "INVOICE",
    Payslip = "PAYSLIP",
    SocialSecurityCard = "SOCIAL_SECURITY_CARD",
    TaxForm = "TAX_FORM",
    UtilityBill = "UTILITY_BILL"
}
/**
 * The file type for risk signal analysis
 * @export
 * @enum {string}
 */
export declare enum RiskSignalFileType {
    Unknown = "UNKNOWN",
    ImagePdf = "IMAGE_PDF",
    ScanOcr = "SCAN_OCR",
    TruePdf = "TRUE_PDF",
    Image = "IMAGE",
    MixedPagePdf = "MIXED_PAGE_PDF",
    EmptyPdf = "EMPTY_PDF",
    FlattenedPdf = "FLATTENED_PDF"
}
/**
 * ADocumentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface Role
 */
export interface Role {
    /**
     *
     * @type {RoleDetail}
     * @memberof Role
     */
    ROLE_DETAIL: RoleDetail;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface RoleDetail
 */
export interface RoleDetail {
    /**
     *
     * @type {PartyRoleType}
     * @memberof RoleDetail
     */
    PartyRoleType: PartyRoleType;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface Roles
 */
export interface Roles {
    /**
     *
     * @type {Role}
     * @memberof Roles
     */
    ROLE: Role;
}
/**
 * Details about the transaction result after evaluated by the requested Ruleset. If a `ruleset_key` is not provided, this field will be omitted. This feature is currently in closed beta; to request access, contact your account manager.
 * @export
 * @interface Ruleset
 */
export interface Ruleset {
    /**
     * The key of the Ruleset used for this transaction.
     * @type {string}
     * @memberof Ruleset
     */
    ruleset_key?: string;
    /**
     * The evaluated outcome for this transaction. You can configure a list of outcomes, such as \"accept\", \"review\", and \"decline\" using the Signal dashboard located within the Plaid Dashboard.
     * @type {string}
     * @memberof Ruleset
     */
    outcome?: string;
}
/**
 * Additional information for the individual SMS verification.
 * @export
 * @interface SMSVerification
 */
export interface SMSVerification {
    /**
     *
     * @type {SMSVerificationStatus}
     * @memberof SMSVerification
     */
    status: SMSVerificationStatus;
    /**
     * The attempt field begins with 1 and increments with each subsequent SMS verification.
     * @type {number}
     * @memberof SMSVerification
     */
    attempt: number;
    /**
     * A phone number in E.164 format.
     * @type {string}
     * @memberof SMSVerification
     */
    phone_number: string | null;
    /**
     * The number of delivery attempts made within the verification to send the SMS code to the user. Each delivery attempt represents the user taking action from the front end UI to request creation and delivery of a new SMS verification code, or to resend an existing SMS verification code. There is a limit of 3 delivery attempts per verification.
     * @type {number}
     * @memberof SMSVerification
     */
    delivery_attempt_count: number;
    /**
     * The number of attempts made by the user within the verification to verify the SMS code by entering it into the front end UI. There is a limit of 3 solve attempts per verification.
     * @type {number}
     * @memberof SMSVerification
     */
    solve_attempt_count: number;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof SMSVerification
     */
    initially_sent_at: string | null;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof SMSVerification
     */
    last_sent_at: string | null;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof SMSVerification
     */
    redacted_at: string | null;
}
/**
 * The outcome status for the individual SMS verification.
 * @export
 * @enum {string}
 */
export declare enum SMSVerificationStatus {
    Pending = "pending",
    Success = "success",
    Failed = "failed",
    Canceled = "canceled"
}
/**
 * SandboxBankIncomeFireWebhookRequest defines the request schema for `/sandbox/bank_income/fire_webhook`
 * @export
 * @interface SandboxBankIncomeFireWebhookRequest
 */
export interface SandboxBankIncomeFireWebhookRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxBankIncomeFireWebhookRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxBankIncomeFireWebhookRequest
     */
    secret?: string;
    /**
     * The URL to which the webhook should be sent. If provided, this will override the URL set in the dashboard.
     * @type {string}
     * @memberof SandboxBankIncomeFireWebhookRequest
     */
    webhook_override?: string;
    /**
     *
     * @type {SandboxBankIncomeWebhookFireRequestWebhookCode}
     * @memberof SandboxBankIncomeFireWebhookRequest
     */
    webhook_code: SandboxBankIncomeWebhookFireRequestWebhookCode;
    /**
     *
     * @type {SandboxBankIncomeWebhookFireRequestWebhookFields}
     * @memberof SandboxBankIncomeFireWebhookRequest
     */
    webhook_fields: SandboxBankIncomeWebhookFireRequestWebhookFields;
}
/**
 * SandboxBankIncomeFireWebhookResponse defines the response schema for `/sandbox/bank_income/fire_webhook`
 * @export
 * @interface SandboxBankIncomeFireWebhookResponse
 */
export interface SandboxBankIncomeFireWebhookResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxBankIncomeFireWebhookResponse
     */
    request_id: string;
}
/**
 * The webhook codes this endpoint can be used to test
 * @export
 * @enum {string}
 */
export declare enum SandboxBankIncomeWebhookFireRequestWebhookCode {
    Update = "BANK_INCOME_REFRESH_UPDATE",
    Complete = "BANK_INCOME_REFRESH_COMPLETE"
}
/**
 * Optional fields which will be populated in the simulated webhook
 * @export
 * @interface SandboxBankIncomeWebhookFireRequestWebhookFields
 */
export interface SandboxBankIncomeWebhookFireRequestWebhookFields {
    /**
     * The user id to be returned in INCOME webhooks
     * @type {string}
     * @memberof SandboxBankIncomeWebhookFireRequestWebhookFields
     */
    user_id: string;
    /**
     *
     * @type {BankIncomeRefreshCompleteResult}
     * @memberof SandboxBankIncomeWebhookFireRequestWebhookFields
     */
    bank_income_refresh_complete_result?: BankIncomeRefreshCompleteResult;
}
/**
 * Defines the request schema for `/sandbox/bank_transfer/fire_webhook`
 * @export
 * @interface SandboxBankTransferFireWebhookRequest
 */
export interface SandboxBankTransferFireWebhookRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxBankTransferFireWebhookRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxBankTransferFireWebhookRequest
     */
    secret?: string;
    /**
     * The URL to which the webhook should be sent.
     * @type {string}
     * @memberof SandboxBankTransferFireWebhookRequest
     */
    webhook: string;
}
/**
 * Defines the response schema for `/sandbox/bank_transfer/fire_webhook`
 * @export
 * @interface SandboxBankTransferFireWebhookResponse
 */
export interface SandboxBankTransferFireWebhookResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxBankTransferFireWebhookResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/bank_transfer/simulate`
 * @export
 * @interface SandboxBankTransferSimulateRequest
 */
export interface SandboxBankTransferSimulateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxBankTransferSimulateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxBankTransferSimulateRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a bank transfer.
     * @type {string}
     * @memberof SandboxBankTransferSimulateRequest
     */
    bank_transfer_id: string;
    /**
     * The asynchronous event to be simulated. May be: `posted`, `failed`, or `reversed`.  An error will be returned if the event type is incompatible with the current transfer status. Compatible status --> event type transitions include:  `pending` --> `failed`  `pending` --> `posted`  `posted` --> `reversed`
     * @type {string}
     * @memberof SandboxBankTransferSimulateRequest
     */
    event_type: string;
    /**
     *
     * @type {BankTransferFailure}
     * @memberof SandboxBankTransferSimulateRequest
     */
    failure_reason?: BankTransferFailure | null;
}
/**
 * Defines the response schema for `/sandbox/bank_transfer/simulate`
 * @export
 * @interface SandboxBankTransferSimulateResponse
 */
export interface SandboxBankTransferSimulateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxBankTransferSimulateResponse
     */
    request_id: string;
}
/**
 * SandboxCraCashflowUpdatesUpdateRequest defines the request schema for `/sandbox/cashflow_updates/update`
 * @export
 * @interface SandboxCraCashflowUpdatesUpdateRequest
 */
export interface SandboxCraCashflowUpdatesUpdateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxCraCashflowUpdatesUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxCraCashflowUpdatesUpdateRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof SandboxCraCashflowUpdatesUpdateRequest
     */
    user_token: string;
}
/**
 * SandboxCraCashflowUpdatesUpdateResponse defines the response schema for `sandbox/cashflow_updates/update`
 * @export
 * @interface SandboxCraCashflowUpdatesUpdateResponse
 */
export interface SandboxCraCashflowUpdatesUpdateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxCraCashflowUpdatesUpdateResponse
     */
    request_id: string;
}
/**
 * SandboxIncomeFireWebhookRequest defines the request schema for `/sandbox/income/fire_webhook`
 * @export
 * @interface SandboxIncomeFireWebhookRequest
 */
export interface SandboxIncomeFireWebhookRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxIncomeFireWebhookRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxIncomeFireWebhookRequest
     */
    secret?: string;
    /**
     * The Item ID associated with the verification.
     * @type {string}
     * @memberof SandboxIncomeFireWebhookRequest
     */
    item_id: string;
    /**
     * The Plaid `user_id` of the User associated with this webhook, warning, or error.
     * @type {string}
     * @memberof SandboxIncomeFireWebhookRequest
     */
    user_id?: string;
    /**
     * The URL to which the webhook should be sent.
     * @type {string}
     * @memberof SandboxIncomeFireWebhookRequest
     */
    webhook: string;
    /**
     * `VERIFICATION_STATUS_PROCESSING_COMPLETE`: The income verification status processing has completed. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the `/income/verification/paystubs/get` endpoint and check the document metadata to see which documents were successfully parsed.  `VERIFICATION_STATUS_PROCESSING_FAILED`: A failure occurred when attempting to process the verification documentation.  `VERIFICATION_STATUS_PENDING_APPROVAL`: (deprecated) The income verification has been sent to the user for review.
     * @type {string}
     * @memberof SandboxIncomeFireWebhookRequest
     */
    verification_status?: SandboxIncomeFireWebhookRequestVerificationStatusEnum;
    /**
     *
     * @type {SandboxIncomeWebhookFireRequestWebhookCode}
     * @memberof SandboxIncomeFireWebhookRequest
     */
    webhook_code: SandboxIncomeWebhookFireRequestWebhookCode;
}
/**
    * @export
    * @enum {string}
    */
export declare enum SandboxIncomeFireWebhookRequestVerificationStatusEnum {
    ProcessingComplete = "VERIFICATION_STATUS_PROCESSING_COMPLETE",
    ProcessingFailed = "VERIFICATION_STATUS_PROCESSING_FAILED",
    PendingApproval = "VERIFICATION_STATUS_PENDING_APPROVAL"
}
/**
 * SandboxIncomeFireWebhookResponse defines the response schema for `/sandbox/income/fire_webhook`
 * @export
 * @interface SandboxIncomeFireWebhookResponse
 */
export interface SandboxIncomeFireWebhookResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxIncomeFireWebhookResponse
     */
    request_id: string;
}
/**
 * The webhook codes that can be fired by this test endpoint.
 * @export
 * @enum {string}
 */
export declare enum SandboxIncomeWebhookFireRequestWebhookCode {
    Verification = "INCOME_VERIFICATION",
    VerificationRiskSignals = "INCOME_VERIFICATION_RISK_SIGNALS"
}
/**
 * SandboxItemFireWebhookRequest defines the request schema for `/sandbox/item/fire_webhook`
 * @export
 * @interface SandboxItemFireWebhookRequest
 */
export interface SandboxItemFireWebhookRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxItemFireWebhookRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxItemFireWebhookRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof SandboxItemFireWebhookRequest
     */
    access_token: string;
    /**
     *
     * @type {WebhookType}
     * @memberof SandboxItemFireWebhookRequest
     */
    webhook_type?: WebhookType;
    /**
     * The webhook codes that can be fired by this test endpoint.
     * @type {string}
     * @memberof SandboxItemFireWebhookRequest
     */
    webhook_code: SandboxItemFireWebhookRequestWebhookCodeEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum SandboxItemFireWebhookRequestWebhookCodeEnum {
    DefaultUpdate = "DEFAULT_UPDATE",
    NewAccountsAvailable = "NEW_ACCOUNTS_AVAILABLE",
    SmsMicrodepositsVerification = "SMS_MICRODEPOSITS_VERIFICATION",
    AuthorizationGranted = "AUTHORIZATION_GRANTED",
    PendingDisconnect = "PENDING_DISCONNECT",
    RecurringTransactionsUpdate = "RECURRING_TRANSACTIONS_UPDATE",
    LoginRepaired = "LOGIN_REPAIRED",
    SyncUpdatesAvailable = "SYNC_UPDATES_AVAILABLE",
    ProductReady = "PRODUCT_READY",
    Error = "ERROR"
}
/**
 * SandboxItemFireWebhookResponse defines the response schema for `/sandbox/item/fire_webhook`
 * @export
 * @interface SandboxItemFireWebhookResponse
 */
export interface SandboxItemFireWebhookResponse {
    /**
     * Value is `true`  if the test` webhook_code`  was successfully fired.
     * @type {boolean}
     * @memberof SandboxItemFireWebhookResponse
     */
    webhook_fired: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxItemFireWebhookResponse
     */
    request_id: string;
}
/**
 * SandboxItemResetLoginRequest defines the request schema for `/sandbox/item/reset_login`
 * @export
 * @interface SandboxItemResetLoginRequest
 */
export interface SandboxItemResetLoginRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxItemResetLoginRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxItemResetLoginRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof SandboxItemResetLoginRequest
     */
    access_token: string;
}
/**
 * SandboxItemResetLoginResponse defines the response schema for `/sandbox/item/reset_login`
 * @export
 * @interface SandboxItemResetLoginResponse
 */
export interface SandboxItemResetLoginResponse {
    /**
     * `true` if the call succeeded
     * @type {boolean}
     * @memberof SandboxItemResetLoginResponse
     */
    reset_login: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxItemResetLoginResponse
     */
    request_id: string;
}
/**
 * SandboxItemSetVerificationStatusRequest defines the request schema for `/sandbox/item/set_verification_status`
 * @export
 * @interface SandboxItemSetVerificationStatusRequest
 */
export interface SandboxItemSetVerificationStatusRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxItemSetVerificationStatusRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxItemSetVerificationStatusRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof SandboxItemSetVerificationStatusRequest
     */
    access_token: string;
    /**
     * The `account_id` of the account whose verification status is to be modified
     * @type {string}
     * @memberof SandboxItemSetVerificationStatusRequest
     */
    account_id: string;
    /**
     * The verification status to set the account to.
     * @type {string}
     * @memberof SandboxItemSetVerificationStatusRequest
     */
    verification_status: SandboxItemSetVerificationStatusRequestVerificationStatusEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum SandboxItemSetVerificationStatusRequestVerificationStatusEnum {
    AutomaticallyVerified = "automatically_verified",
    VerificationExpired = "verification_expired"
}
/**
 * SandboxItemSetVerificationStatusResponse defines the response schema for `/sandbox/item/set_verification_status`
 * @export
 * @interface SandboxItemSetVerificationStatusResponse
 */
export interface SandboxItemSetVerificationStatusResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxItemSetVerificationStatusResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `sandbox/oauth/select_accounts`
 * @export
 * @interface SandboxOauthSelectAccountsRequest
 */
export interface SandboxOauthSelectAccountsRequest {
    /**
     *
     * @type {string}
     * @memberof SandboxOauthSelectAccountsRequest
     */
    oauth_state_id: string;
    /**
     *
     * @type {Array<string>}
     * @memberof SandboxOauthSelectAccountsRequest
     */
    accounts: Array<string>;
}
/**
 * SandboxPaymentProfileResetLoginRequest defines the request schema for `/sandbox/payment_profile/reset_login`
 * @export
 * @interface SandboxPaymentProfileResetLoginRequest
 */
export interface SandboxPaymentProfileResetLoginRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxPaymentProfileResetLoginRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxPaymentProfileResetLoginRequest
     */
    secret?: string;
    /**
     * A payment profile token associated with the Payment Profile data that is being requested.
     * @type {string}
     * @memberof SandboxPaymentProfileResetLoginRequest
     */
    payment_profile_token: string;
}
/**
 * SandboxPaymentProfileResetLoginResponse defines the response schema for `/sandbox/payment_profile/reset_login`
 * @export
 * @interface SandboxPaymentProfileResetLoginResponse
 */
export interface SandboxPaymentProfileResetLoginResponse {
    /**
     * `true` if the call succeeded
     * @type {boolean}
     * @memberof SandboxPaymentProfileResetLoginResponse
     */
    reset_login: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxPaymentProfileResetLoginResponse
     */
    request_id: string;
}
/**
 * SandboxPaymentSimulateRequest defines the request schema for `/sandbox/payment/simulate`
 * @export
 * @interface SandboxPaymentSimulateRequest
 */
export interface SandboxPaymentSimulateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxPaymentSimulateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxPaymentSimulateRequest
     */
    secret?: string;
    /**
     * The ID of the payment to simulate
     * @type {string}
     * @memberof SandboxPaymentSimulateRequest
     */
    payment_id: string;
    /**
     * The status to set the payment to.   Valid statuses include: - `PAYMENT_STATUS_INITIATED` - `PAYMENT_STATUS_INSUFFICIENT_FUNDS` - `PAYMENT_STATUS_FAILED` - `PAYMENT_STATUS_EXECUTED` - `PAYMENT_STATUS_SETTLED` - `PAYMENT_STATUS_CANCELLED` - `PAYMENT_STATUS_REJECTED`
     * @type {string}
     * @memberof SandboxPaymentSimulateRequest
     */
    status: string;
}
/**
 * SandboxPaymentSimulateResponse defines the response schema for `/sandbox/payment/simulate`
 * @export
 * @interface SandboxPaymentSimulateResponse
 */
export interface SandboxPaymentSimulateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxPaymentSimulateResponse
     */
    request_id: string;
    /**
     *
     * @type {PaymentInitiationPaymentStatus}
     * @memberof SandboxPaymentSimulateResponse
     */
    old_status: PaymentInitiationPaymentStatus;
    /**
     *
     * @type {PaymentInitiationPaymentStatus}
     * @memberof SandboxPaymentSimulateResponse
     */
    new_status: PaymentInitiationPaymentStatus;
}
/**
 * SandboxProcessorTokenCreateRequest defines the request schema for `/sandbox/processor_token/create`
 * @export
 * @interface SandboxProcessorTokenCreateRequest
 */
export interface SandboxProcessorTokenCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxProcessorTokenCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxProcessorTokenCreateRequest
     */
    secret?: string;
    /**
     * The ID of the institution the Item will be associated with
     * @type {string}
     * @memberof SandboxProcessorTokenCreateRequest
     */
    institution_id: string;
    /**
     *
     * @type {SandboxProcessorTokenCreateRequestOptions}
     * @memberof SandboxProcessorTokenCreateRequest
     */
    options?: SandboxProcessorTokenCreateRequestOptions;
}
/**
 * An optional set of options to be used when configuring the Item. If specified, must not be `null`.
 * @export
 * @interface SandboxProcessorTokenCreateRequestOptions
 */
export interface SandboxProcessorTokenCreateRequestOptions {
    /**
     * Test username to use for the creation of the Sandbox Item. Default value is `user_good`.
     * @type {string}
     * @memberof SandboxProcessorTokenCreateRequestOptions
     */
    override_username?: string | null;
    /**
     * Test password to use for the creation of the Sandbox Item. Default value is `pass_good`.
     * @type {string}
     * @memberof SandboxProcessorTokenCreateRequestOptions
     */
    override_password?: string | null;
}
/**
 * SandboxProcessorTokenCreateResponse defines the response schema for `/sandbox/processor_token/create`
 * @export
 * @interface SandboxProcessorTokenCreateResponse
 */
export interface SandboxProcessorTokenCreateResponse {
    /**
     * A processor token that can be used to call the `/processor/` endpoints.
     * @type {string}
     * @memberof SandboxProcessorTokenCreateResponse
     */
    processor_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxProcessorTokenCreateResponse
     */
    request_id: string;
}
/**
 * SandboxPublicTokenCreateRequest defines the request schema for `/sandbox/public_token/create`
 * @export
 * @interface SandboxPublicTokenCreateRequest
 */
export interface SandboxPublicTokenCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxPublicTokenCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxPublicTokenCreateRequest
     */
    secret?: string;
    /**
     * The ID of the institution the Item will be associated with
     * @type {string}
     * @memberof SandboxPublicTokenCreateRequest
     */
    institution_id: string;
    /**
     * The products to initially pull for the Item. May be any products that the specified `institution_id`  supports. This array may not be empty.
     * @type {Array<Products>}
     * @memberof SandboxPublicTokenCreateRequest
     */
    initial_products: Array<Products>;
    /**
     *
     * @type {SandboxPublicTokenCreateRequestOptions}
     * @memberof SandboxPublicTokenCreateRequest
     */
    options?: SandboxPublicTokenCreateRequestOptions;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof SandboxPublicTokenCreateRequest
     */
    user_token?: string;
}
/**
 * Specifies options for Bank Income. This field is required if `income_verification` is included in the `initial_products` array and `bank` is specified in `income_source_types`.
 * @export
 * @interface SandboxPublicTokenCreateRequestIncomeVerificationBankIncome
 */
export interface SandboxPublicTokenCreateRequestIncomeVerificationBankIncome {
    /**
     * The number of days of data to request for the Bank Income product
     * @type {number}
     * @memberof SandboxPublicTokenCreateRequestIncomeVerificationBankIncome
     */
    days_requested?: number;
}
/**
 * An optional set of options to be used when configuring the Item. If specified, must not be `null`.
 * @export
 * @interface SandboxPublicTokenCreateRequestOptions
 */
export interface SandboxPublicTokenCreateRequestOptions {
    /**
     * Specify a webhook to associate with the new Item.
     * @type {string}
     * @memberof SandboxPublicTokenCreateRequestOptions
     */
    webhook?: string;
    /**
     * Test username to use for the creation of the Sandbox Item. Default value is `user_good`.
     * @type {string}
     * @memberof SandboxPublicTokenCreateRequestOptions
     */
    override_username?: string | null;
    /**
     * Test password to use for the creation of the Sandbox Item. Default value is `pass_good`.
     * @type {string}
     * @memberof SandboxPublicTokenCreateRequestOptions
     */
    override_password?: string | null;
    /**
     *
     * @type {SandboxPublicTokenCreateRequestOptionsTransactions}
     * @memberof SandboxPublicTokenCreateRequestOptions
     */
    transactions?: SandboxPublicTokenCreateRequestOptionsTransactions;
    /**
     *
     * @type {SandboxPublicTokenCreateRequestOptionsStatements}
     * @memberof SandboxPublicTokenCreateRequestOptions
     */
    statements?: SandboxPublicTokenCreateRequestOptionsStatements | null;
    /**
     *
     * @type {SandboxPublicTokenCreateRequestOptionsIncomeVerification}
     * @memberof SandboxPublicTokenCreateRequestOptions
     */
    income_verification?: SandboxPublicTokenCreateRequestOptionsIncomeVerification;
}
/**
 * A set of parameters for income verification options. This field is required if `income_verification` is included in the `initial_products` array.
 * @export
 * @interface SandboxPublicTokenCreateRequestOptionsIncomeVerification
 */
export interface SandboxPublicTokenCreateRequestOptionsIncomeVerification {
    /**
     * The types of source income data that users will be permitted to share. Options include `bank` and `payroll`. Currently you can only specify one of these options.
     * @type {Array<IncomeVerificationSourceType>}
     * @memberof SandboxPublicTokenCreateRequestOptionsIncomeVerification
     */
    income_source_types?: Array<IncomeVerificationSourceType>;
    /**
     *
     * @type {SandboxPublicTokenCreateRequestIncomeVerificationBankIncome}
     * @memberof SandboxPublicTokenCreateRequestOptionsIncomeVerification
     */
    bank_income?: SandboxPublicTokenCreateRequestIncomeVerificationBankIncome;
}
/**
 * An optional set of parameters corresponding to statements options.
 * @export
 * @interface SandboxPublicTokenCreateRequestOptionsStatements
 */
export interface SandboxPublicTokenCreateRequestOptionsStatements {
    /**
     * The earliest date for which to fetch statements history. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof SandboxPublicTokenCreateRequestOptionsStatements
     */
    start_date: string;
    /**
     * The most recent date for which to fetch statements history. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof SandboxPublicTokenCreateRequestOptionsStatements
     */
    end_date: string;
}
/**
 * An optional set of parameters corresponding to transactions options.
 * @export
 * @interface SandboxPublicTokenCreateRequestOptionsTransactions
 */
export interface SandboxPublicTokenCreateRequestOptionsTransactions {
    /**
     * The earliest date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof SandboxPublicTokenCreateRequestOptionsTransactions
     */
    start_date?: string;
    /**
     * The most recent date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof SandboxPublicTokenCreateRequestOptionsTransactions
     */
    end_date?: string;
    /**
     * The maximum number of days of transaction history to request for the Transactions product.
     * @type {number}
     * @memberof SandboxPublicTokenCreateRequestOptionsTransactions
     */
    days_requested?: number;
}
/**
 * SandboxPublicTokenCreateResponse defines the response schema for `/sandbox/public_token/create`
 * @export
 * @interface SandboxPublicTokenCreateResponse
 */
export interface SandboxPublicTokenCreateResponse {
    /**
     * A public token that can be exchanged for an access token using `/item/public_token/exchange`
     * @type {string}
     * @memberof SandboxPublicTokenCreateResponse
     */
    public_token: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxPublicTokenCreateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/fire_webhook`
 * @export
 * @interface SandboxTransferFireWebhookRequest
 */
export interface SandboxTransferFireWebhookRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferFireWebhookRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferFireWebhookRequest
     */
    secret?: string;
    /**
     * The URL to which the webhook should be sent.
     * @type {string}
     * @memberof SandboxTransferFireWebhookRequest
     */
    webhook: string;
}
/**
 * Defines the response schema for `/sandbox/transfer/fire_webhook`
 * @export
 * @interface SandboxTransferFireWebhookResponse
 */
export interface SandboxTransferFireWebhookResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferFireWebhookResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/ledger/deposit/simulate`
 * @export
 * @interface SandboxTransferLedgerDepositSimulateRequest
 */
export interface SandboxTransferLedgerDepositSimulateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferLedgerDepositSimulateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferLedgerDepositSimulateRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a sweep.
     * @type {string}
     * @memberof SandboxTransferLedgerDepositSimulateRequest
     */
    sweep_id: string;
    /**
     *
     * @type {TransferLedgerSweepSimulateEventType}
     * @memberof SandboxTransferLedgerDepositSimulateRequest
     */
    event_type: TransferLedgerSweepSimulateEventType;
    /**
     *
     * @type {TransferFailure}
     * @memberof SandboxTransferLedgerDepositSimulateRequest
     */
    failure_reason?: TransferFailure | null;
}
/**
 * Defines the response schema for `/sandbox/transfer/ledger/deposit/simulate`
 * @export
 * @interface SandboxTransferLedgerDepositSimulateResponse
 */
export interface SandboxTransferLedgerDepositSimulateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferLedgerDepositSimulateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/ledger/simulate_available`
 * @export
 * @interface SandboxTransferLedgerSimulateAvailableRequest
 */
export interface SandboxTransferLedgerSimulateAvailableRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferLedgerSimulateAvailableRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferLedgerSimulateAvailableRequest
     */
    secret?: string;
    /**
     * Specify which ledger balance to simulate converting pending balance to available balance. If this field is left blank, this will default to id of the default ledger balance.
     * @type {string}
     * @memberof SandboxTransferLedgerSimulateAvailableRequest
     */
    ledger_id?: string | null;
    /**
     * Plaid’s unique identifier for a test clock. If provided, only the pending balance that is due before the `virtual_timestamp` on the test clock will be converted.
     * @type {string}
     * @memberof SandboxTransferLedgerSimulateAvailableRequest
     */
    test_clock_id?: string | null;
    /**
     * The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.
     * @type {string}
     * @memberof SandboxTransferLedgerSimulateAvailableRequest
     */
    webhook?: string;
}
/**
 * Defines the response schema for `/sandbox/transfer/ledger/simulate_available`
 * @export
 * @interface SandboxTransferLedgerSimulateAvailableResponse
 */
export interface SandboxTransferLedgerSimulateAvailableResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferLedgerSimulateAvailableResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/ledger/withdraw/simulate`
 * @export
 * @interface SandboxTransferLedgerWithdrawSimulateRequest
 */
export interface SandboxTransferLedgerWithdrawSimulateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferLedgerWithdrawSimulateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferLedgerWithdrawSimulateRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a sweep.
     * @type {string}
     * @memberof SandboxTransferLedgerWithdrawSimulateRequest
     */
    sweep_id: string;
    /**
     *
     * @type {TransferLedgerSweepSimulateEventType}
     * @memberof SandboxTransferLedgerWithdrawSimulateRequest
     */
    event_type: TransferLedgerSweepSimulateEventType;
    /**
     *
     * @type {TransferFailure}
     * @memberof SandboxTransferLedgerWithdrawSimulateRequest
     */
    failure_reason?: TransferFailure | null;
}
/**
 * Defines the response schema for `/sandbox/transfer/ledger/withdraw/simulate`
 * @export
 * @interface SandboxTransferLedgerWithdrawSimulateResponse
 */
export interface SandboxTransferLedgerWithdrawSimulateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferLedgerWithdrawSimulateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/refund/simulate`
 * @export
 * @interface SandboxTransferRefundSimulateRequest
 */
export interface SandboxTransferRefundSimulateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferRefundSimulateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferRefundSimulateRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a refund.
     * @type {string}
     * @memberof SandboxTransferRefundSimulateRequest
     */
    refund_id: string;
    /**
     * Plaid’s unique identifier for a test clock. If provided, the event to be simulated is created at the `virtual_time` on the provided `test_clock`.
     * @type {string}
     * @memberof SandboxTransferRefundSimulateRequest
     */
    test_clock_id?: string | null;
    /**
     * The asynchronous event to be simulated. May be: `refund.posted`, `refund.settled`, `refund.failed`, or `refund.returned`.  An error will be returned if the event type is incompatible with the current refund status. Compatible status --> event type transitions include:  `refund.pending` --> `refund.failed`  `refund.pending` --> `refund.posted`  `refund.posted` --> `refund.returned`  `refund.posted` --> `refund.settled`  `refund.posted` events can only be simulated if the refunded transfer has been transitioned to settled. This mimics the ordering of events in Production.
     * @type {string}
     * @memberof SandboxTransferRefundSimulateRequest
     */
    event_type: string;
    /**
     *
     * @type {TransferFailure}
     * @memberof SandboxTransferRefundSimulateRequest
     */
    failure_reason?: TransferFailure | null;
    /**
     * The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.
     * @type {string}
     * @memberof SandboxTransferRefundSimulateRequest
     */
    webhook?: string;
}
/**
 * Defines the response schema for `/sandbox/transfer/refund/simulate`
 * @export
 * @interface SandboxTransferRefundSimulateResponse
 */
export interface SandboxTransferRefundSimulateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferRefundSimulateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/repayment/simulate`
 * @export
 * @interface SandboxTransferRepaymentSimulateRequest
 */
export interface SandboxTransferRepaymentSimulateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferRepaymentSimulateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferRepaymentSimulateRequest
     */
    secret?: string;
}
/**
 * Defines the response schema for `/sandbox/transfer/repayment/simulate`
 * @export
 * @interface SandboxTransferRepaymentSimulateResponse
 */
export interface SandboxTransferRepaymentSimulateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferRepaymentSimulateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/simulate`
 * @export
 * @interface SandboxTransferSimulateRequest
 */
export interface SandboxTransferSimulateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferSimulateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferSimulateRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a transfer.
     * @type {string}
     * @memberof SandboxTransferSimulateRequest
     */
    transfer_id: string;
    /**
     * Plaid’s unique identifier for a test clock. If provided, the event to be simulated is created at the `virtual_time` on the provided `test_clock`.
     * @type {string}
     * @memberof SandboxTransferSimulateRequest
     */
    test_clock_id?: string | null;
    /**
     * The asynchronous event to be simulated. May be: `posted`, `settled`, `failed`, `funds_available`, or `returned`.  An error will be returned if the event type is incompatible with the current transfer status. Compatible status --> event type transitions include:  `pending` --> `failed`  `pending` --> `posted`  `posted` --> `returned`  `posted` --> `settled`  `settled` --> `funds_available` (only applicable to ACH debits.)
     * @type {string}
     * @memberof SandboxTransferSimulateRequest
     */
    event_type: string;
    /**
     *
     * @type {TransferFailure}
     * @memberof SandboxTransferSimulateRequest
     */
    failure_reason?: TransferFailure | null;
    /**
     * The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.
     * @type {string}
     * @memberof SandboxTransferSimulateRequest
     */
    webhook?: string;
}
/**
 * Defines the response schema for `/sandbox/transfer/simulate`
 * @export
 * @interface SandboxTransferSimulateResponse
 */
export interface SandboxTransferSimulateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferSimulateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/sweep/simulate`
 * @export
 * @interface SandboxTransferSweepSimulateRequest
 */
export interface SandboxTransferSweepSimulateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferSweepSimulateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferSweepSimulateRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a test clock. If provided, the sweep to be simulated is created on the day of the `virtual_time` on the `test_clock`. If the date of `virtual_time` is on weekend or a federal holiday, the next available banking day is used.
     * @type {string}
     * @memberof SandboxTransferSweepSimulateRequest
     */
    test_clock_id?: string | null;
    /**
     * The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.
     * @type {string}
     * @memberof SandboxTransferSweepSimulateRequest
     */
    webhook?: string;
}
/**
 * Defines the response schema for `/sandbox/transfer/sweep/simulate`
 * @export
 * @interface SandboxTransferSweepSimulateResponse
 */
export interface SandboxTransferSweepSimulateResponse {
    /**
     *
     * @type {SimulatedTransferSweep}
     * @memberof SandboxTransferSweepSimulateResponse
     */
    sweep?: SimulatedTransferSweep;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferSweepSimulateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/test_clock/advance`
 * @export
 * @interface SandboxTransferTestClockAdvanceRequest
 */
export interface SandboxTransferTestClockAdvanceRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferTestClockAdvanceRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferTestClockAdvanceRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a test clock.
     * @type {string}
     * @memberof SandboxTransferTestClockAdvanceRequest
     */
    test_clock_id: string;
    /**
     * The virtual timestamp on the test clock. This will be of the form `2006-01-02T15:04:05Z`.
     * @type {string}
     * @memberof SandboxTransferTestClockAdvanceRequest
     */
    new_virtual_time: string;
}
/**
 * Defines the response schema for `/sandbox/transfer/test_clock/advance`
 * @export
 * @interface SandboxTransferTestClockAdvanceResponse
 */
export interface SandboxTransferTestClockAdvanceResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferTestClockAdvanceResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/test_clock/create`
 * @export
 * @interface SandboxTransferTestClockCreateRequest
 */
export interface SandboxTransferTestClockCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferTestClockCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferTestClockCreateRequest
     */
    secret?: string;
    /**
     * The virtual timestamp on the test clock. If not provided, the current timestamp will be used. This will be of the form `2006-01-02T15:04:05Z`.
     * @type {string}
     * @memberof SandboxTransferTestClockCreateRequest
     */
    virtual_time?: string | null;
}
/**
 * Defines the response schema for `/sandbox/transfer/test_clock/create`
 * @export
 * @interface SandboxTransferTestClockCreateResponse
 */
export interface SandboxTransferTestClockCreateResponse {
    /**
     *
     * @type {TransferTestClock}
     * @memberof SandboxTransferTestClockCreateResponse
     */
    test_clock: TransferTestClock;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferTestClockCreateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/test_clock/get`
 * @export
 * @interface SandboxTransferTestClockGetRequest
 */
export interface SandboxTransferTestClockGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferTestClockGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferTestClockGetRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a test clock.
     * @type {string}
     * @memberof SandboxTransferTestClockGetRequest
     */
    test_clock_id: string;
}
/**
 * Defines the response schema for `/sandbox/transfer/test_clock/get`
 * @export
 * @interface SandboxTransferTestClockGetResponse
 */
export interface SandboxTransferTestClockGetResponse {
    /**
     *
     * @type {TransferTestClock}
     * @memberof SandboxTransferTestClockGetResponse
     */
    test_clock: TransferTestClock;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferTestClockGetResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/sandbox/transfer/test_clock/list`
 * @export
 * @interface SandboxTransferTestClockListRequest
 */
export interface SandboxTransferTestClockListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferTestClockListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxTransferTestClockListRequest
     */
    secret?: string;
    /**
     * The start virtual timestamp of test clocks to return. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof SandboxTransferTestClockListRequest
     */
    start_virtual_time?: string | null;
    /**
     * The end virtual timestamp of test clocks to return. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof SandboxTransferTestClockListRequest
     */
    end_virtual_time?: string | null;
    /**
     * The maximum number of test clocks to return.
     * @type {number}
     * @memberof SandboxTransferTestClockListRequest
     */
    count?: number | null;
    /**
     * The number of test clocks to skip before returning results.
     * @type {number}
     * @memberof SandboxTransferTestClockListRequest
     */
    offset?: number;
}
/**
 * Defines the response schema for `/sandbox/transfer/test_clock/list`
 * @export
 * @interface SandboxTransferTestClockListResponse
 */
export interface SandboxTransferTestClockListResponse {
    /**
     *
     * @type {Array<TransferTestClock>}
     * @memberof SandboxTransferTestClockListResponse
     */
    test_clocks: Array<TransferTestClock>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxTransferTestClockListResponse
     */
    request_id: string;
}
/**
 * SandboxUserResetLoginRequest defines the request schema for `/sandbox/user/reset_login`
 * @export
 * @interface SandboxUserResetLoginRequest
 */
export interface SandboxUserResetLoginRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SandboxUserResetLoginRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SandboxUserResetLoginRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof SandboxUserResetLoginRequest
     */
    user_token: string;
    /**
     * An array of `item_id`s associated with the User to be reset.  If empty or `null`, this field will default to resetting all Items associated with the User.
     * @type {Array<string>}
     * @memberof SandboxUserResetLoginRequest
     */
    item_ids?: Array<string> | null;
}
/**
 * SandboxUserResetLoginResponse defines the response schema for `/sandbox/user/reset_login`
 * @export
 * @interface SandboxUserResetLoginResponse
 */
export interface SandboxUserResetLoginResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SandboxUserResetLoginResponse
     */
    request_id: string;
}
/**
 * The scopes object
 * @export
 * @interface Scopes
 */
export interface Scopes {
    /**
     *
     * @type {ProductAccess}
     * @memberof Scopes
     */
    product_access?: ProductAccess;
    /**
     *
     * @type {Array<AccountAccess>}
     * @memberof Scopes
     */
    accounts?: Array<AccountAccess>;
    /**
     * Allow access to newly opened accounts as they are opened. If unset, defaults to `true`.
     * @type {boolean}
     * @memberof Scopes
     */
    new_accounts?: boolean | null;
}
/**
 * An indicator for when scopes are being updated. When scopes are updated via enrollment (i.e. OAuth), the partner must send `ENROLLMENT`. When scopes are updated in a post-enrollment view, the partner must send `PORTAL`.
 * @export
 * @enum {string}
 */
export declare enum ScopesContext {
    Enrollment = "ENROLLMENT",
    Portal = "PORTAL"
}
/**
 * The scopes object
 * @export
 * @interface ScopesNullable
 */
export interface ScopesNullable {
    /**
     *
     * @type {ProductAccess}
     * @memberof ScopesNullable
     */
    product_access?: ProductAccess;
    /**
     *
     * @type {Array<AccountAccess>}
     * @memberof ScopesNullable
     */
    accounts?: Array<AccountAccess>;
    /**
     * Allow access to newly opened accounts as they are opened. If unset, defaults to `true`.
     * @type {boolean}
     * @memberof ScopesNullable
     */
    new_accounts?: boolean | null;
}
/**
 * Analysis information describing why a screening hit matched the provided user information
 * @export
 * @interface ScreeningHitAnalysis
 */
export interface ScreeningHitAnalysis {
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof ScreeningHitAnalysis
     */
    dates_of_birth?: MatchSummaryCode;
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof ScreeningHitAnalysis
     */
    documents?: MatchSummaryCode;
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof ScreeningHitAnalysis
     */
    locations?: MatchSummaryCode;
    /**
     *
     * @type {MatchSummaryCode}
     * @memberof ScreeningHitAnalysis
     */
    names?: MatchSummaryCode;
    /**
     * The version of the screening\'s `search_terms` that were compared when the screening hit was added. screening hits are immutable once they have been reviewed. If changes are detected due to updates to the screening\'s `search_terms`, the associated program, or the list\'s source data prior to review, the screening hit will be updated to reflect those changes.
     * @type {number}
     * @memberof ScreeningHitAnalysis
     */
    search_terms_version: number;
}
/**
 * Information associated with the watchlist hit
 * @export
 * @interface ScreeningHitData
 */
export interface ScreeningHitData {
    /**
     * Dates of birth associated with the watchlist hit
     * @type {Array<ScreeningHitDateOfBirthItem>}
     * @memberof ScreeningHitData
     */
    dates_of_birth?: Array<ScreeningHitDateOfBirthItem>;
    /**
     * Documents associated with the watchlist hit
     * @type {Array<ScreeningHitDocumentsItems>}
     * @memberof ScreeningHitData
     */
    documents?: Array<ScreeningHitDocumentsItems>;
    /**
     * Locations associated with the watchlist hit
     * @type {Array<GenericScreeningHitLocationItems>}
     * @memberof ScreeningHitData
     */
    locations?: Array<GenericScreeningHitLocationItems>;
    /**
     * Names associated with the watchlist hit
     * @type {Array<ScreeningHitNamesItems>}
     * @memberof ScreeningHitData
     */
    names?: Array<ScreeningHitNamesItems>;
}
/**
 * Analyzed date of birth for the associated hit
 * @export
 * @interface ScreeningHitDateOfBirthItem
 */
export interface ScreeningHitDateOfBirthItem {
    /**
     *
     * @type {MatchSummary}
     * @memberof ScreeningHitDateOfBirthItem
     */
    analysis?: MatchSummary;
    /**
     *
     * @type {DateRange}
     * @memberof ScreeningHitDateOfBirthItem
     */
    data?: DateRange;
}
/**
 * Analyzed document information for the associated hit
 * @export
 * @interface ScreeningHitDocumentsItems
 */
export interface ScreeningHitDocumentsItems {
    /**
     *
     * @type {MatchSummary}
     * @memberof ScreeningHitDocumentsItems
     */
    analysis?: MatchSummary;
    /**
     *
     * @type {WatchlistScreeningDocument}
     * @memberof ScreeningHitDocumentsItems
     */
    data?: WatchlistScreeningDocument;
}
/**
 * Analyzed name information for the associated hit
 * @export
 * @interface ScreeningHitNamesItems
 */
export interface ScreeningHitNamesItems {
    /**
     *
     * @type {MatchSummary}
     * @memberof ScreeningHitNamesItems
     */
    analysis?: MatchSummary;
    /**
     *
     * @type {IndividualScreeningHitNames}
     * @memberof ScreeningHitNamesItems
     */
    data?: IndividualScreeningHitNames;
}
/**
 * Fired when an individual screening status has changed, which can occur manually via the dashboard or during ongoing monitoring.
 * @export
 * @interface ScreeningStatusUpdatedWebhook
 */
export interface ScreeningStatusUpdatedWebhook {
    /**
     * `SCREENING`
     * @type {string}
     * @memberof ScreeningStatusUpdatedWebhook
     */
    webhook_type: string;
    /**
     * `STATUS_UPDATED`
     * @type {string}
     * @memberof ScreeningStatusUpdatedWebhook
     */
    webhook_code: string;
    /**
     * The ID of the associated screening.
     * @type {string}
     * @memberof ScreeningStatusUpdatedWebhook
     */
    screening_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof ScreeningStatusUpdatedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Contains details about a security
 * @export
 * @interface Security
 */
export interface Security {
    /**
     * A unique, Plaid-specific identifier for the security, used to associate securities with holdings. Like all Plaid identifiers, the `security_id` is case sensitive. The `security_id` may change if inherent details of the security change due to a corporate action, for example, in the event of a ticker symbol change or CUSIP change.
     * @type {string}
     * @memberof Security
     */
    security_id: string;
    /**
     * 12-character ISIN, a globally unique securities identifier. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please start the verification process [here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform).
     * @type {string}
     * @memberof Security
     */
    isin: string | null;
    /**
     * 9-character CUSIP, an identifier assigned to North American securities. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please start the verification process [here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform).
     * @type {string}
     * @memberof Security
     */
    cusip: string | null;
    /**
     * 7-character SEDOL, an identifier assigned to securities in the UK.
     * @type {string}
     * @memberof Security
     */
    sedol: string | null;
    /**
     * An identifier given to the security by the institution
     * @type {string}
     * @memberof Security
     */
    institution_security_id: string | null;
    /**
     * If `institution_security_id` is present, this field indicates the Plaid `institution_id` of the institution to whom the identifier belongs.
     * @type {string}
     * @memberof Security
     */
    institution_id: string | null;
    /**
     * In certain cases, Plaid will provide the ID of another security whose performance resembles this security, typically when the original security has low volume, or when a private security can be modeled with a publicly traded security.
     * @type {string}
     * @memberof Security
     */
    proxy_security_id: string | null;
    /**
     * A descriptive name for the security, suitable for display.
     * @type {string}
     * @memberof Security
     */
    name: string | null;
    /**
     * The security’s trading symbol for publicly traded securities, and otherwise a short identifier if available.
     * @type {string}
     * @memberof Security
     */
    ticker_symbol: string | null;
    /**
     * Indicates that a security is a highly liquid asset and can be treated like cash.
     * @type {boolean}
     * @memberof Security
     */
    is_cash_equivalent: boolean | null;
    /**
     * The security type of the holding.  In rare instances, a null value is returned when institutional data is insufficient to determine the security type.  Valid security types are:  `cash`: Cash, currency, and money market funds  `cryptocurrency`: Digital or virtual currencies  `derivative`: Options, warrants, and other derivative instruments  `equity`: Domestic and foreign equities  `etf`: Multi-asset exchange-traded investment funds  `fixed income`: Bonds and certificates of deposit (CDs)  `loan`: Loans and loan receivables  `mutual fund`: Open- and closed-end vehicles pooling funds of multiple investors  `other`: Unknown or other investment types
     * @type {string}
     * @memberof Security
     */
    type: string | null;
    /**
     * Price of the security at the close of the previous trading session. Null for non-public securities.  If the security is a foreign currency this field will be updated daily and will be priced in USD.  If the security is a cryptocurrency, this field will be updated multiple times a day. As crypto prices can fluctuate quickly and data may become stale sooner than other asset classes, refer to `update_datetime` with the time when the price was last updated.
     * @type {number}
     * @memberof Security
     */
    close_price: number | null;
    /**
     * Date for which `close_price` is accurate. Always `null` if `close_price` is `null`.
     * @type {string}
     * @memberof Security
     */
    close_price_as_of: string | null;
    /**
     * Date and time at which `close_price` is accurate, in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ). Always `null` if `close_price` is `null`.
     * @type {string}
     * @memberof Security
     */
    update_datetime?: string | null;
    /**
     * The ISO-4217 currency code of the price given. Always `null` if `unofficial_currency_code` is non-`null`.
     * @type {string}
     * @memberof Security
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the security. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof Security
     */
    unofficial_currency_code: string | null;
    /**
     * The ISO-10383 Market Identifier Code of the exchange or market in which the security is being traded.
     * @type {string}
     * @memberof Security
     */
    market_identifier_code: string | null;
    /**
     * The sector classification of the security, such as Finance, Health Technology, etc.  For a complete list of possible values, please refer to the [\"Sectors and Industries\" spreadsheet](https://docs.google.com/spreadsheets/d/1L7aXUdqLhxgM8qe7hK67qqKXiUdQqILpwZ0LpxvCVnc).
     * @type {string}
     * @memberof Security
     */
    sector: string | null;
    /**
     * The industry classification of the security, such as Biotechnology, Airlines, etc.  For a complete list of possible values, please refer to the [\"Sectors and Industries\" spreadsheet](https://docs.google.com/spreadsheets/d/1L7aXUdqLhxgM8qe7hK67qqKXiUdQqILpwZ0LpxvCVnc).
     * @type {string}
     * @memberof Security
     */
    industry: string | null;
    /**
     *
     * @type {OptionContract}
     * @memberof Security
     */
    option_contract: OptionContract | null;
    /**
     *
     * @type {FixedIncome}
     * @memberof Security
     */
    fixed_income: FixedIncome | null;
}
/**
 * Specify the security associated with the holding or investment transaction. When inputting custom security data to the Sandbox, Plaid will perform post-data-retrieval normalization and enrichment. These processes may cause the data returned by the Sandbox to be slightly different from the data you input. An ISO-4217 currency code and a security identifier (`ticker_symbol`, `cusip`, `isin`, or `sedol`) are required.
 * @export
 * @interface SecurityOverride
 */
export interface SecurityOverride {
    /**
     * 12-character ISIN, a globally unique securities identifier. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please [request ISIN/CUSIP access here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform).
     * @type {string}
     * @memberof SecurityOverride
     */
    isin?: string;
    /**
     * 9-character CUSIP, an identifier assigned to North American securities. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please [request ISIN/CUSIP access here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform).
     * @type {string}
     * @memberof SecurityOverride
     */
    cusip?: string;
    /**
     * 7-character SEDOL, an identifier assigned to securities in the UK.
     * @type {string}
     * @memberof SecurityOverride
     */
    sedol?: string;
    /**
     * A descriptive name for the security, suitable for display.
     * @type {string}
     * @memberof SecurityOverride
     */
    name?: string;
    /**
     * The security’s trading symbol for publicly traded securities, and otherwise a short identifier if available.
     * @type {string}
     * @memberof SecurityOverride
     */
    ticker_symbol?: string;
    /**
     * Either a valid `iso_currency_code` or `unofficial_currency_code`
     * @type {string}
     * @memberof SecurityOverride
     */
    currency?: string;
}
/**
 * High level descriptions of how the associated selfie was processed. If a selfie fails verification, the details in the `analysis` object should help clarify why the selfie was rejected.
 * @export
 * @interface SelfieAnalysis
 */
export interface SelfieAnalysis {
    /**
     *
     * @type {SelfieAnalysisDocumentComparison}
     * @memberof SelfieAnalysis
     */
    document_comparison: SelfieAnalysisDocumentComparison;
    /**
     *
     * @type {SelfieAnalysisLivenessCheck}
     * @memberof SelfieAnalysis
     */
    liveness_check: SelfieAnalysisLivenessCheck;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysis}
     * @memberof SelfieAnalysis
     */
    facial_analysis?: SelfieAnalysisFacialAnalysis | null;
}
/**
 * Information about the comparison between the selfie and the document (if documentary verification also ran).
 * @export
 * @enum {string}
 */
export declare enum SelfieAnalysisDocumentComparison {
    Match = "match",
    NoMatch = "no_match",
    NoInput = "no_input"
}
/**
 * Analysis of the facial features of the selfie when compared to the face in the uploaded document, if one is present.
 * @export
 * @interface SelfieAnalysisFacialAnalysis
 */
export interface SelfieAnalysisFacialAnalysis {
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    left_eye: SelfieAnalysisFacialAnalysisOutcome;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    right_eye: SelfieAnalysisFacialAnalysisOutcome;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    left_brow: SelfieAnalysisFacialAnalysisOutcome;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    right_brow: SelfieAnalysisFacialAnalysisOutcome;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    forehead: SelfieAnalysisFacialAnalysisOutcome;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    middle_forehead: SelfieAnalysisFacialAnalysisOutcome;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    nose: SelfieAnalysisFacialAnalysisOutcome;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    philtrum: SelfieAnalysisFacialAnalysisOutcome;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    mouth: SelfieAnalysisFacialAnalysisOutcome;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    jaw: SelfieAnalysisFacialAnalysisOutcome;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    left_cheek: SelfieAnalysisFacialAnalysisOutcome;
    /**
     *
     * @type {SelfieAnalysisFacialAnalysisOutcome}
     * @memberof SelfieAnalysisFacialAnalysis
     */
    right_cheek: SelfieAnalysisFacialAnalysisOutcome;
}
/**
 * Outcome of the facial analysis for a specific facial feature.
 * @export
 * @enum {string}
 */
export declare enum SelfieAnalysisFacialAnalysisOutcome {
    Success = "success",
    Failed = "failed"
}
/**
 * Assessment of whether the selfie capture is of a real human being, as opposed to a picture of a human on a screen, a picture of a paper cut out, someone wearing a mask, or a deepfake.
 * @export
 * @enum {string}
 */
export declare enum SelfieAnalysisLivenessCheck {
    Success = "success",
    Failed = "failed"
}
/**
 * The image or video capture of a selfie. Only one of image or video URL will be populated per selfie.
 * @export
 * @interface SelfieCapture
 */
export interface SelfieCapture {
    /**
     * Temporary URL for downloading an image selfie capture.
     * @type {string}
     * @memberof SelfieCapture
     */
    image_url: string | null;
    /**
     * Temporary URL for downloading a video selfie capture.
     * @type {string}
     * @memberof SelfieCapture
     */
    video_url: string | null;
}
/**
 * Additional information for the `selfie_check` step. This field will be `null` unless `steps.selfie_check` has reached a terminal state of either `success` or `failed`.
 * @export
 * @interface SelfieCheck
 */
export interface SelfieCheck {
    /**
     *
     * @type {SelfieCheckStatus}
     * @memberof SelfieCheck
     */
    status: SelfieCheckStatus;
    /**
     * An array of selfies submitted to the `selfie_check` step. Each entry represents one user submission.
     * @type {Array<SelfieCheckSelfie>}
     * @memberof SelfieCheck
     */
    selfies: Array<SelfieCheckSelfie>;
}
/**
 * Captures and analysis from a user\'s selfie.
 * @export
 * @interface SelfieCheckSelfie
 */
export interface SelfieCheckSelfie {
    /**
     *
     * @type {SelfieStatus}
     * @memberof SelfieCheckSelfie
     */
    status: SelfieStatus;
    /**
     * The `attempt` field begins with 1 and increments with each subsequent selfie upload.
     * @type {number}
     * @memberof SelfieCheckSelfie
     */
    attempt: number;
    /**
     *
     * @type {SelfieCapture}
     * @memberof SelfieCheckSelfie
     */
    capture: SelfieCapture;
    /**
     *
     * @type {SelfieAnalysis}
     * @memberof SelfieCheckSelfie
     */
    analysis: SelfieAnalysis;
}
/**
 * The outcome status for the associated Identity Verification attempt\'s `selfie_check` step. This field will always have the same value as `steps.selfie_check`.
 * @export
 * @enum {string}
 */
export declare enum SelfieCheckStatus {
    Success = "success",
    Failed = "failed"
}
/**
 * An outcome status for this specific selfie. Distinct from the overall `selfie_check.status` that summarizes the verification outcome from one or more selfies.
 * @export
 * @enum {string}
 */
export declare enum SelfieStatus {
    Success = "success",
    Failed = "failed"
}
/**
 * An object containing a BACS account number and sort code. If an IBAN is not provided or if this recipient needs to accept domestic GBP-denominated payments, BACS data is required.
 * @export
 * @interface SenderBACSNullable
 */
export interface SenderBACSNullable {
    /**
     * The account number of the account. Maximum of 10 characters.
     * @type {string}
     * @memberof SenderBACSNullable
     */
    account?: string;
    /**
     * The 6-character sort code of the account.
     * @type {string}
     * @memberof SenderBACSNullable
     */
    sort_code?: string;
}
/**
 * A collection of details related to a fulfillment service or product in terms of request, process and result.
 * @export
 * @interface Service
 */
export interface Service {
    /**
     *
     * @type {VerificationOfAsset}
     * @memberof Service
     */
    VERIFICATION_OF_ASSET: VerificationOfAsset;
    /**
     *
     * @type {Statuses}
     * @memberof Service
     */
    STATUSES: Statuses;
}
/**
 * A collection of details related to a fulfillment service or product in terms of request, process and result.
 * @export
 * @interface ServiceProductFulfillment
 */
export interface ServiceProductFulfillment {
    /**
     *
     * @type {ServiceProductFulfillmentDetail}
     * @memberof ServiceProductFulfillment
     */
    SERVICE_PRODUCT_FULFILLMENT_DETAIL: ServiceProductFulfillmentDetail;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface ServiceProductFulfillmentDetail
 */
export interface ServiceProductFulfillmentDetail {
    /**
     * A string that uniquely identifies a type of order Verification of Asset.
     * @type {string}
     * @memberof ServiceProductFulfillmentDetail
     */
    VendorOrderIdentifier: string | null;
    /**
     *
     * @type {ServiceProductFulfillmentIdentifier}
     * @memberof ServiceProductFulfillmentDetail
     */
    ServiceProductFulfillmentIdentifier: ServiceProductFulfillmentIdentifier;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @enum {string}
 */
export declare enum ServiceProductFulfillmentIdentifier {
    Voa = "VOA",
    Voe = "VOE"
}
/**
 * The address of the student loan servicer. This is generally the remittance address to which payments should be sent.
 * @export
 * @interface ServicerAddressData
 */
export interface ServicerAddressData {
    /**
     * The full city name
     * @type {string}
     * @memberof ServicerAddressData
     */
    city: string | null;
    /**
     * The region or state Example: `\"NC\"`
     * @type {string}
     * @memberof ServicerAddressData
     */
    region: string | null;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof ServicerAddressData
     */
    street: string | null;
    /**
     * The postal code
     * @type {string}
     * @memberof ServicerAddressData
     */
    postal_code: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code
     * @type {string}
     * @memberof ServicerAddressData
     */
    country: string | null;
}
/**
 * A collection of objects that describe requests and responses for services.
 * @export
 * @interface Services
 */
export interface Services {
    /**
     *
     * @type {Service}
     * @memberof Services
     */
    SERVICE: Service;
}
/**
 * Data about the components comprising an address.
 * @export
 * @interface SignalAddressData
 */
export interface SignalAddressData {
    /**
     * The full city name
     * @type {string}
     * @memberof SignalAddressData
     */
    city?: string;
    /**
     * The region or state Example: `\"NC\"`
     * @type {string}
     * @memberof SignalAddressData
     */
    region?: string | null;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof SignalAddressData
     */
    street?: string;
    /**
     * The postal code
     * @type {string}
     * @memberof SignalAddressData
     */
    postal_code?: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code
     * @type {string}
     * @memberof SignalAddressData
     */
    country?: string | null;
}
/**
 * The payment decision from the risk assessment.  `APPROVE`: approve the transaction without requiring further actions from your customers. For example, use this field if you are placing a standard hold for all the approved transactions before making funds available to your customers. You should also use this field if you decide to accelerate the fund availability for your customers.  `REVIEW`: the transaction requires manual review  `REJECT`: reject the transaction  `TAKE_OTHER_RISK_MEASURES`: for example, placing a longer hold on funds than those approved transactions or introducing customer frictions such as step-up verification/authentication  `NOT_EVALUATED`: if only logging the Signal results without using them  Possible values:  `APPROVE`, `REVIEW`, `REJECT`, `TAKE_OTHER_RISK_MEASURES`, `NOT_EVALUATED`
 * @export
 * @enum {string}
 */
export declare enum SignalDecisionOutcome {
    Approve = "APPROVE",
    Review = "REVIEW",
    Reject = "REJECT",
    TakeOtherRiskMeasures = "TAKE_OTHER_RISK_MEASURES",
    NotEvaluated = "NOT_EVALUATED"
}
/**
 * SignalDecisionReportRequest defines the request schema for `/signal/decision/report`
 * @export
 * @interface SignalDecisionReportRequest
 */
export interface SignalDecisionReportRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SignalDecisionReportRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SignalDecisionReportRequest
     */
    secret?: string;
    /**
     * Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate`
     * @type {string}
     * @memberof SignalDecisionReportRequest
     */
    client_transaction_id: string;
    /**
     * `true` if the ACH transaction was initiated, `false` otherwise.  This field must be returned as a boolean. If formatted incorrectly, this will result in an [`INVALID_FIELD`](/docs/errors/invalid-request/#invalid_field) error.
     * @type {boolean}
     * @memberof SignalDecisionReportRequest
     */
    initiated: boolean;
    /**
     * The actual number of days (hold time) since the ACH debit transaction that you wait before making funds available to your customers. The holding time could affect the ACH return rate.  For example, use 0 if you make funds available to your customers instantly or the same day following the debit transaction, or 1 if you make funds available the next day following the debit initialization.
     * @type {number}
     * @memberof SignalDecisionReportRequest
     */
    days_funds_on_hold?: number | null;
    /**
     *
     * @type {SignalDecisionOutcome}
     * @memberof SignalDecisionReportRequest
     */
    decision_outcome?: SignalDecisionOutcome | null;
    /**
     *
     * @type {SignalPaymentMethod}
     * @memberof SignalDecisionReportRequest
     */
    payment_method?: SignalPaymentMethod | null;
    /**
     * The amount (in USD) made available to your customers instantly following the debit transaction. It could be a partial amount of the requested transaction (example: 102.05).
     * @type {number}
     * @memberof SignalDecisionReportRequest
     */
    amount_instantly_available?: number | null;
}
/**
 * SignalDecisionReportResponse defines the response schema for `/signal/decision/report`
 * @export
 * @interface SignalDecisionReportResponse
 */
export interface SignalDecisionReportResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SignalDecisionReportResponse
     */
    request_id: string;
}
/**
 * Details about the end user\'s device. When calling `/signal/evaluate` or `/signal/processor/evaluate`, this field is optional, but strongly recommended to increase the accuracy of Signal results.
 * @export
 * @interface SignalDevice
 */
export interface SignalDevice {
    /**
     * The IP address of the device that initiated the transaction
     * @type {string}
     * @memberof SignalDevice
     */
    ip_address?: string | null;
    /**
     * The user agent of the device that initiated the transaction (e.g. \"Mozilla/5.0\")
     * @type {string}
     * @memberof SignalDevice
     */
    user_agent?: string | null;
}
/**
 * The core attributes object contains additional data that can be used to assess the ACH return risk. Examples of data include:  `days_since_first_plaid_connection`: The number of days since the first time the Item was connected to an application via Plaid `plaid_connections_count_7d`: The number of times the Item has been connected to applications via Plaid over the past 7 days `plaid_connections_count_30d`: The number of times the Item has been connected to applications via Plaid over the past 30 days `total_plaid_connections_count`: The number of times the Item has been connected to applications via Plaid `is_savings_or_money_market_account`: Indicates whether the ACH transaction funding account is a savings/money market account  For the full list and detailed documentation of core attributes available, or to request that core attributes not be returned, contact Sales or your Plaid account manager
 * @export
 * @interface SignalEvaluateCoreAttributes
 */
export interface SignalEvaluateCoreAttributes {
    /**
     * We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 7 days from the account that will be debited.
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    unauthorized_transactions_count_7d?: number | null;
    /**
     * We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 30 days from the account that will be debited.
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    unauthorized_transactions_count_30d?: number | null;
    /**
     * We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 60 days from the account that will be debited.
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    unauthorized_transactions_count_60d?: number | null;
    /**
     * We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 90 days from the account that will be debited.
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    unauthorized_transactions_count_90d?: number | null;
    /**
     * We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 7 days from the account that will be debited.
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    nsf_overdraft_transactions_count_7d?: number | null;
    /**
     * We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 30 days from the account that will be debited.
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    nsf_overdraft_transactions_count_30d?: number | null;
    /**
     * We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 60 days from the account that will be debited.
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    nsf_overdraft_transactions_count_60d?: number | null;
    /**
     * We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 90 days from the account that will be debited.
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    nsf_overdraft_transactions_count_90d?: number | null;
    /**
     * The number of days since the first time the Item was connected to an application via Plaid
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    days_since_first_plaid_connection?: number | null;
    /**
     * The number of times the Item has been connected to applications via Plaid over the past 7 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    plaid_connections_count_7d?: number | null;
    /**
     * The number of times the Item has been connected to applications via Plaid over the past 30 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    plaid_connections_count_30d?: number | null;
    /**
     * The total number of times the Item has been connected to applications via Plaid
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    total_plaid_connections_count?: number | null;
    /**
     * Indicates if the ACH transaction funding account is a savings/money market account
     * @type {boolean}
     * @memberof SignalEvaluateCoreAttributes
     */
    is_savings_or_money_market_account?: boolean | null;
    /**
     * The total credit (inflow) transaction amount over the past 10 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    total_credit_transactions_amount_10d?: number | null;
    /**
     * The total debit (outflow) transaction amount over the past 10 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    total_debit_transactions_amount_10d?: number | null;
    /**
     * The 50th percentile of all credit (inflow) transaction amounts over the past 28 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p50_credit_transactions_amount_28d?: number | null;
    /**
     * The 50th percentile of all debit (outflow) transaction amounts over the past 28 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p50_debit_transactions_amount_28d?: number | null;
    /**
     * The 95th percentile of all credit (inflow) transaction amounts over the past 28 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p95_credit_transactions_amount_28d?: number | null;
    /**
     * The 95th percentile of all debit (outflow) transaction amounts over the past 28 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p95_debit_transactions_amount_28d?: number | null;
    /**
     * The number of days within the past 90 days when the account that will be debited had a negative end-of-day available balance
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    days_with_negative_balance_count_90d?: number | null;
    /**
     * The 90th percentile of the end-of-day available balance over the past 30 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p90_eod_balance_30d?: number | null;
    /**
     * The 90th percentile of the end-of-day available balance over the past 60 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p90_eod_balance_60d?: number | null;
    /**
     * The 90th percentile of the end-of-day available balance over the past 90 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p90_eod_balance_90d?: number | null;
    /**
     * The 10th percentile of the end-of-day available balance over the past 30 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p10_eod_balance_30d?: number | null;
    /**
     * The 10th percentile of the end-of-day available balance over the past 60 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p10_eod_balance_60d?: number | null;
    /**
     * The 10th percentile of the end-of-day available balance over the past 90 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p10_eod_balance_90d?: number | null;
    /**
     * Available balance, as of the `balance_last_updated` time. The available balance is the current balance less any outstanding holds or debits that have not yet posted to the account.
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    available_balance?: number | null;
    /**
     * Current balance, as of the `balance_last_updated` time. The current balance is the total amount of funds in the account.
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    current_balance?: number | null;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDTHH:mm:ssZ) indicating the last time that the balance for the given account has been updated.
     * @type {string}
     * @memberof SignalEvaluateCoreAttributes
     */
    balance_last_updated?: string | null;
    /**
     * The number of times the account\'s phone numbers on file have changed over the past 28 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    phone_change_count_28d?: number | null;
    /**
     * The number of times the account\'s phone numbers on file have changed over the past 90 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    phone_change_count_90d?: number | null;
    /**
     * The number of times the account\'s email addresses on file have changed over the past 28 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    email_change_count_28d?: number | null;
    /**
     * The number of times the account\'s email addresses on file have changed over the past 90 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    email_change_count_90d?: number | null;
    /**
     * The number of times the account\'s addresses on file have changed over the past 28 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    address_change_count_28d?: number | null;
    /**
     * The number of times the account\'s addresses on file have changed over the past 90 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    address_change_count_90d?: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    plaid_non_oauth_authentication_attempts_count_3d?: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    plaid_non_oauth_authentication_attempts_count_7d?: number | null;
    /**
     * The number of non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    plaid_non_oauth_authentication_attempts_count_30d?: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_3d?: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_7d?: number | null;
    /**
     * The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    failed_plaid_non_oauth_authentication_attempts_count_30d?: number | null;
    /**
     * The total number of debit (outflow) transactions over the past 10 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    debit_transactions_count_10d?: number | null;
    /**
     * The total number of credit (inflow) transactions over the past 10 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    credit_transactions_count_10d?: number | null;
    /**
     * The total number of debit (outflow) transactions over the past 30 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    debit_transactions_count_30d?: number | null;
    /**
     * The total number of credit (inflow) transactions over the past 30 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    credit_transactions_count_30d?: number | null;
    /**
     * The total number of debit (outflow) transactions over the past 60 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    debit_transactions_count_60d?: number | null;
    /**
     * The total number of credit (inflow) transactions over the past 60 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    credit_transactions_count_60d?: number | null;
    /**
     * The total number of debit (outflow) transactions over the past 90 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    debit_transactions_count_90d?: number | null;
    /**
     * The total number of credit (inflow) transactions over the past 90 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    credit_transactions_count_90d?: number | null;
    /**
     * The total debit (outflow) transaction amount over the past 30 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    total_debit_transactions_amount_30d?: number | null;
    /**
     * The total credit (inflow) transaction amount over the past 30 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    total_credit_transactions_amount_30d?: number | null;
    /**
     * The total debit (outflow) transaction amount over the past 60 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    total_debit_transactions_amount_60d?: number | null;
    /**
     * The total credit (inflow) transaction amount over the past 60 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    total_credit_transactions_amount_60d?: number | null;
    /**
     * The total debit (outflow) transaction amount over the past 90 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    total_debit_transactions_amount_90d?: number | null;
    /**
     * The total credit (inflow) transaction amount over the past 90 days from the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    total_credit_transactions_amount_90d?: number | null;
    /**
     * The 50th percentile of the end-of-day available balance over the past 30 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p50_eod_balance_30d?: number | null;
    /**
     * The 50th percentile of the end-of-day available balance over the past 60 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p50_eod_balance_60d?: number | null;
    /**
     * The 50th percentile of the end-of-day available balance over the past 90 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p50_eod_balance_90d?: number | null;
    /**
     * The 50th percentile of the end-of-day available balance between day 31 and day 60 over the past 60 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p50_eod_balance_31d_to_60d?: number | null;
    /**
     * The 50th percentile of the end-of-day available balance between day 61 and day 90 over the past 60 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p50_eod_balance_61d_to_90d?: number | null;
    /**
     * The 90th percentile of the end-of-day available balance between day 31 and day 60 over the past 60 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p90_eod_balance_31d_to_60d?: number | null;
    /**
     * The 90th percentile of the end-of-day available balance between day 61 and day 90 over the past 60 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p90_eod_balance_61d_to_90d?: number | null;
    /**
     * The 10th percentile of the end-of-day available balance between day 31 and day 60 over the past 60 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p10_eod_balance_31d_to_60d?: number | null;
    /**
     * The 10th percentile of the end-of-day available balance between day 61 and day 90 over the past 60 days of the account that will be debited
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    p10_eod_balance_61d_to_90d?: number | null;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDTHH:mm:ssZ) indicating the last time that the transactions for the given account have been updated.
     * @type {string}
     * @memberof SignalEvaluateCoreAttributes
     */
    transactions_last_updated?: string | null;
    /**
     * Indicates if the receiver bank account is closed
     * @type {boolean}
     * @memberof SignalEvaluateCoreAttributes
     */
    is_account_closed?: boolean | null;
    /**
     * Indicates if the receiver bank account is either frozen or restricted
     * @type {boolean}
     * @memberof SignalEvaluateCoreAttributes
     */
    is_account_frozen_or_restricted?: boolean | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 3 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_ip_addresses_count_3d?: number | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 7 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_ip_addresses_count_7d?: number | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 30 days (max 100)
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_ip_addresses_count_30d?: number | null;
    /**
     * The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 90 days (max 100)
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_ip_addresses_count_90d?: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 3 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_user_agents_count_3d?: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 7 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_user_agents_count_7d?: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 30 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_user_agents_count_30d?: number | null;
    /**
     * The number of distinct user agents linked to the same bank account during Plaid authentication in the last 90 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_user_agents_count_90d?: number | null;
    /**
     * The number of distinct SSL/TLS connection sessions linked to the same bank account during Plaid authentication in the last 3 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_ssl_tls_connection_sessions_count_3d?: number | null;
    /**
     * The number of distinct SSL/TLS connection sessions linked to the same bank account during Plaid authentication in the last 7 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_ssl_tls_connection_sessions_count_7d?: number | null;
    /**
     * The number of distinct SSL/TLS connection sessions linked to the same bank account during Plaid authentication in the last 30 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_ssl_tls_connection_sessions_count_30d?: number | null;
    /**
     * The number of distinct SSL/TLS connection sessions linked to the same bank account during Plaid authentication in the last 90 days
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    distinct_ssl_tls_connection_sessions_count_90d?: number | null;
    /**
     * The number of days since the bank account was opened, as reported by the financial institution
     * @type {number}
     * @memberof SignalEvaluateCoreAttributes
     */
    days_since_account_opening?: number | null;
}
/**
 * SignalEvaluateRequest defines the request schema for `/signal/evaluate`
 * @export
 * @interface SignalEvaluateRequest
 */
export interface SignalEvaluateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SignalEvaluateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SignalEvaluateRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof SignalEvaluateRequest
     */
    access_token: string;
    /**
     * The Plaid `account_id` of the account that is the funding source for the proposed transaction. The `account_id` is returned in the `/accounts/get` endpoint as well as the [`onSuccess`](/docs/link/ios/#link-ios-onsuccess-linkSuccess-metadata-accounts-id) callback metadata.  This will return an [`INVALID_ACCOUNT_ID`](/docs/errors/invalid-input/#invalid_account_id) error if the account has been removed at the bank or if the `account_id` is no longer valid.
     * @type {string}
     * @memberof SignalEvaluateRequest
     */
    account_id: string;
    /**
     * The unique ID that you would like to use to refer to this transaction. For your convenience mapping your internal data, you could use your internal ID/identifier for this transaction. The max length for this field is 36 characters.
     * @type {string}
     * @memberof SignalEvaluateRequest
     */
    client_transaction_id: string;
    /**
     * The transaction amount, in USD (e.g. `102.05`)
     * @type {number}
     * @memberof SignalEvaluateRequest
     */
    amount: number;
    /**
     * `true` if the end user is present while initiating the ACH transfer and the endpoint is being called; `false` otherwise (for example, when the ACH transfer is scheduled and the end user is not present, or you call this endpoint after the ACH transfer but before submitting the Nacha file for ACH processing).
     * @type {boolean}
     * @memberof SignalEvaluateRequest
     */
    user_present?: boolean | null;
    /**
     * A unique ID that identifies the end user in your system. This ID is used to correlate requests by a user with multiple Items. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof SignalEvaluateRequest
     */
    client_user_id?: string;
    /**
     * `true` if the ACH transaction is a recurring transaction; `false` otherwise
     * @type {boolean}
     * @memberof SignalEvaluateRequest
     */
    is_recurring?: boolean | null;
    /**
     * The default ACH or non-ACH payment method to complete the transaction. `SAME_DAY_ACH`: Same Day ACH by NACHA. The debit transaction is processed and settled on the same day `NEXT_DAY_ACH`: Next Day ACH settlement for debit transactions, offered by some payment processors `STANDARD_ACH`: standard ACH by NACHA `REAL_TIME_PAYMENTS`: real-time payments such as RTP and FedNow `DEBIT_CARD`: if the default payment is over debit card networks `MULTIPLE_PAYMENT_METHODS`: if there is no default debit rail or there are multiple payment methods Possible values:  `SAME_DAY_ACH`, `NEXT_DAY_ACH`, `STANDARD_ACH`, `REAL_TIME_PAYMENTS`, `DEBIT_CARD`, `MULTIPLE_PAYMENT_METHODS`
     * @type {string}
     * @memberof SignalEvaluateRequest
     */
    default_payment_method?: string | null;
    /**
     *
     * @type {SignalUser}
     * @memberof SignalEvaluateRequest
     */
    user?: SignalUser;
    /**
     *
     * @type {SignalDevice}
     * @memberof SignalEvaluateRequest
     */
    device?: SignalDevice;
    /**
     * Specifying `risk_profile_key` is deprecated. Please provide `ruleset` instead.
     * @type {string}
     * @memberof SignalEvaluateRequest
     * @deprecated
     */
    risk_profile_key?: string | null;
    /**
     * The key of the Ruleset to use for this transaction. You can configure a Ruleset using the Signal dashboard located within the Plaid Dashboard. If not provided, no Ruleset will be used. This feature is currently in closed beta; to request access, contact your account manager.
     * @type {string}
     * @memberof SignalEvaluateRequest
     */
    ruleset_key?: string | null;
}
/**
 * SignalEvaluateResponse defines the response schema for `/signal/evaluate`
 * @export
 * @interface SignalEvaluateResponse
 */
export interface SignalEvaluateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SignalEvaluateResponse
     */
    request_id: string;
    /**
     *
     * @type {SignalScores}
     * @memberof SignalEvaluateResponse
     */
    scores: SignalScores | null;
    /**
     *
     * @type {SignalEvaluateCoreAttributes}
     * @memberof SignalEvaluateResponse
     */
    core_attributes?: SignalEvaluateCoreAttributes;
    /**
     *
     * @type {RiskProfile}
     * @memberof SignalEvaluateResponse
     * @deprecated
     */
    risk_profile?: RiskProfile | null;
    /**
     *
     * @type {Ruleset}
     * @memberof SignalEvaluateResponse
     */
    ruleset?: Ruleset | null;
    /**
     * If bank information was not available to be used in the Signal model, this array contains warnings describing why bank data is missing. If you want to receive an API error instead of Signal scores in the case of missing bank data, file a support ticket or contact your Plaid account manager.
     * @type {Array<SignalWarning>}
     * @memberof SignalEvaluateResponse
     */
    warnings: Array<SignalWarning>;
}
/**
 * The payment method to complete the transaction after the risk assessment. It may be different from the default payment method.  `SAME_DAY_ACH`: Same Day ACH by NACHA. The debit transaction is processed and settled on the same day  `NEXT_DAY_ACH`: Next Day ACH settlement for debit transactions, offered by some payment processors  `STANDARD_ACH`: standard ACH by NACHA  `REAL_TIME_PAYMENTS`: real-time payments such as RTP and FedNow  `DEBIT_CARD`: if the default payment is over debit card networks  `MULTIPLE_PAYMENT_METHODS`: if there is no default debit rail or there are multiple payment methods  Possible values: `SAME_DAY_ACH`, `NEXT_DAY_ACH`, `STANDARD_ACH`, `REAL_TIME_PAYMENTS`, `DEBIT_CARD`, `MULTIPLE_PAYMENT_METHODS`
 * @export
 * @enum {string}
 */
export declare enum SignalPaymentMethod {
    SameDayAch = "SAME_DAY_ACH",
    NextDayAch = "NEXT_DAY_ACH",
    StandardAch = "STANDARD_ACH",
    RealTimePayments = "REAL_TIME_PAYMENTS",
    DebitCard = "DEBIT_CARD",
    MultiplePaymentMethods = "MULTIPLE_PAYMENT_METHODS"
}
/**
 * The user\'s legal name
 * @export
 * @interface SignalPersonName
 */
export interface SignalPersonName {
    /**
     * The user\'s name prefix (e.g. \"Mr.\")
     * @type {string}
     * @memberof SignalPersonName
     */
    prefix?: string | null;
    /**
     * The user\'s given name. If the user has a one-word name, it should be provided in this field.
     * @type {string}
     * @memberof SignalPersonName
     */
    given_name?: string | null;
    /**
     * The user\'s middle name
     * @type {string}
     * @memberof SignalPersonName
     */
    middle_name?: string | null;
    /**
     * The user\'s family name / surname
     * @type {string}
     * @memberof SignalPersonName
     */
    family_name?: string | null;
    /**
     * The user\'s name suffix (e.g. \"II\")
     * @type {string}
     * @memberof SignalPersonName
     */
    suffix?: string | null;
}
/**
 * SignalPrepareRequest defines the request schema for `/signal/prepare`
 * @export
 * @interface SignalPrepareRequest
 */
export interface SignalPrepareRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SignalPrepareRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SignalPrepareRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof SignalPrepareRequest
     */
    access_token: string;
}
/**
 * SignalPrepareResponse defines the response schema for `/signal/prepare`
 * @export
 * @interface SignalPrepareResponse
 */
export interface SignalPrepareResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SignalPrepareResponse
     */
    request_id: string;
}
/**
 * SignalReturnReportRequest defines the request schema for `/signal/return/report`
 * @export
 * @interface SignalReturnReportRequest
 */
export interface SignalReturnReportRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SignalReturnReportRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SignalReturnReportRequest
     */
    secret?: string;
    /**
     * Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate` or `/accounts/balance/get`.
     * @type {string}
     * @memberof SignalReturnReportRequest
     */
    client_transaction_id: string;
    /**
     * Must be a valid ACH return code (e.g. \"R01\")  If formatted incorrectly, this will result in an [`INVALID_FIELD`](/docs/errors/invalid-request/#invalid_field) error.
     * @type {string}
     * @memberof SignalReturnReportRequest
     */
    return_code: string;
    /**
     * Date and time when you receive the returns from your payment processors, in ISO 8601 format (`YYYY-MM-DDTHH:mm:ssZ`).
     * @type {string}
     * @memberof SignalReturnReportRequest
     */
    returned_at?: string | null;
}
/**
 * SignalReturnReportResponse defines the response schema for `/signal/return/report`
 * @export
 * @interface SignalReturnReportResponse
 */
export interface SignalReturnReportResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SignalReturnReportResponse
     */
    request_id: string;
}
/**
 * The payment method specified in the `default_payment_method` field directly impacts the timing recommendations provided by the API for submitting the debit entry to your processor or ODFI. If unspecified, Signal defaults to `STANDARD_ACH`.  `SAME_DAY_ACH`: Same Day ACH (as defined by Nacha). The Signal API assumes the settlement will occur on the same business day if the `/signal/schedule` request is submitted by 6:00 PM UTC. Note: The actual cutoff time can vary depending on your payment processor or ODFI. NACHA has established three processing windows for Same Day ACH (UTC): 2:30 PM, 6:45 PM, and 8:45 PM.  `STANDARD_ACH`: Standard ACH (as defined by Nacha), typically settled one to three business days after submission.  `REAL_TIME_PAYMENTS`: Real-time payments via Request for Payment through networks such as RTP (The Clearing House) and FedNow, where the consumer can authorize the payment in response to a RFP, and the transaction is processed and settled immediately.  `DEBIT_CARD`: Payments processed over debit card networks, leveraging the card-based infrastructure for real-time or near-real-time settlement.  `MULTIPLE_PAYMENT_METHODS`: Indicates that there is no default debit rail or multiple payment methods are available, and the transaction could use any of them based on customer policy or availability.
 * @export
 * @enum {string}
 */
export declare enum SignalScheduleDefaultPaymentMethod {
    SameDayAch = "SAME_DAY_ACH",
    StandardAch = "STANDARD_ACH",
    RealTimePayments = "REAL_TIME_PAYMENTS",
    DebitCard = "DEBIT_CARD",
    MultiplePaymentMethods = "MULTIPLE_PAYMENT_METHODS"
}
/**
 * Conveys information on if a retry is recommended on a given date
 * @export
 * @interface SignalScheduleRecommendation
 */
export interface SignalScheduleRecommendation {
    /**
     * The specific date for submitting the debit entry, formatted in ISO 8601 (e.g., \"2025-01-17\").
     * @type {string}
     * @memberof SignalScheduleRecommendation
     */
    date?: string;
    /**
     *
     * @type {RecommendationString}
     * @memberof SignalScheduleRecommendation
     */
    recommendation?: RecommendationString;
    /**
     * The rank of the recommendation based on the likelihood of debit success, with 1 representing the most optimal date. Dates with `NOT_RECOMMENDED` or `UNKNOWN` will have rank `null`.
     * @type {number}
     * @memberof SignalScheduleRecommendation
     */
    rank?: number | null;
}
/**
 * SignalScheduleRequest defines the request schema for `/signal/schedule`
 * @export
 * @interface SignalScheduleRequest
 */
export interface SignalScheduleRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof SignalScheduleRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof SignalScheduleRequest
     */
    secret?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof SignalScheduleRequest
     */
    access_token: string;
    /**
     * The Plaid `account_id` of the account that is the funding source for the proposed transaction. The `account_id` is returned in the `/accounts/get` endpoint as well as the [`onSuccess`](/docs/link/ios/#link-ios-onsuccess-linkSuccess-metadata-accounts-id) callback metadata.  This will return an [`INVALID_ACCOUNT_ID`](/docs/errors/invalid-input/#invalid_account_id) error if the account has been removed at the bank or if the `account_id` is no longer valid.
     * @type {string}
     * @memberof SignalScheduleRequest
     */
    account_id: string;
    /**
     * The unique ID that you would like to use to refer to this transaction. For your convenience mapping your internal data, you could use your internal ID/identifier for this transaction. The max length for this field is 36 characters.
     * @type {string}
     * @memberof SignalScheduleRequest
     */
    client_transaction_id: string;
    /**
     * The transaction amount, in USD (e.g. `102.05`)
     * @type {number}
     * @memberof SignalScheduleRequest
     */
    amount: number;
    /**
     *
     * @type {SignalScheduleDefaultPaymentMethod}
     * @memberof SignalScheduleRequest
     */
    default_payment_method?: SignalScheduleDefaultPaymentMethod;
}
/**
 * SignalScheduleResponse defines the response schema for `/signal/schedule`
 * @export
 * @interface SignalScheduleResponse
 */
export interface SignalScheduleResponse {
    /**
     * The recommended optimal date to submit the debit entry, formatted in ISO 8601 \"YYYY-MM-DD\" (e.g., \"2024-03-30\"). The `optimal_date` is derived from the date with rank = 1 in the following recommendations array.  NOTE: The `default_payment_method` field specified in the request will affect the recommendation, since we\'re accounting for debit settlement time.  The debit scheduling evaluation starts from the day the /signal/schedule request is submitted (Day 0) or the next banking day if the submission day is not a banking day, and extends through the following five banking days (Day 1 to Day 5). If no date within this period is considered likely to result in a successful debit attempt, `null` will be returned for the `optimal_date`.
     * @type {string}
     * @memberof SignalScheduleResponse
     */
    optimal_date: string | null;
    /**
     * This array provides a date-by-date evaluation of debit submission recommendations within the five banking day evaluation period. Each object in the array represents a retry recommendation for a specific date.
     * @type {Array<SignalScheduleRecommendation>}
     * @memberof SignalScheduleResponse
     */
    recommendations: Array<SignalScheduleRecommendation>;
    /**
     * If bank information was not available to be used in the Signal model, this array contains warnings describing why bank data is missing. If you want to receive an API error instead of Signal scores in the case of missing bank data, file a support ticket or contact your Plaid account manager.
     * @type {Array<SignalWarning>}
     * @memberof SignalScheduleResponse
     */
    warnings: Array<SignalWarning>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof SignalScheduleResponse
     */
    request_id: string;
}
/**
 * Risk scoring details broken down by risk category.
 * @export
 * @interface SignalScores
 */
export interface SignalScores {
    /**
     *
     * @type {CustomerInitiatedReturnRisk}
     * @memberof SignalScores
     */
    customer_initiated_return_risk?: CustomerInitiatedReturnRisk;
    /**
     *
     * @type {BankInitiatedReturnRisk}
     * @memberof SignalScores
     */
    bank_initiated_return_risk?: BankInitiatedReturnRisk;
}
/**
 * Details about the end user initiating the transaction (i.e., the account holder). When calling `/signal/evaluate` or `/signal/processor/evaluate`, this field is optional, but strongly recommended to increase the accuracy of Signal results.
 * @export
 * @interface SignalUser
 */
export interface SignalUser {
    /**
     *
     * @type {SignalPersonName}
     * @memberof SignalUser
     */
    name?: SignalPersonName | null;
    /**
     * The user\'s phone number, in E.164 format: +{countrycode}{number}. For example: \"+14151234567\"
     * @type {string}
     * @memberof SignalUser
     */
    phone_number?: string | null;
    /**
     * The user\'s email address.
     * @type {string}
     * @memberof SignalUser
     */
    email_address?: string | null;
    /**
     *
     * @type {SignalAddressData}
     * @memberof SignalUser
     */
    address?: SignalAddressData | null;
}
/**
 * Conveys information about the errors causing missing or stale bank data used to construct the /signal/evaluate scores and response
 * @export
 * @interface SignalWarning
 */
export interface SignalWarning {
    /**
     * A broad categorization of the warning. Safe for programmatic use.
     * @type {string}
     * @memberof SignalWarning
     */
    warning_type?: string;
    /**
     * The warning code identifies a specific kind of warning that pertains to the error causing bank data to be missing. Safe for programmatic use. For more details on warning codes, please refer to Plaid standard error codes documentation. If you receive the `ITEM_LOGIN_REQUIRED` warning, we recommend re-authenticating your user by implementing Link\'s update mode. This will guide your user to fix their credentials, allowing Plaid to start fetching data again for future Signal requests.
     * @type {string}
     * @memberof SignalWarning
     */
    warning_code?: string;
    /**
     * A developer-friendly representation of the warning type. This may change over time and is not safe for programmatic use.
     * @type {string}
     * @memberof SignalWarning
     */
    warning_message?: string;
}
/**
 * A sweep returned from the `/sandbox/transfer/sweep/simulate` endpoint. Can be null if there are no transfers to include in a sweep.
 * @export
 * @interface SimulatedTransferSweep
 */
export interface SimulatedTransferSweep {
    /**
     * Identifier of the sweep.
     * @type {string}
     * @memberof SimulatedTransferSweep
     */
    id: string;
    /**
     * The id of the funding account to use, available in the Plaid Dashboard. This determines which of your business checking accounts will be credited or debited.
     * @type {string}
     * @memberof SimulatedTransferSweep
     */
    funding_account_id: string;
    /**
     * Plaid’s unique identifier for a Plaid Ledger Balance.
     * @type {string}
     * @memberof SimulatedTransferSweep
     */
    ledger_id?: string | null;
    /**
     * The datetime when the sweep occurred, in RFC 3339 format.
     * @type {string}
     * @memberof SimulatedTransferSweep
     */
    created: string;
    /**
     * Signed decimal amount of the sweep as it appears on your sweep account ledger (e.g. \"-10.00\")  If amount is not present, the sweep was net-settled to zero and outstanding debits and credits between the sweep account and Plaid are balanced.
     * @type {string}
     * @memberof SimulatedTransferSweep
     */
    amount: string;
    /**
     * The currency of the sweep, e.g. \"USD\".
     * @type {string}
     * @memberof SimulatedTransferSweep
     */
    iso_currency_code: string;
    /**
     * The date when the sweep settled, in the YYYY-MM-DD format.
     * @type {string}
     * @memberof SimulatedTransferSweep
     */
    settled: string | null;
    /**
     *
     * @type {SweepStatus}
     * @memberof SimulatedTransferSweep
     */
    status?: SweepStatus | null;
    /**
     *
     * @type {SweepTrigger}
     * @memberof SimulatedTransferSweep
     */
    trigger?: SweepTrigger | null;
    /**
     * The description of the deposit that will be passed to the receiving bank (up to 10 characters). Note that banks utilize this field differently, and may or may not show it on the bank statement.
     * @type {string}
     * @memberof SimulatedTransferSweep
     */
    description?: string;
    /**
     * The trace identifier for the transfer based on its network. This will only be set after the transfer has posted.  For `ach` or `same-day-ach` transfers, this is the ACH trace number. For `rtp` transfers, this is the Transaction Identification number. For `wire` transfers, this is the IMAD (Input Message Accountability Data) number.
     * @type {string}
     * @memberof SimulatedTransferSweep
     */
    network_trace_id?: string | null;
    /**
     *
     * @type {SweepFailure}
     * @memberof SimulatedTransferSweep
     */
    failure_reason?: SweepFailure | null;
}
/**
 * Object containing all risk signals and relevant metadata for a single document
 * @export
 * @interface SingleDocumentRiskSignal
 */
export interface SingleDocumentRiskSignal {
    /**
     *
     * @type {RiskSignalDocumentReference}
     * @memberof SingleDocumentRiskSignal
     */
    document_reference: RiskSignalDocumentReference;
    /**
     * Array of attributes that indicate whether or not there is fraud risk with a document
     * @type {Array<DocumentRiskSignal>}
     * @memberof SingleDocumentRiskSignal
     */
    risk_signals: Array<DocumentRiskSignal>;
    /**
     *
     * @type {DocumentRiskSummary}
     * @memberof SingleDocumentRiskSignal
     */
    risk_summary: DocumentRiskSummary;
}
/**
 * A type indicating whether a dashboard user, an API-based user, or Plaid last touched this object.
 * @export
 * @enum {string}
 */
export declare enum Source {
    Dashboard = "dashboard",
    Link = "link",
    Api = "api",
    System = "system"
}
/**
 * The schema below describes the various `types` and corresponding `subtypes` that Plaid recognizes and reports for financial institution accounts. For a mapping of supported types and subtypes to Plaid products, see the [Account type / product support matrix](https://plaid.com/docs/api/accounts/#account-type--product-support-matrix).
 * @export
 * @interface StandaloneAccountType
 */
export interface StandaloneAccountType {
    /**
     * An account type holding cash, in which funds are deposited.
     * @type {string}
     * @memberof StandaloneAccountType
     */
    depository: string;
    /**
     * A credit card type account.
     * @type {string}
     * @memberof StandaloneAccountType
     */
    credit: string;
    /**
     * A loan type account.
     * @type {string}
     * @memberof StandaloneAccountType
     */
    loan: string;
    /**
     * An investment account. In API versions 2018-05-22 and earlier, this type is called `brokerage`.
     * @type {string}
     * @memberof StandaloneAccountType
     */
    investment: string;
    /**
     * Other or unknown account type.
     * @type {string}
     * @memberof StandaloneAccountType
     */
    other: string;
}
/**
 * The following currency codes are supported by Plaid.
 * @export
 * @interface StandaloneCurrencyCodeList
 */
export interface StandaloneCurrencyCodeList {
    /**
     * Plaid supports all ISO 4217 currency codes.
     * @type {string}
     * @memberof StandaloneCurrencyCodeList
     */
    iso_currency_code: string;
    /**
     * List of unofficial currency codes
     * @type {string}
     * @memberof StandaloneCurrencyCodeList
     */
    unofficial_currency_code: string;
}
/**
 * Valid values for investment transaction types and subtypes. Note that transactions representing inflow of cash will appear as negative amounts, outflow of cash will appear as positive amounts.
 * @export
 * @interface StandaloneInvestmentTransactionType
 */
export interface StandaloneInvestmentTransactionType {
    /**
     * Buying an investment
     * @type {string}
     * @memberof StandaloneInvestmentTransactionType
     */
    buy: string;
    /**
     * Selling an investment
     * @type {string}
     * @memberof StandaloneInvestmentTransactionType
     */
    sell: string;
    /**
     * A cancellation of a pending transaction
     * @type {string}
     * @memberof StandaloneInvestmentTransactionType
     */
    cancel: string;
    /**
     * Activity that modifies a cash position
     * @type {string}
     * @memberof StandaloneInvestmentTransactionType
     */
    cash: string;
    /**
     * Fees on the account, e.g. commission, bookkeeping, options-related.
     * @type {string}
     * @memberof StandaloneInvestmentTransactionType
     */
    fee: string;
    /**
     * Activity that modifies a position, but not through buy/sell activity e.g. options exercise, portfolio transfer
     * @type {string}
     * @memberof StandaloneInvestmentTransactionType
     */
    transfer: string;
}
/**
 * Account associated with the Item.
 * @export
 * @interface StatementsAccount
 */
export interface StatementsAccount {
    /**
     * Plaid\'s unique identifier for the account.
     * @type {string}
     * @memberof StatementsAccount
     */
    account_id: string;
    /**
     * The last 2-4 alphanumeric characters of an account\'s official account number. Note that the mask may be non-unique between an Item\'s accounts, and it may also not match the mask that the bank displays to the user.
     * @type {string}
     * @memberof StatementsAccount
     */
    account_mask: string;
    /**
     * The name of the account, either assigned by the user or by the financial institution itself.
     * @type {string}
     * @memberof StatementsAccount
     */
    account_name: string;
    /**
     * The official name of the account as given by the financial institution.
     * @type {string}
     * @memberof StatementsAccount
     */
    account_official_name: string;
    /**
     * The subtype of the account. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {string}
     * @memberof StatementsAccount
     */
    account_subtype: string;
    /**
     * The type of account. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
     * @type {string}
     * @memberof StatementsAccount
     */
    account_type: string;
    /**
     * The list of statements\' metadata associated with this account.
     * @type {Array<StatementsStatement>}
     * @memberof StatementsAccount
     */
    statements: Array<StatementsStatement>;
}
/**
 * StatementsDownloadRequest defines the request schema for `/statements/download`
 * @export
 * @interface StatementsDownloadRequest
 */
export interface StatementsDownloadRequest {
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof StatementsDownloadRequest
     */
    access_token: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof StatementsDownloadRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof StatementsDownloadRequest
     */
    secret?: string;
    /**
     * Plaid\'s unique identifier for the statements.
     * @type {string}
     * @memberof StatementsDownloadRequest
     */
    statement_id: string;
}
/**
 * StatementsListRequest defines the request schema for `/statements/list`
 * @export
 * @interface StatementsListRequest
 */
export interface StatementsListRequest {
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof StatementsListRequest
     */
    access_token: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof StatementsListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof StatementsListRequest
     */
    secret?: string;
}
/**
 * StatementsListResponse defines the response schema for `/statements/list`
 * @export
 * @interface StatementsListResponse
 */
export interface StatementsListResponse {
    /**
     *
     * @type {Array<StatementsAccount>}
     * @memberof StatementsListResponse
     */
    accounts: Array<StatementsAccount>;
    /**
     * The Plaid Institution ID associated with the Item.
     * @type {string}
     * @memberof StatementsListResponse
     */
    institution_id: string;
    /**
     * The name of the institution associated with the Item.
     * @type {string}
     * @memberof StatementsListResponse
     */
    institution_name: string;
    /**
     * The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
     * @type {string}
     * @memberof StatementsListResponse
     */
    item_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof StatementsListResponse
     */
    request_id: string;
}
/**
 * The result of the statement refresh extraction  `SUCCESS`: The statements were successfully extracted and can be listed via `/statements/list/` and downloaded via `/statements/download/`.  `FAILURE`: The statements failed to be extracted.
 * @export
 * @enum {string}
 */
export declare enum StatementsRefreshCompleteResult {
    Success = "SUCCESS",
    Failure = "FAILURE"
}
/**
 * Fired when refreshed statements extraction is completed or failed to be completed. Triggered by calling `/statements/refresh`.
 * @export
 * @interface StatementsRefreshCompleteWebhook
 */
export interface StatementsRefreshCompleteWebhook {
    /**
     * `STATEMENTS`
     * @type {string}
     * @memberof StatementsRefreshCompleteWebhook
     */
    webhook_type: string;
    /**
     * `STATEMENTS_REFRESH_COMPLETE`
     * @type {string}
     * @memberof StatementsRefreshCompleteWebhook
     */
    webhook_code: string;
    /**
     * The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
     * @type {string}
     * @memberof StatementsRefreshCompleteWebhook
     */
    item_id: string;
    /**
     *
     * @type {StatementsRefreshCompleteResult}
     * @memberof StatementsRefreshCompleteWebhook
     */
    result: StatementsRefreshCompleteResult;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof StatementsRefreshCompleteWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * StatementsRefreshRequest defines the request schema for `/statements/refresh`
 * @export
 * @interface StatementsRefreshRequest
 */
export interface StatementsRefreshRequest {
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof StatementsRefreshRequest
     */
    access_token: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof StatementsRefreshRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof StatementsRefreshRequest
     */
    secret?: string;
    /**
     * The start date for statements, in \"YYYY-MM-DD\" format, e.g. \"2023-08-30\". To determine whether a statement falls within the specified date range, Plaid will use the statement posted date. The statement posted date is typically either the last day of the statement period, or the following day.
     * @type {string}
     * @memberof StatementsRefreshRequest
     */
    start_date: string;
    /**
     * The end date for statements, in \"YYYY-MM-DD\" format, e.g. \"2023-10-30\". You can request up to two years of data. To determine whether a statement falls within the specified date range, Plaid will use the statement posted date. The statement posted date is typically either the last day of the statement period, or the following day.
     * @type {string}
     * @memberof StatementsRefreshRequest
     */
    end_date: string;
}
/**
 * StatementsRefreshResponse defines the response schema for `/statements/refresh`
 * @export
 * @interface StatementsRefreshResponse
 */
export interface StatementsRefreshResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof StatementsRefreshResponse
     */
    request_id: string;
}
/**
 * A statement\'s metadata associated with an account
 * @export
 * @interface StatementsStatement
 */
export interface StatementsStatement {
    /**
     * Plaid\'s unique identifier for the statement.
     * @type {string}
     * @memberof StatementsStatement
     */
    statement_id: string;
    /**
     * Month of the year. Possible values: 1 through 12 (January through December).
     * @type {number}
     * @memberof StatementsStatement
     */
    month: number;
    /**
     * The year of statement.
     * @type {number}
     * @memberof StatementsStatement
     */
    year: number;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface Status
 */
export interface Status {
    /**
     * Satus Code.
     * @type {string}
     * @memberof Status
     */
    StatusCode: string | null;
    /**
     * Status Description.
     * @type {string}
     * @memberof Status
     */
    StatusDescription: string | null;
}
/**
 * A collection of STATUS containers.
 * @export
 * @interface Statuses
 */
export interface Statuses {
    /**
     *
     * @type {Status}
     * @memberof Statuses
     */
    STATUS: Status;
}
/**
 * An instruction specifying what steps the new Identity Verification attempt should require the user to complete:   `reset` - Restart the user at the beginning of the session, regardless of whether they successfully completed part of their previous session.  `incomplete` - Start the new session at the step that the user failed in the previous session, skipping steps that have already been successfully completed.  `infer` - If the most recent Identity Verification attempt associated with the given `client_user_id` has a status of `failed` or `expired`, retry using the `incomplete` strategy. Otherwise, use the `reset` strategy.  `custom` - Start the new session with a custom configuration, specified by the value of the `steps` field  Note:  The `incomplete` strategy cannot be applied if the session\'s failing step is `screening` or `risk_check`.  The `infer` strategy cannot be applied if the session\'s status is still `active`
 * @export
 * @enum {string}
 */
export declare enum Strategy {
    Reset = "reset",
    Incomplete = "incomplete",
    Infer = "infer",
    Custom = "custom"
}
/**
 * Contains details about a student loan account
 * @export
 * @interface StudentLoan
 */
export interface StudentLoan {
    /**
     * The ID of the account that this liability belongs to. Each account can only contain one liability.
     * @type {string}
     * @memberof StudentLoan
     */
    account_id: string | null;
    /**
     * The account number of the loan. For some institutions, this may be a masked version of the number (e.g., the last 4 digits instead of the entire number).
     * @type {string}
     * @memberof StudentLoan
     */
    account_number: string | null;
    /**
     * The dates on which loaned funds were disbursed or will be disbursed. These are often in the past. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {Array<string>}
     * @memberof StudentLoan
     */
    disbursement_dates: Array<string> | null;
    /**
     * The date when the student loan is expected to be paid off. Availability for this field is limited. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof StudentLoan
     */
    expected_payoff_date: string | null;
    /**
     * The guarantor of the student loan.
     * @type {string}
     * @memberof StudentLoan
     */
    guarantor: string | null;
    /**
     * The interest rate on the loan as a percentage.
     * @type {number}
     * @memberof StudentLoan
     */
    interest_rate_percentage: number;
    /**
     * `true` if a payment is currently overdue. Availability for this field is limited.
     * @type {boolean}
     * @memberof StudentLoan
     */
    is_overdue: boolean | null;
    /**
     * The amount of the last payment.
     * @type {number}
     * @memberof StudentLoan
     */
    last_payment_amount: number | null;
    /**
     * The date of the last payment. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof StudentLoan
     */
    last_payment_date: string | null;
    /**
     * The total amount owed as of the last statement issued
     * @type {number}
     * @memberof StudentLoan
     */
    last_statement_balance?: number | null;
    /**
     * The date of the last statement. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof StudentLoan
     */
    last_statement_issue_date: string | null;
    /**
     * The type of loan, e.g., \"Consolidation Loans\".
     * @type {string}
     * @memberof StudentLoan
     */
    loan_name: string | null;
    /**
     *
     * @type {StudentLoanStatus}
     * @memberof StudentLoan
     */
    loan_status: StudentLoanStatus;
    /**
     * The minimum payment due for the next billing cycle. There are some exceptions: Some institutions require a minimum payment across all loans associated with an account number. Our API presents that same minimum payment amount on each loan. The institutions that do this are: Great Lakes ( `ins_116861`), Firstmark (`ins_116295`), Commonbond Firstmark Services (`ins_116950`), Granite State (`ins_116308`), and Oklahoma Student Loan Authority (`ins_116945`). Firstmark (`ins_116295` ) and Navient (`ins_116248`) will display as $0 if there is an autopay program in effect.
     * @type {number}
     * @memberof StudentLoan
     */
    minimum_payment_amount: number | null;
    /**
     * The due date for the next payment. The due date is `null` if a payment is not expected. A payment is not expected if `loan_status.type` is `deferment`, `in_school`, `consolidated`, `paid in full`, or `transferred`. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof StudentLoan
     */
    next_payment_due_date: string | null;
    /**
     * The date on which the loan was initially lent. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof StudentLoan
     */
    origination_date: string | null;
    /**
     * The original principal balance of the loan.
     * @type {number}
     * @memberof StudentLoan
     */
    origination_principal_amount: number | null;
    /**
     * The total dollar amount of the accrued interest balance. For Sallie Mae ( `ins_116944`), this amount is included in the current balance of the loan, so this field will return as `null`.
     * @type {number}
     * @memberof StudentLoan
     */
    outstanding_interest_amount: number | null;
    /**
     * The relevant account number that should be used to reference this loan for payments. In the majority of cases, `payment_reference_number` will match `account_number,` but in some institutions, such as Great Lakes (`ins_116861`), it will be different.
     * @type {string}
     * @memberof StudentLoan
     */
    payment_reference_number: string | null;
    /**
     *
     * @type {PSLFStatus}
     * @memberof StudentLoan
     * @deprecated
     */
    pslf_status: PSLFStatus;
    /**
     *
     * @type {StudentRepaymentPlan}
     * @memberof StudentLoan
     */
    repayment_plan: StudentRepaymentPlan;
    /**
     * The sequence number of the student loan. Heartland ECSI (`ins_116948`) does not make this field available.
     * @type {string}
     * @memberof StudentLoan
     */
    sequence_number: string | null;
    /**
     *
     * @type {ServicerAddressData}
     * @memberof StudentLoan
     */
    servicer_address: ServicerAddressData;
    /**
     * The year to date (YTD) interest paid. Availability for this field is limited.
     * @type {number}
     * @memberof StudentLoan
     */
    ytd_interest_paid: number | null;
    /**
     * The year to date (YTD) principal paid. Availability for this field is limited.
     * @type {number}
     * @memberof StudentLoan
     */
    ytd_principal_paid: number | null;
}
/**
 * Student loan repayment information used to configure Sandbox test data for the Liabilities product
 * @export
 * @interface StudentLoanRepaymentModel
 */
export interface StudentLoanRepaymentModel {
    /**
     * The only currently supported value for this field is `standard`.
     * @type {string}
     * @memberof StudentLoanRepaymentModel
     */
    type: string;
    /**
     * Configures the number of months before repayment starts.
     * @type {number}
     * @memberof StudentLoanRepaymentModel
     */
    non_repayment_months: number;
    /**
     * Configures the number of months of repayments before the loan is paid off.
     * @type {number}
     * @memberof StudentLoanRepaymentModel
     */
    repayment_months: number;
}
/**
 * An object representing the status of the student loan
 * @export
 * @interface StudentLoanStatus
 */
export interface StudentLoanStatus {
    /**
     * The date until which the loan will be in its current status. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
     * @type {string}
     * @memberof StudentLoanStatus
     */
    end_date: string | null;
    /**
     * The status type of the student loan
     * @type {string}
     * @memberof StudentLoanStatus
     */
    type: StudentLoanStatusTypeEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum StudentLoanStatusTypeEnum {
    Cancelled = "cancelled",
    ChargedOff = "charged off",
    Claim = "claim",
    Consolidated = "consolidated",
    Deferment = "deferment",
    Delinquent = "delinquent",
    Discharged = "discharged",
    Extension = "extension",
    Forbearance = "forbearance",
    InGrace = "in grace",
    InMilitary = "in military",
    InSchool = "in school",
    NotFullyDisbursed = "not fully disbursed",
    Other = "other",
    PaidInFull = "paid in full",
    Refunded = "refunded",
    Repayment = "repayment",
    Transferred = "transferred",
    PendingIdr = "pending idr"
}
/**
 * An object representing the repayment plan for the student loan
 * @export
 * @interface StudentRepaymentPlan
 */
export interface StudentRepaymentPlan {
    /**
     * The description of the repayment plan as provided by the servicer.
     * @type {string}
     * @memberof StudentRepaymentPlan
     */
    description: string | null;
    /**
     * The type of the repayment plan.
     * @type {string}
     * @memberof StudentRepaymentPlan
     */
    type: StudentRepaymentPlanTypeEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum StudentRepaymentPlanTypeEnum {
    ExtendedGraduated = "extended graduated",
    ExtendedStandard = "extended standard",
    Graduated = "graduated",
    IncomeContingentRepayment = "income-contingent repayment",
    IncomeBasedRepayment = "income-based repayment",
    IncomeSensitiveRepayment = "income-sensitive repayment",
    InterestOnly = "interest-only",
    Other = "other",
    PayAsYouEarn = "pay as you earn",
    RevisedPayAsYouEarn = "revised pay as you earn",
    Standard = "standard",
    SavingOnAValuableEducation = "saving on a valuable education",
    Null = "null"
}
/**
 * The failure reason if the status for a sweep is `\"failed\"` or `\"returned\"`. Null value otherwise.
 * @export
 * @interface SweepFailure
 */
export interface SweepFailure {
    /**
     * The failure code, e.g. `R01`.  A failure code will be provided if and only if the sweep status is `returned`. See [ACH return codes](https://plaid.com/docs/errors/transfer/#ach-return-codes) for a full listing of ACH return codes and [RTP error codes](https://plaid.com/docs/errors/transfer/#rtp-error-codes) for RTP error codes.
     * @type {string}
     * @memberof SweepFailure
     */
    failure_code?: string | null;
    /**
     * A human-readable description of the reason for the failure or reversal.
     * @type {string}
     * @memberof SweepFailure
     */
    description?: string | null;
}
/**
 * The status of a sweep transfer  `\"pending\"` - The sweep is currently pending `\"posted\"` - The sweep has been posted `\"settled\"` - The sweep has settled `\"returned\"` - The sweep has been returned `\"failed\"` - The sweep has failed
 * @export
 * @enum {string}
 */
export declare enum SweepStatus {
    Pending = "pending",
    Posted = "posted",
    Settled = "settled",
    Returned = "returned",
    Failed = "failed",
    Null = "null"
}
/**
 * The trigger of the sweep  `\"manual\"` - The sweep is created manually by the customer `\"incoming\"` - The sweep is created by incoming funds flow (e.g. Incoming Wire) `\"balance_threshold\"` - The sweep is created by balance threshold setting `\"automatic_aggregate\"` - The sweep is created by the Plaid automatic aggregation process. These funds did not pass through the Plaid Ledger balance.
 * @export
 * @enum {string}
 */
export declare enum SweepTrigger {
    Manual = "manual",
    Incoming = "incoming",
    BalanceThreshold = "balance_threshold",
    AutomaticAggregate = "automatic_aggregate"
}
/**
 * Fired when an Item\'s transactions change. This can be due to any event resulting in new changes, such as an initial 30-day transactions fetch upon the initialization of an Item with transactions, the backfill of historical transactions that occurs shortly after, or when changes are populated from a regularly-scheduled transactions update job. It is recommended to listen for the `SYNC_UPDATES_AVAILABLE` webhook when using the `/transactions/sync` endpoint. Note that when using `/transactions/sync` the older webhooks `INITIAL_UPDATE`, `HISTORICAL_UPDATE`, `DEFAULT_UPDATE`, and `TRANSACTIONS_REMOVED`, which are intended for use with `/transactions/get`, will also continue to be sent in order to maintain backwards compatibility. It is not necessary to listen for and respond to those webhooks when using `/transactions/sync`.  After receipt of this webhook, the new changes can be fetched for the Item from `/transactions/sync`.  Note that to receive this webhook for an Item, `/transactions/sync` must have been called at least once on that Item. This means that, unlike the `INITIAL_UPDATE` and `HISTORICAL_UPDATE` webhooks, it will not fire immediately upon Item creation. If `/transactions/sync` is called on an Item that was *not* initialized with Transactions, the webhook will fire twice: once the first 30 days of transactions data has been fetched, and a second time when all available historical transactions data has been fetched.  This webhook will fire in the Sandbox environment as it would in Production. It can also be manually triggered in Sandbox by calling `/sandbox/item/fire_webhook`.
 * @export
 * @interface SyncUpdatesAvailableWebhook
 */
export interface SyncUpdatesAvailableWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof SyncUpdatesAvailableWebhook
     */
    webhook_type: string;
    /**
     * `SYNC_UPDATES_AVAILABLE`
     * @type {string}
     * @memberof SyncUpdatesAvailableWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof SyncUpdatesAvailableWebhook
     */
    item_id: string;
    /**
     * Indicates if initial pull information (most recent 30 days of transaction history) is available.
     * @type {boolean}
     * @memberof SyncUpdatesAvailableWebhook
     */
    initial_update_complete: boolean;
    /**
     * Indicates if historical pull information (maximum transaction history requested, up to 2 years) is available.
     * @type {boolean}
     * @memberof SyncUpdatesAvailableWebhook
     */
    historical_update_complete: boolean;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof SyncUpdatesAvailableWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Field containing the data used in determining the outcome of a synthetic fraud risk check.
 * @export
 * @interface SyntheticFraud
 */
export interface SyntheticFraud {
    /**
     *
     * @type {RiskLevel}
     * @memberof SyntheticFraud
     */
    risk_level: RiskLevel;
}
/**
 * Data about an official document used to report the user\'s income to the IRS.
 * @export
 * @interface Taxform
 */
export interface Taxform {
    /**
     * An identifier of the document referenced by the document metadata.
     * @type {string}
     * @memberof Taxform
     */
    doc_id?: string;
    /**
     * The type of tax document. Currently, the only supported value is `w2`.
     * @type {string}
     * @memberof Taxform
     */
    document_type: string;
    /**
     *
     * @type {W2}
     * @memberof Taxform
     */
    w2?: W2;
}
/**
 * Taxpayer ID of the individual receiving the paystub.
 * @export
 * @interface TaxpayerID
 */
export interface TaxpayerID {
    /**
     * Type of ID, e.g. \'SSN\'
     * @type {string}
     * @memberof TaxpayerID
     */
    id_type?: string | null;
    /**
     * ID mask; i.e. last 4 digits of the taxpayer ID
     * @type {string}
     * @memberof TaxpayerID
     */
    id_mask?: string | null;
    /**
     * Last 4 digits of unique number of ID.
     * @type {string}
     * @memberof TaxpayerID
     * @deprecated
     */
    last_4_digits?: string | null;
}
/**
 * Information about the Taxpayer identification values assigned to the individual or legal entity.Information about the Taxpayer identification values assigned to the individual or legal entity.
 * @export
 * @interface TaxpayerIdentifier
 */
export interface TaxpayerIdentifier {
    /**
     *
     * @type {TaxpayerIdentifierType}
     * @memberof TaxpayerIdentifier
     */
    TaxpayerIdentifierType: TaxpayerIdentifierType | null;
    /**
     * The value of the taxpayer identifier as assigned by the IRS to the individual or legal entity.
     * @type {string}
     * @memberof TaxpayerIdentifier
     */
    TaxpayerIdentifierValue: string | null;
}
/**
 * A value from a MISMO prescribed list that classifies identification numbers used by the Internal Revenue Service (IRS) in the administration of tax laws. A Social Security number (SSN) is issued by the SSA; all other taxpayer identification numbers are issued by the IRS.
 * @export
 * @enum {string}
 */
export declare enum TaxpayerIdentifierType {
    IndividualTaxpayerIdentificationNumber = "IndividualTaxpayerIdentificationNumber",
    SocialSecurityNumber = "SocialSecurityNumber"
}
/**
 * The collection of TAXPAYER_IDENTIFICATION elements
 * @export
 * @interface TaxpayerIdentifiers
 */
export interface TaxpayerIdentifiers {
    /**
     *
     * @type {TaxpayerIdentifier}
     * @memberof TaxpayerIdentifiers
     */
    TAXPAYER_IDENTIFIER: TaxpayerIdentifier;
}
/**
 * An object representing both the current pay period and year to date amount for a category.
 * @export
 * @interface Total
 */
export interface Total {
    /**
     *
     * @type {TotalCanonicalDescription}
     * @memberof Total
     */
    canonical_description?: TotalCanonicalDescription | null;
    /**
     * Text of the line item as printed on the paystub.
     * @type {string}
     * @memberof Total
     */
    description?: string | null;
    /**
     *
     * @type {Pay}
     * @memberof Total
     * @deprecated
     */
    current_pay?: Pay;
    /**
     *
     * @type {Pay}
     * @memberof Total
     * @deprecated
     */
    ytd_pay?: Pay;
}
/**
 * Commonly used term to describe the line item.
 * @export
 * @enum {string}
 */
export declare enum TotalCanonicalDescription {
    Bonus = "BONUS",
    Commission = "COMMISSION",
    Overtime = "OVERTIME",
    PaidTimeOff = "PAID TIME OFF",
    RegularPay = "REGULAR PAY",
    Vacation = "VACATION",
    EmployeeMedicare = "EMPLOYEE MEDICARE",
    Fica = "FICA",
    SocialSecurityEmployeeTax = "SOCIAL SECURITY EMPLOYEE TAX",
    Medical = "MEDICAL",
    Vision = "VISION",
    Dental = "DENTAL",
    NetPay = "NET PAY",
    Taxes = "TAXES",
    NotFound = "NOT_FOUND",
    Other = "OTHER",
    Null = "null"
}
/**
 * Total amount of debit transactions into the account in the time period of the report. This field will be empty for non-depository accounts. This field only takes into account USD transactions from the account.
 * @export
 * @interface TotalInflowAmount
 */
export interface TotalInflowAmount {
    /**
     * Value of amount with up to 2 decimal places.
     * @type {number}
     * @memberof TotalInflowAmount
     */
    amount: number;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof TotalInflowAmount
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof TotalInflowAmount
     */
    unofficial_currency_code: string | null;
}
/**
 * Total amount of debit transactions into the account in the last 30 days. This field will be empty for non-depository accounts. This field only takes into account USD transactions from the account.
 * @export
 * @interface TotalInflowAmount30d
 */
export interface TotalInflowAmount30d {
    /**
     * Value of amount with up to 2 decimal places.
     * @type {number}
     * @memberof TotalInflowAmount30d
     */
    amount: number;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof TotalInflowAmount30d
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof TotalInflowAmount30d
     */
    unofficial_currency_code: string | null;
}
/**
 * Total amount of debit transactions into the account in the last 60 days. This field will be empty for non-depository accounts. This field only takes into account USD transactions from the account.
 * @export
 * @interface TotalInflowAmount60d
 */
export interface TotalInflowAmount60d {
    /**
     * Value of amount with up to 2 decimal places.
     * @type {number}
     * @memberof TotalInflowAmount60d
     */
    amount: number;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof TotalInflowAmount60d
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof TotalInflowAmount60d
     */
    unofficial_currency_code: string | null;
}
/**
 * Total amount of debit transactions into the account in the last 90 days. This field will be empty for non-depository accounts. This field only takes into account USD transactions from the account.
 * @export
 * @interface TotalInflowAmount90d
 */
export interface TotalInflowAmount90d {
    /**
     * Value of amount with up to 2 decimal places.
     * @type {number}
     * @memberof TotalInflowAmount90d
     */
    amount: number;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof TotalInflowAmount90d
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof TotalInflowAmount90d
     */
    unofficial_currency_code: string | null;
}
/**
 * Details about about the total monthly income
 * @export
 * @interface TotalMonthlyIncomeInsights
 */
export interface TotalMonthlyIncomeInsights {
    /**
     * The aggregated income for the 30 days prior to subscription date
     * @type {number}
     * @memberof TotalMonthlyIncomeInsights
     */
    baseline_amount: number;
    /**
     * The aggregated income of the last 30 days
     * @type {number}
     * @memberof TotalMonthlyIncomeInsights
     */
    current_amount: number;
}
/**
 * Total amount of credit transactions into the account in the time period of the report. This field will be empty for non-depository accounts. This field only takes into account USD transactions from the account.
 * @export
 * @interface TotalOutflowAmount
 */
export interface TotalOutflowAmount {
    /**
     * Value of amount with up to 2 decimal places.
     * @type {number}
     * @memberof TotalOutflowAmount
     */
    amount: number;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof TotalOutflowAmount
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof TotalOutflowAmount
     */
    unofficial_currency_code: string | null;
}
/**
 * Total amount of credit transactions into the account in the last 30 days. This field will be empty for non-depository accounts. This field only takes into account USD transactions from the account.
 * @export
 * @interface TotalOutflowAmount30d
 */
export interface TotalOutflowAmount30d {
    /**
     * Value of amount with up to 2 decimal places.
     * @type {number}
     * @memberof TotalOutflowAmount30d
     */
    amount: number;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof TotalOutflowAmount30d
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof TotalOutflowAmount30d
     */
    unofficial_currency_code: string | null;
}
/**
 * Total amount of credit transactions into the account in the last 60 days. This field will be empty for non-depository accounts. This field only takes into account USD transactions from the account.
 * @export
 * @interface TotalOutflowAmount60d
 */
export interface TotalOutflowAmount60d {
    /**
     * Value of amount with up to 2 decimal places.
     * @type {number}
     * @memberof TotalOutflowAmount60d
     */
    amount: number;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof TotalOutflowAmount60d
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof TotalOutflowAmount60d
     */
    unofficial_currency_code: string | null;
}
/**
 * Total amount of credit transactions into the account in the last 90 days. This field will be empty for non-depository accounts. This field only takes into account USD transactions from the account.
 * @export
 * @interface TotalOutflowAmount90d
 */
export interface TotalOutflowAmount90d {
    /**
     * Value of amount with up to 2 decimal places.
     * @type {number}
     * @memberof TotalOutflowAmount90d
     */
    amount: number;
    /**
     * The ISO 4217 currency code of the amount or balance.
     * @type {string}
     * @memberof TotalOutflowAmount90d
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof TotalOutflowAmount90d
     */
    unofficial_currency_code: string | null;
}
/**
 * A representation of a transaction
 * @export
 * @interface Transaction
 */
export interface Transaction {
    /**
     * The ID of the account in which this transaction occurred.
     * @type {string}
     * @memberof Transaction
     */
    account_id: string;
    /**
     * The settled value of the transaction, denominated in the transactions\'s currency, as stated in `iso_currency_code` or `unofficial_currency_code`. For all products except Income: Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative. For Income endpoints, values are positive when representing income.
     * @type {number}
     * @memberof Transaction
     */
    amount: number;
    /**
     * The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof Transaction
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the transaction. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof Transaction
     */
    unofficial_currency_code: string | null;
    /**
     * A hierarchical array of the categories to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).  All Transactions implementations are recommended to use the new `personal_finance_category` instead of `category`, as it provides greater accuracy and more meaningful categorization.  If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
     * @type {Array<string>}
     * @memberof Transaction
     * @deprecated
     */
    category: Array<string> | null;
    /**
     * The ID of the category to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).  All Transactions implementations are recommended to use the new `personal_finance_category` instead of `category`, as it provides greater accuracy and more meaningful categorization.  If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
     * @type {string}
     * @memberof Transaction
     * @deprecated
     */
    category_id: string | null;
    /**
     * The check number of the transaction. This field is only populated for check transactions.
     * @type {string}
     * @memberof Transaction
     */
    check_number?: string | null;
    /**
     * For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` ). To receive information about the date that a posted transaction was initiated, see the `authorized_date` field.
     * @type {string}
     * @memberof Transaction
     */
    date: string;
    /**
     *
     * @type {Location}
     * @memberof Transaction
     */
    location: Location;
    /**
     * The merchant name or transaction description.   Note: This is a legacy field that is not actively maintained. Use `merchant_name` instead for the merchant name.  If the `transactions` object was returned by a Transactions endpoint such as `/transactions/sync` or `/transactions/get`, this field will always appear. If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
     * @type {string}
     * @memberof Transaction
     */
    name: string;
    /**
     * The merchant name, as enriched by Plaid from the `name` field. This is typically a more human-readable version of the merchant counterparty in the transaction. For some bank transactions (such as checks or account transfers) where there is no meaningful merchant name, this value will be `null`.
     * @type {string}
     * @memberof Transaction
     */
    merchant_name?: string | null;
    /**
     * The string returned by the financial institution to describe the transaction. For transactions returned by `/transactions/sync` or `/transactions/get`, this field will only be included if the client has set `options.include_original_description` to `true`.
     * @type {string}
     * @memberof Transaction
     */
    original_description?: string | null;
    /**
     *
     * @type {PaymentMeta}
     * @memberof Transaction
     */
    payment_meta: PaymentMeta;
    /**
     * When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled. Not all institutions provide pending transactions.
     * @type {boolean}
     * @memberof Transaction
     */
    pending: boolean;
    /**
     * The ID of a posted transaction\'s associated pending transaction, where applicable. Not all institutions provide pending transactions.
     * @type {string}
     * @memberof Transaction
     */
    pending_transaction_id: string | null;
    /**
     * This field is not typically populated and only relevant when dealing with sub-accounts. A sub-account most commonly exists in cases where a single account is linked to multiple cards, each with its own card number and card holder name; each card will be considered a sub-account. If the account does have sub-accounts, this field will typically be some combination of the sub-account owner\'s name and/or the sub-account mask. The format of this field is not standardized and will vary based on institution.
     * @type {string}
     * @memberof Transaction
     */
    account_owner: string | null;
    /**
     * The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
     * @type {string}
     * @memberof Transaction
     */
    transaction_id: string;
    /**
     * Please use the `payment_channel` field, `transaction_type` will be deprecated in the future.  `digital:` transactions that took place online.  `place:` transactions that were made at a physical location.  `special:` transactions that relate to banks, e.g. fees or deposits.  `unresolved:` transactions that do not fit into the other three types.
     * @type {string}
     * @memberof Transaction
     * @deprecated
     */
    transaction_type?: TransactionTransactionTypeEnum;
    /**
     * The URL of a logo associated with this transaction, if available. The logo will always be 100×100 pixel PNG file.
     * @type {string}
     * @memberof Transaction
     */
    logo_url?: string | null;
    /**
     * The website associated with this transaction, if available.
     * @type {string}
     * @memberof Transaction
     */
    website?: string | null;
    /**
     * The date that the transaction was authorized. For posted transactions, the `date` field will indicate the posted date, but `authorized_date` will indicate the day the transaction was authorized by the financial institution. If presenting transactions to the user in a UI, the `authorized_date`, when available, is generally preferable to use over the `date` field for posted transactions, as it will generally represent the date the user actually made the transaction. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` ).
     * @type {string}
     * @memberof Transaction
     */
    authorized_date: string | null;
    /**
     * Date and time when a transaction was authorized in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ). For posted transactions, the `datetime` field will indicate the posted date, but `authorized_datetime` will indicate the day the transaction was authorized by the financial institution. If presenting transactions to the user in a UI, the `authorized_datetime`, when available, is generally preferable to use over the `datetime` field for posted transactions, as it will generally represent the date the user actually made the transaction.  This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00). This field is only populated in API version 2019-05-29 and later.
     * @type {string}
     * @memberof Transaction
     */
    authorized_datetime: string | null;
    /**
     * Date and time when a transaction was posted in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ). For the date that the transaction was initiated, rather than posted, see the `authorized_datetime` field.  This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00). This field is only populated in API version 2019-05-29 and later.
     * @type {string}
     * @memberof Transaction
     */
    datetime: string | null;
    /**
     * The channel used to make a payment. `online:` transactions that took place online.  `in store:` transactions that were made at a physical location.  `other:` transactions that relate to banks, e.g. fees or deposits.  This field replaces the `transaction_type` field.
     * @type {string}
     * @memberof Transaction
     */
    payment_channel: TransactionPaymentChannelEnum;
    /**
     *
     * @type {PersonalFinanceCategory}
     * @memberof Transaction
     */
    personal_finance_category?: PersonalFinanceCategory | null;
    /**
     *
     * @type {TransactionCode}
     * @memberof Transaction
     */
    transaction_code: TransactionCode | null;
    /**
     * The URL of an icon associated with the primary personal finance category. The icon will always be 100×100 pixel PNG file.
     * @type {string}
     * @memberof Transaction
     */
    personal_finance_category_icon_url?: string;
    /**
     * The counterparties present in the transaction. Counterparties, such as the merchant or the financial institution, are extracted by Plaid from the raw description.
     * @type {Array<TransactionCounterparty>}
     * @memberof Transaction
     */
    counterparties?: Array<TransactionCounterparty>;
    /**
     * A unique, stable, Plaid-generated ID that maps to the merchant. In the case of a merchant with multiple retail locations, this field will map to the broader merchant, not a specific location or store.
     * @type {string}
     * @memberof Transaction
     */
    merchant_entity_id?: string | null;
}
/**
    * @export
    * @enum {string}
    */
export declare enum TransactionTransactionTypeEnum {
    Digital = "digital",
    Place = "place",
    Special = "special",
    Unresolved = "unresolved"
}
/**
    * @export
    * @enum {string}
    */
export declare enum TransactionPaymentChannelEnum {
    Online = "online",
    InStore = "in store",
    Other = "other"
}
/**
 *
 * @export
 * @interface TransactionAllOf
 */
export interface TransactionAllOf {
    /**
     * The date that the transaction was authorized. For posted transactions, the `date` field will indicate the posted date, but `authorized_date` will indicate the day the transaction was authorized by the financial institution. If presenting transactions to the user in a UI, the `authorized_date`, when available, is generally preferable to use over the `date` field for posted transactions, as it will generally represent the date the user actually made the transaction. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` ).
     * @type {string}
     * @memberof TransactionAllOf
     */
    authorized_date: string | null;
    /**
     * Date and time when a transaction was authorized in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ). For posted transactions, the `datetime` field will indicate the posted date, but `authorized_datetime` will indicate the day the transaction was authorized by the financial institution. If presenting transactions to the user in a UI, the `authorized_datetime`, when available, is generally preferable to use over the `datetime` field for posted transactions, as it will generally represent the date the user actually made the transaction.  This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00). This field is only populated in API version 2019-05-29 and later.
     * @type {string}
     * @memberof TransactionAllOf
     */
    authorized_datetime: string | null;
    /**
     * Date and time when a transaction was posted in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ). For the date that the transaction was initiated, rather than posted, see the `authorized_datetime` field.  This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00). This field is only populated in API version 2019-05-29 and later.
     * @type {string}
     * @memberof TransactionAllOf
     */
    datetime: string | null;
    /**
     * The channel used to make a payment. `online:` transactions that took place online.  `in store:` transactions that were made at a physical location.  `other:` transactions that relate to banks, e.g. fees or deposits.  This field replaces the `transaction_type` field.
     * @type {string}
     * @memberof TransactionAllOf
     */
    payment_channel: TransactionAllOfPaymentChannelEnum;
    /**
     *
     * @type {PersonalFinanceCategory}
     * @memberof TransactionAllOf
     */
    personal_finance_category?: PersonalFinanceCategory | null;
    /**
     *
     * @type {TransactionCode}
     * @memberof TransactionAllOf
     */
    transaction_code: TransactionCode | null;
    /**
     * The URL of an icon associated with the primary personal finance category. The icon will always be 100×100 pixel PNG file.
     * @type {string}
     * @memberof TransactionAllOf
     */
    personal_finance_category_icon_url?: string;
    /**
     * The counterparties present in the transaction. Counterparties, such as the merchant or the financial institution, are extracted by Plaid from the raw description.
     * @type {Array<TransactionCounterparty>}
     * @memberof TransactionAllOf
     */
    counterparties?: Array<TransactionCounterparty>;
    /**
     * A unique, stable, Plaid-generated ID that maps to the merchant. In the case of a merchant with multiple retail locations, this field will map to the broader merchant, not a specific location or store.
     * @type {string}
     * @memberof TransactionAllOf
     */
    merchant_entity_id?: string | null;
}
/**
    * @export
    * @enum {string}
    */
export declare enum TransactionAllOfPaymentChannelEnum {
    Online = "online",
    InStore = "in store",
    Other = "other"
}
/**
 * A representation of a transaction
 * @export
 * @interface TransactionBase
 */
export interface TransactionBase {
    /**
     * The ID of the account in which this transaction occurred.
     * @type {string}
     * @memberof TransactionBase
     */
    account_id: string;
    /**
     * The settled value of the transaction, denominated in the transactions\'s currency, as stated in `iso_currency_code` or `unofficial_currency_code`. For all products except Income: Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative. For Income endpoints, values are positive when representing income.
     * @type {number}
     * @memberof TransactionBase
     */
    amount: number;
    /**
     * The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
     * @type {string}
     * @memberof TransactionBase
     */
    iso_currency_code: string | null;
    /**
     * The unofficial currency code associated with the transaction. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof TransactionBase
     */
    unofficial_currency_code: string | null;
    /**
     * A hierarchical array of the categories to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).  All Transactions implementations are recommended to use the new `personal_finance_category` instead of `category`, as it provides greater accuracy and more meaningful categorization.  If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
     * @type {Array<string>}
     * @memberof TransactionBase
     * @deprecated
     */
    category?: Array<string> | null;
    /**
     * The ID of the category to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).  All Transactions implementations are recommended to use the new `personal_finance_category` instead of `category`, as it provides greater accuracy and more meaningful categorization.  If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
     * @type {string}
     * @memberof TransactionBase
     * @deprecated
     */
    category_id?: string | null;
    /**
     * The check number of the transaction. This field is only populated for check transactions.
     * @type {string}
     * @memberof TransactionBase
     */
    check_number?: string | null;
    /**
     * For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` ). To receive information about the date that a posted transaction was initiated, see the `authorized_date` field.
     * @type {string}
     * @memberof TransactionBase
     */
    date: string;
    /**
     *
     * @type {Location}
     * @memberof TransactionBase
     */
    location?: Location;
    /**
     * The merchant name or transaction description.   Note: This is a legacy field that is not actively maintained. Use `merchant_name` instead for the merchant name.  If the `transactions` object was returned by a Transactions endpoint such as `/transactions/sync` or `/transactions/get`, this field will always appear. If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
     * @type {string}
     * @memberof TransactionBase
     */
    name?: string;
    /**
     * The merchant name, as enriched by Plaid from the `name` field. This is typically a more human-readable version of the merchant counterparty in the transaction. For some bank transactions (such as checks or account transfers) where there is no meaningful merchant name, this value will be `null`.
     * @type {string}
     * @memberof TransactionBase
     */
    merchant_name?: string | null;
    /**
     * The string returned by the financial institution to describe the transaction. For transactions returned by `/transactions/sync` or `/transactions/get`, this field will only be included if the client has set `options.include_original_description` to `true`.
     * @type {string}
     * @memberof TransactionBase
     */
    original_description?: string | null;
    /**
     *
     * @type {PaymentMeta}
     * @memberof TransactionBase
     */
    payment_meta?: PaymentMeta;
    /**
     * When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled. Not all institutions provide pending transactions.
     * @type {boolean}
     * @memberof TransactionBase
     */
    pending: boolean;
    /**
     * The ID of a posted transaction\'s associated pending transaction, where applicable. Not all institutions provide pending transactions.
     * @type {string}
     * @memberof TransactionBase
     */
    pending_transaction_id?: string | null;
    /**
     * This field is not typically populated and only relevant when dealing with sub-accounts. A sub-account most commonly exists in cases where a single account is linked to multiple cards, each with its own card number and card holder name; each card will be considered a sub-account. If the account does have sub-accounts, this field will typically be some combination of the sub-account owner\'s name and/or the sub-account mask. The format of this field is not standardized and will vary based on institution.
     * @type {string}
     * @memberof TransactionBase
     */
    account_owner?: string | null;
    /**
     * The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
     * @type {string}
     * @memberof TransactionBase
     */
    transaction_id: string;
    /**
     * Please use the `payment_channel` field, `transaction_type` will be deprecated in the future.  `digital:` transactions that took place online.  `place:` transactions that were made at a physical location.  `special:` transactions that relate to banks, e.g. fees or deposits.  `unresolved:` transactions that do not fit into the other three types.
     * @type {string}
     * @memberof TransactionBase
     * @deprecated
     */
    transaction_type?: TransactionBaseTransactionTypeEnum;
    /**
     * The URL of a logo associated with this transaction, if available. The logo will always be 100×100 pixel PNG file.
     * @type {string}
     * @memberof TransactionBase
     */
    logo_url?: string | null;
    /**
     * The website associated with this transaction, if available.
     * @type {string}
     * @memberof TransactionBase
     */
    website?: string | null;
}
/**
    * @export
    * @enum {string}
    */
export declare enum TransactionBaseTransactionTypeEnum {
    Digital = "digital",
    Place = "place",
    Special = "special",
    Unresolved = "unresolved"
}
/**
 * An identifier classifying the transaction type.  This field is only populated for European institutions. For institutions in the US and Canada, this field is set to `null`.  `adjustment:` Bank adjustment  `atm:` Cash deposit or withdrawal via an automated teller machine  `bank charge:` Charge or fee levied by the institution  `bill payment`: Payment of a bill  `cash:` Cash deposit or withdrawal  `cashback:` Cash withdrawal while making a debit card purchase  `cheque:` Document ordering the payment of money to another person or organization  `direct debit:` Automatic withdrawal of funds initiated by a third party at a regular interval  `interest:` Interest earned or incurred  `purchase:` Purchase made with a debit or credit card  `standing order:` Payment instructed by the account holder to a third party at a regular interval  `transfer:` Transfer of money between accounts
 * @export
 * @enum {string}
 */
export declare enum TransactionCode {
    Adjustment = "adjustment",
    Atm = "atm",
    BankCharge = "bank charge",
    BillPayment = "bill payment",
    Cash = "cash",
    Cashback = "cashback",
    Cheque = "cheque",
    DirectDebit = "direct debit",
    Interest = "interest",
    Purchase = "purchase",
    StandingOrder = "standing order",
    Transfer = "transfer",
    Null = "null"
}
/**
 * The counterparty, such as the merchant or financial institution, is extracted by Plaid from the raw description.
 * @export
 * @interface TransactionCounterparty
 */
export interface TransactionCounterparty {
    /**
     * The name of the counterparty, such as the merchant or the financial institution, as extracted by Plaid from the raw description.
     * @type {string}
     * @memberof TransactionCounterparty
     */
    name: string;
    /**
     * A unique, stable, Plaid-generated ID that maps to the counterparty.
     * @type {string}
     * @memberof TransactionCounterparty
     */
    entity_id?: string | null;
    /**
     *
     * @type {CounterpartyType}
     * @memberof TransactionCounterparty
     */
    type: CounterpartyType;
    /**
     * The website associated with the counterparty.
     * @type {string}
     * @memberof TransactionCounterparty
     */
    website: string | null;
    /**
     * The URL of a logo associated with the counterparty, if available. The logo will always be 100×100 pixel PNG file.
     * @type {string}
     * @memberof TransactionCounterparty
     */
    logo_url: string | null;
    /**
     * A description of how confident we are that the provided counterparty is involved in the transaction.  `VERY_HIGH`: We recognize this counterparty and we are more than 98% confident that it is involved in this transaction. `HIGH`: We recognize this counterparty and we are more than 90% confident that it is involved in this transaction. `MEDIUM`: We are moderately confident that this counterparty was involved in this transaction, but some details may differ from our records. `LOW`: We didn’t find a matching counterparty in our records, so we are returning a cleansed name parsed out of the request description. `UNKNOWN`: We don’t know the confidence level for this counterparty.
     * @type {string}
     * @memberof TransactionCounterparty
     */
    confidence_level?: string | null;
}
/**
 * Information about the matched direct deposit transaction used to verify a user\'s payroll information.
 * @export
 * @interface TransactionData
 */
export interface TransactionData {
    /**
     * The description of the transaction.
     * @type {string}
     * @memberof TransactionData
     */
    description: string;
    /**
     * The amount of the transaction.
     * @type {number}
     * @memberof TransactionData
     */
    amount: number;
    /**
     * The date of the transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\").
     * @type {string}
     * @memberof TransactionData
     */
    date: string;
    /**
     * A unique identifier for the end user\'s account.
     * @type {string}
     * @memberof TransactionData
     */
    account_id: string;
    /**
     * A unique identifier for the transaction.
     * @type {string}
     * @memberof TransactionData
     */
    transaction_id: string;
}
/**
 * Data to populate as test transaction data. If not specified, random transactions will be generated instead.
 * @export
 * @interface TransactionOverride
 */
export interface TransactionOverride {
    /**
     * The date of the transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Transactions in Sandbox will move from pending to posted once their transaction date has been reached. If a `date_transacted` is not provided by the institution, a transaction date may be available in the [`authorized_date`](https://plaid.com/docs/api/products/transactions/#transactions-get-response-transactions-authorized-date) field.
     * @type {string}
     * @memberof TransactionOverride
     */
    date_transacted: string;
    /**
     * The date the transaction posted, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Posted dates in the past or present will result in posted transactions; posted dates in the future will result in pending transactions.
     * @type {string}
     * @memberof TransactionOverride
     */
    date_posted: string;
    /**
     * The transaction amount. Can be negative.
     * @type {number}
     * @memberof TransactionOverride
     */
    amount: number;
    /**
     * The transaction description.
     * @type {string}
     * @memberof TransactionOverride
     */
    description: string;
    /**
     * The ISO-4217 format currency code for the transaction.
     * @type {string}
     * @memberof TransactionOverride
     */
    currency?: string;
}
/**
 * A grouping of related transactions
 * @export
 * @interface TransactionStream
 */
export interface TransactionStream {
    /**
     * The ID of the account to which the stream belongs
     * @type {string}
     * @memberof TransactionStream
     */
    account_id: string;
    /**
     * A unique id for the stream
     * @type {string}
     * @memberof TransactionStream
     */
    stream_id: string;
    /**
     * A hierarchical array of the categories to which this transaction belongs. See [Categories](https://plaid.com/docs/api/products/transactions/#categoriesget).  All implementations are encouraged to use the new `personal_finance_category` instead of `category`. `personal_finance_category` provides more meaningful categorization and greater accuracy.
     * @type {Array<string>}
     * @memberof TransactionStream
     * @deprecated
     */
    category: Array<string>;
    /**
     * The ID of the category to which this transaction belongs. See [Categories](https://plaid.com/docs/api/products/transactions/#categoriesget).  All implementations are encouraged to use the new `personal_finance_category` instead of `category`. `personal_finance_category` provides more meaningful categorization and greater accuracy.
     * @type {string}
     * @memberof TransactionStream
     * @deprecated
     */
    category_id: string;
    /**
     * A description of the transaction stream.
     * @type {string}
     * @memberof TransactionStream
     */
    description: string;
    /**
     * The merchant associated with the transaction stream.
     * @type {string}
     * @memberof TransactionStream
     */
    merchant_name: string | null;
    /**
     * The posted date of the earliest transaction in the stream.
     * @type {string}
     * @memberof TransactionStream
     */
    first_date: string;
    /**
     * The posted date of the latest transaction in the stream.
     * @type {string}
     * @memberof TransactionStream
     */
    last_date: string;
    /**
     * The predicted date of the next payment. This will only be set if the next payment date can be predicted.
     * @type {string}
     * @memberof TransactionStream
     */
    predicted_next_date?: string | null;
    /**
     *
     * @type {RecurringTransactionFrequency}
     * @memberof TransactionStream
     */
    frequency: RecurringTransactionFrequency;
    /**
     * An array of Plaid transaction IDs belonging to the stream, sorted by posted date.
     * @type {Array<string>}
     * @memberof TransactionStream
     */
    transaction_ids: Array<string>;
    /**
     *
     * @type {TransactionStreamAmount}
     * @memberof TransactionStream
     */
    average_amount: TransactionStreamAmount;
    /**
     *
     * @type {TransactionStreamAmount}
     * @memberof TransactionStream
     */
    last_amount: TransactionStreamAmount;
    /**
     * Indicates whether the transaction stream is still live.
     * @type {boolean}
     * @memberof TransactionStream
     */
    is_active: boolean;
    /**
     *
     * @type {TransactionStreamStatus}
     * @memberof TransactionStream
     */
    status: TransactionStreamStatus;
    /**
     *
     * @type {PersonalFinanceCategory}
     * @memberof TransactionStream
     */
    personal_finance_category?: PersonalFinanceCategory | null;
    /**
     * This will be set to `true` if the stream has been modified by request to a `/transactions/recurring/streams` endpoint. It will be `false` for all other streams.
     * @type {boolean}
     * @memberof TransactionStream
     */
    is_user_modified: boolean;
    /**
     * The date and time of the most recent user modification. This will only be set if `is_user_modified` is `true`.
     * @type {string}
     * @memberof TransactionStream
     */
    last_user_modified_datetime?: string;
}
/**
 * Object with data pertaining to an amount on the transaction stream.
 * @export
 * @interface TransactionStreamAmount
 */
export interface TransactionStreamAmount {
    /**
     * Represents the numerical value of an amount.
     * @type {number}
     * @memberof TransactionStreamAmount
     */
    amount?: number;
    /**
     * The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.  See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
     * @type {string}
     * @memberof TransactionStreamAmount
     */
    iso_currency_code?: string | null;
    /**
     * The unofficial currency code of the amount. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
     * @type {string}
     * @memberof TransactionStreamAmount
     */
    unofficial_currency_code?: string | null;
}
/**
 * The current status of the transaction stream.  `MATURE`: A `MATURE` recurring stream should have at least 3 transactions and happen on a regular cadence (For Annual recurring stream, we will mark it `MATURE` after 2 instances).  `EARLY_DETECTION`: When a recurring transaction first appears in the transaction history and before it fulfills the requirement of a mature stream, the status will be `EARLY_DETECTION`.  `TOMBSTONED`: A stream that was previously in the `EARLY_DETECTION` status will move to the `TOMBSTONED` status when no further transactions were found at the next expected date.  `UNKNOWN`: A stream is assigned an `UNKNOWN` status when none of the other statuses are applicable.
 * @export
 * @enum {string}
 */
export declare enum TransactionStreamStatus {
    Unknown = "UNKNOWN",
    Mature = "MATURE",
    EarlyDetection = "EARLY_DETECTION",
    Tombstoned = "TOMBSTONED"
}
/**
 * A representation of a transactions category rule.
 * @export
 * @interface TransactionsCategoryRule
 */
export interface TransactionsCategoryRule {
    /**
     * A unique identifier of the rule created
     * @type {string}
     * @memberof TransactionsCategoryRule
     */
    id?: string;
    /**
     * A unique identifier of the Item the rule was created for.
     * @type {string}
     * @memberof TransactionsCategoryRule
     */
    item_id?: string;
    /**
     * Date and time when a rule was created in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ).
     * @type {string}
     * @memberof TransactionsCategoryRule
     */
    created_at?: string;
    /**
     * Personal finance category unique identifier.  In the personal finance category taxonomy, this field is represented by the detailed category field.
     * @type {string}
     * @memberof TransactionsCategoryRule
     */
    personal_finance_category?: string;
    /**
     *
     * @type {TransactionsRuleDetails}
     * @memberof TransactionsCategoryRule
     */
    rule_details?: TransactionsRuleDetails;
}
/**
 * TransactionsEnhanceGetRequest defines the request schema for `/transactions/enhance`.
 * @export
 * @interface TransactionsEnhanceGetRequest
 */
export interface TransactionsEnhanceGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsEnhanceGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsEnhanceGetRequest
     */
    secret?: string;
    /**
     * The type of account for the requested transactions (`depository` or `credit`).
     * @type {string}
     * @memberof TransactionsEnhanceGetRequest
     */
    account_type: string;
    /**
     * An array of raw transactions to be enhanced.
     * @type {Array<ClientProvidedRawTransaction>}
     * @memberof TransactionsEnhanceGetRequest
     */
    transactions: Array<ClientProvidedRawTransaction>;
}
/**
 * TransactionsEnhanceGetResponse defines the response schema for `/beta/transactions/v1/enhance`.
 * @export
 * @interface TransactionsEnhanceGetResponse
 */
export interface TransactionsEnhanceGetResponse {
    /**
     * An array of enhanced transactions.
     * @type {Array<ClientProvidedEnhancedTransaction>}
     * @memberof TransactionsEnhanceGetResponse
     */
    enhanced_transactions: Array<ClientProvidedEnhancedTransaction>;
}
/**
 * TransactionsEnrichRequest defines the request schema for `/transactions/enrich`.
 * @export
 * @interface TransactionsEnrichRequest
 */
export interface TransactionsEnrichRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsEnrichRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsEnrichRequest
     */
    secret?: string;
    /**
     * The account type for the requested transactions (either `depository` or `credit`).
     * @type {string}
     * @memberof TransactionsEnrichRequest
     */
    account_type: string;
    /**
     * An array of transaction objects to be enriched by Plaid. Maximum of 100 transactions per request.
     * @type {Array<ClientProvidedTransaction>}
     * @memberof TransactionsEnrichRequest
     */
    transactions: Array<ClientProvidedTransaction>;
    /**
     *
     * @type {TransactionsEnrichRequestOptions}
     * @memberof TransactionsEnrichRequest
     */
    options?: TransactionsEnrichRequestOptions;
}
/**
 * An optional object to be used with the request.
 * @export
 * @interface TransactionsEnrichRequestOptions
 */
export interface TransactionsEnrichRequestOptions {
    /**
     * Include `legacy_category` and `legacy_category_id` in the response (in addition to the default `personal_finance_category`).  Categories are based on Plaid\'s legacy taxonomy. For a full list of legacy categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).
     * @type {boolean}
     * @memberof TransactionsEnrichRequestOptions
     */
    include_legacy_category?: boolean;
}
/**
 * TransactionsEnrichResponse defines the response schema for `/transactions/enrich`.
 * @export
 * @interface TransactionsEnrichResponse
 */
export interface TransactionsEnrichResponse {
    /**
     * A list of enriched transactions.
     * @type {Array<ClientProvidedEnrichedTransaction>}
     * @memberof TransactionsEnrichResponse
     */
    enriched_transactions: Array<ClientProvidedEnrichedTransaction>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransactionsEnrichResponse
     */
    request_id?: string;
}
/**
 * TransactionsGetRequest defines the request schema for `/transactions/get`
 * @export
 * @interface TransactionsGetRequest
 */
export interface TransactionsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsGetRequest
     */
    client_id?: string;
    /**
     *
     * @type {TransactionsGetRequestOptions}
     * @memberof TransactionsGetRequest
     */
    options?: TransactionsGetRequestOptions;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof TransactionsGetRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsGetRequest
     */
    secret?: string;
    /**
     * The earliest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof TransactionsGetRequest
     */
    start_date: string;
    /**
     * The latest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof TransactionsGetRequest
     */
    end_date: string;
}
/**
 * An optional object to be used with the request. If specified, `options` must not be `null`.
 * @export
 * @interface TransactionsGetRequestOptions
 */
export interface TransactionsGetRequestOptions {
    /**
     * A list of `account_ids` to retrieve for the Item  Note: An error will be returned if a provided `account_id` is not associated with the Item.
     * @type {Array<string>}
     * @memberof TransactionsGetRequestOptions
     */
    account_ids?: Array<string>;
    /**
     * The number of transactions to fetch.
     * @type {number}
     * @memberof TransactionsGetRequestOptions
     */
    count?: number;
    /**
     * The number of transactions to skip. The default value is 0.
     * @type {number}
     * @memberof TransactionsGetRequestOptions
     */
    offset?: number;
    /**
     * Include the raw unparsed transaction description from the financial institution.
     * @type {boolean}
     * @memberof TransactionsGetRequestOptions
     */
    include_original_description?: boolean | null;
    /**
     * Personal finance categories are now returned by default.
     * @type {boolean}
     * @memberof TransactionsGetRequestOptions
     * @deprecated
     */
    include_personal_finance_category_beta?: boolean;
    /**
     * Personal finance categories are now returned by default.
     * @type {boolean}
     * @memberof TransactionsGetRequestOptions
     * @deprecated
     */
    include_personal_finance_category?: boolean;
    /**
     * Counterparties and extra merchant fields are now returned by default.
     * @type {boolean}
     * @memberof TransactionsGetRequestOptions
     * @deprecated
     */
    include_logo_and_counterparty_beta?: boolean;
    /**
     * This field only applies to calls for Items where the Transactions product has not already been initialized (i.e. by specifying `transactions` in the `products`, `optional_products`, or `required_if_consented_products` array when calling `/link/token/create` or by making a previous call to `/transactions/sync` or `/transactions/get`). In those cases, the field controls the maximum number of days of transaction history that Plaid will request from the financial institution. The more transaction history is requested, the longer the historical update poll will take. If no value is specified, 90 days of history will be requested by default. If a value under 30 is provided, a minimum of 30 days of history will be requested.  If you are initializing your Items with transactions during the `/link/token/create` call (e.g. by including `transactions` in the `/link/token/create` `products` array), you must use the [`transactions.days_requested`](https://plaid.com/docs/api/link/#link-token-create-request-transactions-days-requested) field in the `/link/token/create` request instead of in the `/transactions/get` request.  If the Item has already been initialized with the Transactions product, this field will have no effect. The maximum amount of transaction history to request on an Item cannot be updated if Transactions has already been added to the Item. To request older transaction history on an Item where Transactions has already been added, you must delete the Item via `/item/remove` and send the user through Link to create a new Item.   Customers using [Recurring Transactions](https://plaid.com/docs/api/products/transactions/#transactionsrecurringget) should request at least 180 days of history for optimal results.
     * @type {number}
     * @memberof TransactionsGetRequestOptions
     */
    days_requested?: number;
}
/**
 * TransactionsGetResponse defines the response schema for `/transactions/get`
 * @export
 * @interface TransactionsGetResponse
 */
export interface TransactionsGetResponse {
    /**
     * An array containing the `accounts` associated with the Item for which transactions are being returned. Each transaction can be mapped to its corresponding account via the `account_id` field.
     * @type {Array<AccountBase>}
     * @memberof TransactionsGetResponse
     */
    accounts: Array<AccountBase>;
    /**
     * An array containing transactions from the account. Transactions are returned in reverse chronological order, with the most recent at the beginning of the array. The maximum number of transactions returned is determined by the `count` parameter.
     * @type {Array<Transaction>}
     * @memberof TransactionsGetResponse
     */
    transactions: Array<Transaction>;
    /**
     * The total number of transactions available within the date range specified. If `total_transactions` is larger than the size of the `transactions` array, more transactions are available and can be fetched via manipulating the `offset` parameter.
     * @type {number}
     * @memberof TransactionsGetResponse
     */
    total_transactions: number;
    /**
     *
     * @type {Item}
     * @memberof TransactionsGetResponse
     */
    item: Item;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransactionsGetResponse
     */
    request_id: string;
}
/**
 * TransactionsRecurringCreateInput defines a single input to the `/transactions/recurring/streams/create` endpoint.
 * @export
 * @interface TransactionsRecurringCreateInput
 */
export interface TransactionsRecurringCreateInput {
    /**
     * IDs of all the transactions that will be merged into one stream. If any transaction currently exists in another stream, it will be removed from the other stream.
     * @type {Array<string>}
     * @memberof TransactionsRecurringCreateInput
     */
    transaction_ids?: Array<string>;
}
/**
 * TransactionsRecurringCreateRequest defined the request schema for `/transactions/recurring/streams/create` endpoint.
 * @export
 * @interface TransactionsRecurringCreateRequest
 */
export interface TransactionsRecurringCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRecurringCreateRequest
     */
    client_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof TransactionsRecurringCreateRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRecurringCreateRequest
     */
    secret?: string;
    /**
     * A list of all the operations to be performed. This will either all succeed or all fail.
     * @type {Array<TransactionsRecurringCreateInput>}
     * @memberof TransactionsRecurringCreateRequest
     */
    inputs: Array<TransactionsRecurringCreateInput>;
}
/**
 * TransactionsRecurringCreateResponse defines the response schema for the `/transactions/recurring/streams/create` endpoint.
 * @export
 * @interface TransactionsRecurringCreateResponse
 */
export interface TransactionsRecurringCreateResponse {
    /**
     * Streams created as a result of the operation.
     * @type {Array<TransactionStream>}
     * @memberof TransactionsRecurringCreateResponse
     */
    added_streams: Array<TransactionStream>;
    /**
     * Other streams with transactions removed from them as a result of the operation (in no particular order).
     * @type {Array<TransactionStream>}
     * @memberof TransactionsRecurringCreateResponse
     */
    modified_streams?: Array<TransactionStream>;
    /**
     * The ids of streams that are no longer qualified as recurring transaction streams (in no particular order).
     * @type {Array<string>}
     * @memberof TransactionsRecurringCreateResponse
     */
    removed_stream_ids?: Array<string>;
}
/**
 * TransactionsRecurringGetRequest defines the request schema for `/transactions/recurring/get`
 * @export
 * @interface TransactionsRecurringGetRequest
 */
export interface TransactionsRecurringGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRecurringGetRequest
     */
    client_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof TransactionsRecurringGetRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRecurringGetRequest
     */
    secret?: string;
    /**
     *
     * @type {TransactionsRecurringGetRequestOptions}
     * @memberof TransactionsRecurringGetRequest
     */
    options?: TransactionsRecurringGetRequestOptions;
    /**
     * An optional list of `account_ids` to retrieve for the Item. Retrieves all active accounts on item if no `account_id`s are provided.  Note: An error will be returned if a provided `account_id` is not associated with the Item.
     * @type {Array<string>}
     * @memberof TransactionsRecurringGetRequest
     */
    account_ids?: Array<string>;
}
/**
 * An optional object to be used with the request. If specified, `options` must not be `null`.
 * @export
 * @interface TransactionsRecurringGetRequestOptions
 */
export interface TransactionsRecurringGetRequestOptions {
    /**
     * Personal finance categories are now returned by default.
     * @type {boolean}
     * @memberof TransactionsRecurringGetRequestOptions
     * @deprecated
     */
    include_personal_finance_category?: boolean;
}
/**
 * TransactionsRecurringGetResponse defines the response schema for `/transactions/recurring/get`
 * @export
 * @interface TransactionsRecurringGetResponse
 */
export interface TransactionsRecurringGetResponse {
    /**
     * An array of depository transaction streams.
     * @type {Array<TransactionStream>}
     * @memberof TransactionsRecurringGetResponse
     */
    inflow_streams: Array<TransactionStream>;
    /**
     * An array of expense transaction streams.
     * @type {Array<TransactionStream>}
     * @memberof TransactionsRecurringGetResponse
     */
    outflow_streams: Array<TransactionStream>;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the last time transaction streams for the given account were updated on
     * @type {string}
     * @memberof TransactionsRecurringGetResponse
     */
    updated_datetime: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransactionsRecurringGetResponse
     */
    request_id: string;
}
/**
 * TransactionsRecurringMergeInput defines a single input to the `/transactions/recurring/streams/merge` endpoint.
 * @export
 * @interface TransactionsRecurringMergeInput
 */
export interface TransactionsRecurringMergeInput {
    /**
     * IDs of all the streams that will be merged into the first stream. This operation will retain the stream_id of the first stream.
     * @type {Array<string>}
     * @memberof TransactionsRecurringMergeInput
     */
    stream_ids: Array<string>;
}
/**
 * TransactionsRecurringMergeRequest defined the request schema for `/transactions/recurring/streams/merge` endpoint.
 * @export
 * @interface TransactionsRecurringMergeRequest
 */
export interface TransactionsRecurringMergeRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRecurringMergeRequest
     */
    client_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof TransactionsRecurringMergeRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRecurringMergeRequest
     */
    secret?: string;
    /**
     * A list of all the operations to be performed. This will either all succeed or all fail.
     * @type {Array<TransactionsRecurringMergeInput>}
     * @memberof TransactionsRecurringMergeRequest
     */
    inputs: Array<TransactionsRecurringMergeInput>;
}
/**
 * TransactionsRecurringMergeResponse defines the response schema for the `/transactions/recurring/streams/merge` endpoint.
 * @export
 * @interface TransactionsRecurringMergeResponse
 */
export interface TransactionsRecurringMergeResponse {
    /**
     * Directly modified stream, along with other streams with transactions removed from them as a result of the operation (in no particular order).
     * @type {Array<TransactionStream>}
     * @memberof TransactionsRecurringMergeResponse
     */
    modified_streams: Array<TransactionStream>;
    /**
     * The ids of streams that are no longer qualified as recurring transaction streams (in no particular order).
     * @type {Array<string>}
     * @memberof TransactionsRecurringMergeResponse
     */
    removed_stream_ids?: Array<string>;
}
/**
 * TransactionsRecurringUpdateInput defines a single operation to the `/transactions/recurring/streams/update` endpoint.
 * @export
 * @interface TransactionsRecurringUpdateInput
 */
export interface TransactionsRecurringUpdateInput {
    /**
     * ID of the stream that all the transactions will be added in to.
     * @type {string}
     * @memberof TransactionsRecurringUpdateInput
     */
    stream_id: string;
    /**
     * IDs of all the transactions that will be added into the stream. If any transaction currently exist in another stream, it will be removed from the other stream.
     * @type {Array<string>}
     * @memberof TransactionsRecurringUpdateInput
     */
    transaction_ids: Array<string>;
}
/**
 * TransactionsRecurringUpdateRequest defined the request schema for `/transactions/recurring/streams/update` endpoint.
 * @export
 * @interface TransactionsRecurringUpdateRequest
 */
export interface TransactionsRecurringUpdateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRecurringUpdateRequest
     */
    client_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof TransactionsRecurringUpdateRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRecurringUpdateRequest
     */
    secret?: string;
    /**
     * A list of all the operations to be performed. This will either all succeed or all fail.
     * @type {Array<TransactionsRecurringUpdateInput>}
     * @memberof TransactionsRecurringUpdateRequest
     */
    inputs: Array<TransactionsRecurringUpdateInput>;
}
/**
 * TransactionsRecurringUpdateResponse defines the response schema for the `/transactions/recurring/streams/update` endpoint.
 * @export
 * @interface TransactionsRecurringUpdateResponse
 */
export interface TransactionsRecurringUpdateResponse {
    /**
     * Directly modified stream, along with other streams with transactions removed from them as a result of the operation (in no particular order).
     * @type {Array<TransactionStream>}
     * @memberof TransactionsRecurringUpdateResponse
     */
    modified_streams: Array<TransactionStream>;
    /**
     * The ids of streams that are no longer qualified as recurring transaction streams (in no particular order).
     * @type {Array<string>}
     * @memberof TransactionsRecurringUpdateResponse
     */
    removed_stream_ids?: Array<string>;
}
/**
 * TransactionsRefreshRequest defines the request schema for `/transactions/refresh`
 * @export
 * @interface TransactionsRefreshRequest
 */
export interface TransactionsRefreshRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRefreshRequest
     */
    client_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof TransactionsRefreshRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRefreshRequest
     */
    secret?: string;
}
/**
 * TransactionsRefreshResponse defines the response schema for `/transactions/refresh`
 * @export
 * @interface TransactionsRefreshResponse
 */
export interface TransactionsRefreshResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransactionsRefreshResponse
     */
    request_id: string;
}
/**
 * Fired when transaction(s) for an Item are deleted. The deleted transaction IDs are included in the webhook payload. Plaid will typically check for deleted transaction data several times a day.  This webhook is intended for use with `/transactions/get`; if you are using the newer `/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
 * @export
 * @interface TransactionsRemovedWebhook
 */
export interface TransactionsRemovedWebhook {
    /**
     * `TRANSACTIONS`
     * @type {string}
     * @memberof TransactionsRemovedWebhook
     */
    webhook_type: string;
    /**
     * `TRANSACTIONS_REMOVED`
     * @type {string}
     * @memberof TransactionsRemovedWebhook
     */
    webhook_code: string;
    /**
     *
     * @type {PlaidError}
     * @memberof TransactionsRemovedWebhook
     */
    error?: PlaidError | null;
    /**
     * An array of `transaction_ids` corresponding to the removed transactions
     * @type {Array<string>}
     * @memberof TransactionsRemovedWebhook
     */
    removed_transactions: Array<string>;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof TransactionsRemovedWebhook
     */
    item_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof TransactionsRemovedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * A representation of transactions rule details.
 * @export
 * @interface TransactionsRuleDetails
 */
export interface TransactionsRuleDetails {
    /**
     *
     * @type {TransactionsRuleField}
     * @memberof TransactionsRuleDetails
     */
    field: TransactionsRuleField;
    /**
     *
     * @type {TransactionsRuleType}
     * @memberof TransactionsRuleDetails
     */
    type: TransactionsRuleType;
    /**
     * For TRANSACTION_ID field, provide transaction_id. For NAME field, provide a string pattern.
     * @type {string}
     * @memberof TransactionsRuleDetails
     */
    query: string;
}
/**
 * Transaction field for which the rule is defined.
 * @export
 * @enum {string}
 */
export declare enum TransactionsRuleField {
    TransactionId = "TRANSACTION_ID",
    Name = "NAME"
}
/**
 * Transaction rule\'s match type. For TRANSACTION_ID field, EXACT_MATCH is available. Matches are case sensitive.
 * @export
 * @enum {string}
 */
export declare enum TransactionsRuleType {
    ExactMatch = "EXACT_MATCH",
    SubstringMatch = "SUBSTRING_MATCH"
}
/**
 * TransactionsRulesCreateRequest defines the request schema for `beta/transactions/rules/v1/create`
 * @export
 * @interface TransactionsRulesCreateRequest
 */
export interface TransactionsRulesCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRulesCreateRequest
     */
    client_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof TransactionsRulesCreateRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRulesCreateRequest
     */
    secret?: string;
    /**
     * Personal finance detailed category.  All implementations are encouraged to use this field instead of `category`, as it provides more meaningful and accurate categorization.  See the [`taxonomy csv file`](https://plaid.com/documents/transactions-personal-finance-category-taxonomy.csv) for a full list of personal finance categories.
     * @type {string}
     * @memberof TransactionsRulesCreateRequest
     */
    personal_finance_category: string;
    /**
     *
     * @type {TransactionsRuleDetails}
     * @memberof TransactionsRulesCreateRequest
     */
    rule_details: TransactionsRuleDetails;
}
/**
 * TransactionsRulesCreateResponse defines the response schema for `/beta/transactions/rules/v1/create`
 * @export
 * @interface TransactionsRulesCreateResponse
 */
export interface TransactionsRulesCreateResponse {
    /**
     *
     * @type {TransactionsCategoryRule}
     * @memberof TransactionsRulesCreateResponse
     */
    rule: TransactionsCategoryRule;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransactionsRulesCreateResponse
     */
    request_id: string;
}
/**
 * TransactionsRulesListRequest defines the request schema for `/beta/transactions/rules/v1/list`
 * @export
 * @interface TransactionsRulesListRequest
 */
export interface TransactionsRulesListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRulesListRequest
     */
    client_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof TransactionsRulesListRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRulesListRequest
     */
    secret?: string;
}
/**
 * TransactionsRulesListResponse defines the response schema for `/beta/transactions/rules/v1/list`
 * @export
 * @interface TransactionsRulesListResponse
 */
export interface TransactionsRulesListResponse {
    /**
     * A list of the Item\'s transaction rules
     * @type {Array<TransactionsCategoryRule>}
     * @memberof TransactionsRulesListResponse
     */
    rules: Array<TransactionsCategoryRule>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransactionsRulesListResponse
     */
    request_id: string;
}
/**
 * TransactionsRulesRemoveRequest defines the request schema for `/beta/transactions/rules/v1/remove`
 * @export
 * @interface TransactionsRulesRemoveRequest
 */
export interface TransactionsRulesRemoveRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRulesRemoveRequest
     */
    client_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof TransactionsRulesRemoveRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsRulesRemoveRequest
     */
    secret?: string;
    /**
     * A rule\'s unique identifier
     * @type {string}
     * @memberof TransactionsRulesRemoveRequest
     */
    rule_id: string;
}
/**
 * TransactionsRulesRemoveResponse defines the response schema for `/beta/transactions/rules/v1/remove`
 * @export
 * @interface TransactionsRulesRemoveResponse
 */
export interface TransactionsRulesRemoveResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransactionsRulesRemoveResponse
     */
    request_id: string;
}
/**
 * TransactionsSyncRequest defines the request schema for `/transactions/sync`
 * @export
 * @interface TransactionsSyncRequest
 */
export interface TransactionsSyncRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsSyncRequest
     */
    client_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof TransactionsSyncRequest
     */
    access_token: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsSyncRequest
     */
    secret?: string;
    /**
     * The cursor value represents the last update requested. Providing it will cause the response to only return changes after this update. If omitted, the entire history of updates will be returned, starting with the first-added transactions on the Item. The cursor also accepts the special value of `\"now\"`, which can be used to fast-forward the cursor as part of migrating an existing Item from `/transactions/get` to `/transactions/sync`. For more information, see the [Transactions sync migration guide](https://plaid.com/docs/transactions/sync-migration/). Note that using the `\"now\"` value is not supported for any use case other than migrating existing Items from `/transactions/get`.  The upper-bound length of this cursor is 256 characters of base64.
     * @type {string}
     * @memberof TransactionsSyncRequest
     */
    cursor?: string;
    /**
     * The number of transaction updates to fetch.
     * @type {number}
     * @memberof TransactionsSyncRequest
     */
    count?: number;
    /**
     *
     * @type {TransactionsSyncRequestOptions}
     * @memberof TransactionsSyncRequest
     */
    options?: TransactionsSyncRequestOptions;
}
/**
 * An optional object to be used with the request. If specified, `options` must not be `null`.
 * @export
 * @interface TransactionsSyncRequestOptions
 */
export interface TransactionsSyncRequestOptions {
    /**
     * Include the raw unparsed transaction description from the financial institution.
     * @type {boolean}
     * @memberof TransactionsSyncRequestOptions
     */
    include_original_description?: boolean | null;
    /**
     * Personal finance categories are now returned by default.
     * @type {boolean}
     * @memberof TransactionsSyncRequestOptions
     * @deprecated
     */
    include_personal_finance_category?: boolean;
    /**
     * Counterparties and extra merchant fields are now returned by default.
     * @type {boolean}
     * @memberof TransactionsSyncRequestOptions
     * @deprecated
     */
    include_logo_and_counterparty_beta?: boolean;
    /**
     * This field only applies to calls for Items where the Transactions product has not already been initialized (i.e., by specifying `transactions` in the `products`, `required_if_supported_products`, or `optional_products` array when calling `/link/token/create` or by making a previous call to `/transactions/sync` or `/transactions/get`). In those cases, the field controls the maximum number of days of transaction history that Plaid will request from the financial institution. The more transaction history is requested, the longer the historical update poll will take. If no value is specified, 90 days of history will be requested by default.  If you are initializing your Items with transactions during the `/link/token/create` call (e.g. by including `transactions` in the `/link/token/create` `products` array), you must use the [`transactions.days_requested`](https://plaid.com/docs/api/link/#link-token-create-request-transactions-days-requested) field in the `/link/token/create` request instead of in the `/transactions/sync` request.  If the Item has already been initialized with the Transactions product, this field will have no effect. The maximum amount of transaction history to request on an Item cannot be updated if Transactions has already been added to the Item. To request older transaction history on an Item where Transactions has already been added, you must delete the Item via `/item/remove` and send the user through Link to create a new Item.   Customers using [Recurring Transactions](https://plaid.com/docs/api/products/transactions/#transactionsrecurringget) should request at least 180 days of history for optimal results.
     * @type {number}
     * @memberof TransactionsSyncRequestOptions
     */
    days_requested?: number;
    /**
     * If provided, the returned updates and cursor will only reflect the specified account\'s transactions. Omitting `account_id` returns updates for all accounts under the Item. Note that specifying an `account_id` effectively creates a separate incremental update stream—and therefore a separate cursor—for that account. If multiple accounts are queried this way, you will maintain multiple cursors, one per `account_id`.   If you decide to begin filtering by `account_id` after using no `account_id`, start fresh with a null cursor and maintain separate `(account_id, cursor)` pairs going forward. Do not reuse any previously saved cursors, as this can cause pagination errors or incomplete data.  Note: An error will be returned if a provided `account_id` is not associated with the Item.
     * @type {string}
     * @memberof TransactionsSyncRequestOptions
     */
    account_id?: string;
}
/**
 * TransactionsSyncResponse defines the response schema for `/transactions/sync`
 * @export
 * @interface TransactionsSyncResponse
 */
export interface TransactionsSyncResponse {
    /**
     *
     * @type {TransactionsUpdateStatus}
     * @memberof TransactionsSyncResponse
     */
    transactions_update_status: TransactionsUpdateStatus;
    /**
     * An array of accounts at a financial institution associated with the transactions in this response. Only accounts that have associated transactions will be shown. For example, `investment`-type accounts will be omitted.
     * @type {Array<AccountBase>}
     * @memberof TransactionsSyncResponse
     */
    accounts: Array<AccountBase>;
    /**
     * Transactions that have been added to the Item since `cursor` ordered by ascending last modified time.
     * @type {Array<Transaction>}
     * @memberof TransactionsSyncResponse
     */
    added: Array<Transaction>;
    /**
     * Transactions that have been modified on the Item since `cursor` ordered by ascending last modified time.
     * @type {Array<Transaction>}
     * @memberof TransactionsSyncResponse
     */
    modified: Array<Transaction>;
    /**
     * Transactions that have been removed from the Item since `cursor` ordered by ascending last modified time.
     * @type {Array<RemovedTransaction>}
     * @memberof TransactionsSyncResponse
     */
    removed: Array<RemovedTransaction>;
    /**
     * Cursor used for fetching any future updates after the latest update provided in this response. The cursor obtained after all pages have been pulled (indicated by `has_more` being `false`) will be valid for at least 1 year. This cursor should be persisted for later calls. If transactions are not yet available, this will be an empty string.  If `account_id` is included in the request, the returned cursor will reflect updates for that specific account.
     * @type {string}
     * @memberof TransactionsSyncResponse
     */
    next_cursor: string;
    /**
     * Represents if more than requested count of transaction updates exist. If true, the additional updates can be fetched by making an additional request with `cursor` set to `next_cursor`. If `has_more` is true, it’s important to pull all available pages, to make it less likely for underlying data changes to conflict with pagination.
     * @type {boolean}
     * @memberof TransactionsSyncResponse
     */
    has_more: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransactionsSyncResponse
     */
    request_id: string;
}
/**
 * A description of the update status for transaction pulls of an Item. This field contains the same information provided by transactions webhooks, and may be helpful for webhook troubleshooting or when recovering from missed webhooks.  `TRANSACTIONS_UPDATE_STATUS_UNKNOWN`: Unable to fetch transactions update status for Item. `NOT_READY`: The Item is pending transaction pull. `INITIAL_UPDATE_COMPLETE`: Initial pull for the Item is complete, historical pull is pending. `HISTORICAL_UPDATE_COMPLETE`: Both initial and historical pull for Item are complete.
 * @export
 * @enum {string}
 */
export declare enum TransactionsUpdateStatus {
    TransactionsUpdateStatusUnknown = "TRANSACTIONS_UPDATE_STATUS_UNKNOWN",
    NotReady = "NOT_READY",
    InitialUpdateComplete = "INITIAL_UPDATE_COMPLETE",
    HistoricalUpdateComplete = "HISTORICAL_UPDATE_COMPLETE"
}
/**
 * TransactionsUserInsightsGetRequest defines the request schema for `/beta/transactions/user_insights/v1/get`.
 * @export
 * @interface TransactionsUserInsightsGetRequest
 */
export interface TransactionsUserInsightsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsUserInsightsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransactionsUserInsightsGetRequest
     */
    secret?: string;
    /**
     * A unique client-provided user_id to retrieve insights for.
     * @type {string}
     * @memberof TransactionsUserInsightsGetRequest
     */
    client_user_id: string;
}
/**
 * TransactionsUserInsightsGetResponse defines the response schema for `/beta/transactions/user_insights/v1/get`.
 * @export
 * @interface TransactionsUserInsightsGetResponse
 */
export interface TransactionsUserInsightsGetResponse {
    /**
     *
     * @type {UserDataOverview}
     * @memberof TransactionsUserInsightsGetResponse
     */
    user_data_overview: UserDataOverview;
    /**
     *
     * @type {CounterpartyInsights}
     * @memberof TransactionsUserInsightsGetResponse
     */
    counterparty_insights?: CounterpartyInsights;
    /**
     *
     * @type {CategoryInsights}
     * @memberof TransactionsUserInsightsGetResponse
     */
    category_insights?: CategoryInsights;
    /**
     *
     * @type {RecurringTransactions}
     * @memberof TransactionsUserInsightsGetResponse
     */
    recurring_transactions?: RecurringTransactions;
}
/**
 * Represents a transfer within the Transfers API.
 * @export
 * @interface Transfer
 */
export interface Transfer {
    /**
     * Plaid’s unique identifier for a transfer.
     * @type {string}
     * @memberof Transfer
     */
    id: string;
    /**
     * Plaid’s unique identifier for a transfer authorization.
     * @type {string}
     * @memberof Transfer
     */
    authorization_id: string;
    /**
     *
     * @type {ACHClass}
     * @memberof Transfer
     */
    ach_class?: ACHClass;
    /**
     * The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
     * @type {string}
     * @memberof Transfer
     */
    account_id?: string;
    /**
     * The id of the associated funding account, available in the Plaid Dashboard. If present, this indicates which of your business checking accounts will be credited or debited.
     * @type {string}
     * @memberof Transfer
     */
    funding_account_id: string | null;
    /**
     * Plaid’s unique identifier for a Plaid Ledger Balance.
     * @type {string}
     * @memberof Transfer
     */
    ledger_id?: string | null;
    /**
     *
     * @type {TransferType}
     * @memberof Transfer
     */
    type: TransferType;
    /**
     *
     * @type {TransferUserInResponse}
     * @memberof Transfer
     */
    user: TransferUserInResponse;
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.
     * @type {string}
     * @memberof Transfer
     */
    amount: string;
    /**
     * The description of the transfer.
     * @type {string}
     * @memberof Transfer
     */
    description: string;
    /**
     * The datetime when this transfer was created. This will be of the form `2006-01-02T15:04:05Z`
     * @type {string}
     * @memberof Transfer
     */
    created: string;
    /**
     *
     * @type {TransferStatus}
     * @memberof Transfer
     */
    status: TransferStatus;
    /**
     *
     * @type {TransferSweepStatus}
     * @memberof Transfer
     */
    sweep_status?: TransferSweepStatus | null;
    /**
     *
     * @type {TransferNetwork}
     * @memberof Transfer
     */
    network: TransferNetwork;
    /**
     *
     * @type {TransferWireDetails}
     * @memberof Transfer
     */
    wire_details?: TransferWireDetails | null;
    /**
     * When `true`, you can still cancel this transfer.
     * @type {boolean}
     * @memberof Transfer
     */
    cancellable: boolean;
    /**
     *
     * @type {TransferFailure}
     * @memberof Transfer
     */
    failure_reason: TransferFailure | null;
    /**
     * The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply: The JSON values must be Strings (no nested JSON objects allowed) Only ASCII characters may be used Maximum of 50 key/value pairs Maximum key length of 40 characters Maximum value length of 500 characters
     * @type {{ [key: string]: string; }}
     * @memberof Transfer
     */
    metadata: {
        [key: string]: string;
    } | null;
    /**
     * Plaid’s unique identifier for the origination account that was used for this transfer.
     * @type {string}
     * @memberof Transfer
     * @deprecated
     */
    origination_account_id: string;
    /**
     *
     * @type {TransferAuthorizationGuaranteeDecision}
     * @memberof Transfer
     */
    guarantee_decision: TransferAuthorizationGuaranteeDecision | null;
    /**
     *
     * @type {TransferAuthorizationGuaranteeDecisionRationale}
     * @memberof Transfer
     */
    guarantee_decision_rationale: TransferAuthorizationGuaranteeDecisionRationale | null;
    /**
     * The currency of the transfer amount, e.g. \"USD\"
     * @type {string}
     * @memberof Transfer
     */
    iso_currency_code: string;
    /**
     * The date 3 business days from settlement date indicating the following ACH returns can no longer happen: R01, R02, R03, R29. This will be of the form YYYY-MM-DD.
     * @type {string}
     * @memberof Transfer
     */
    standard_return_window: string | null;
    /**
     * The date 61 business days from settlement date indicating the following ACH returns can no longer happen: R05, R07, R10, R11, R51, R33, R37, R38, R51, R52, R53. This will be of the form YYYY-MM-DD.
     * @type {string}
     * @memberof Transfer
     */
    unauthorized_return_window: string | null;
    /**
     * The date when settlement will occur between Plaid and the receiving bank (RDFI). For ACH debits, this is the date funds will be pulled from the bank account being debited. For ACH credits, this is the date funds will be delivered to the bank account being credited. Only set for ACH transfers; `null` for non-ACH transfers. This will be of the form YYYY-MM-DD.
     * @type {string}
     * @memberof Transfer
     */
    expected_settlement_date: string | null;
    /**
     * The Plaid client ID that is the originator of this transfer. Only present if created on behalf of another client as a [Platform customer](https://plaid.com/docs/transfer/application/#originators-vs-platforms).
     * @type {string}
     * @memberof Transfer
     */
    originator_client_id: string | null;
    /**
     * A list of refunds associated with this transfer.
     * @type {Array<TransferRefund>}
     * @memberof Transfer
     */
    refunds: Array<TransferRefund>;
    /**
     * The id of the recurring transfer if this transfer belongs to a recurring transfer.
     * @type {string}
     * @memberof Transfer
     */
    recurring_transfer_id: string | null;
    /**
     * The expected sweep settlement schedule of this transfer, assuming this transfer is not `returned`. Only applies to ACH debit transfers.
     * @type {Array<TransferExpectedSweepSettlementScheduleItem>}
     * @memberof Transfer
     */
    expected_sweep_settlement_schedule?: Array<TransferExpectedSweepSettlementScheduleItem>;
    /**
     *
     * @type {TransferCreditFundsSource}
     * @memberof Transfer
     * @deprecated
     */
    credit_funds_source: TransferCreditFundsSource;
    /**
     * The amount to deduct from `transfer.amount` and distribute to the platform’s Ledger balance as a facilitator fee (decimal string with two digits of precision e.g. \"10.00\"). The remainder will go to the end-customer’s Ledger balance. This must be less than or equal to the `transfer.amount`.
     * @type {string}
     * @memberof Transfer
     */
    facilitator_fee?: string;
    /**
     * The trace identifier for the transfer based on its network. This will only be set after the transfer has posted.  For `ach` or `same-day-ach` transfers, this is the ACH trace number. For `rtp` transfers, this is the Transaction Identification number. For `wire` transfers, this is the IMAD (Input Message Accountability Data) number.
     * @type {string}
     * @memberof Transfer
     */
    network_trace_id?: string | null;
}
/**
 * The ACH networks used for the funds flow.  For requests submitted as either `ach` or `same-day-ach` the cutoff for same-day is 3:30 PM Eastern Time and the cutoff for next-day transfers is 8:30 PM Eastern Time. It is recommended to submit a request at least 15 minutes before the cutoff time in order to ensure that it will be processed before the cutoff. Any request that is indicated as `same-day-ach` and that misses the same-day cutoff, but is submitted in time for the next-day cutoff, will be sent over next-day rails and will not incur same-day charges.
 * @export
 * @enum {string}
 */
export declare enum TransferACHNetwork {
    Ach = "ach",
    SameDayAch = "same-day-ach"
}
/**
 * Contains the authorization decision for a proposed transfer.
 * @export
 * @interface TransferAuthorization
 */
export interface TransferAuthorization {
    /**
     * Plaid’s unique identifier for a transfer authorization.
     * @type {string}
     * @memberof TransferAuthorization
     */
    id: string;
    /**
     * The datetime representing when the authorization was created, in the format `2006-01-02T15:04:05Z`.
     * @type {string}
     * @memberof TransferAuthorization
     */
    created: string;
    /**
     *
     * @type {TransferAuthorizationDecision}
     * @memberof TransferAuthorization
     */
    decision: TransferAuthorizationDecision;
    /**
     *
     * @type {TransferAuthorizationDecisionRationale}
     * @memberof TransferAuthorization
     */
    decision_rationale: TransferAuthorizationDecisionRationale | null;
    /**
     *
     * @type {TransferAuthorizationGuaranteeDecision}
     * @memberof TransferAuthorization
     */
    guarantee_decision: TransferAuthorizationGuaranteeDecision | null;
    /**
     *
     * @type {TransferAuthorizationGuaranteeDecisionRationale}
     * @memberof TransferAuthorization
     */
    guarantee_decision_rationale: TransferAuthorizationGuaranteeDecisionRationale | null;
    /**
     *
     * @type {TransferAuthorizationPaymentRisk}
     * @memberof TransferAuthorization
     * @deprecated
     */
    payment_risk: TransferAuthorizationPaymentRisk | null;
    /**
     *
     * @type {TransferAuthorizationProposedTransfer}
     * @memberof TransferAuthorization
     */
    proposed_transfer: TransferAuthorizationProposedTransfer;
}
/**
 * Defines the request schema for `/transfer/authorization/cancel`
 * @export
 * @interface TransferAuthorizationCancelRequest
 */
export interface TransferAuthorizationCancelRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferAuthorizationCancelRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferAuthorizationCancelRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a transfer authorization.
     * @type {string}
     * @memberof TransferAuthorizationCancelRequest
     */
    authorization_id: string;
}
/**
 * Defines the response schema for `/transfer/authorization/cancel`
 * @export
 * @interface TransferAuthorizationCancelResponse
 */
export interface TransferAuthorizationCancelResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferAuthorizationCancelResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/authorization/create`
 * @export
 * @interface TransferAuthorizationCreateRequest
 */
export interface TransferAuthorizationCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    secret?: string;
    /**
     * The Plaid `access_token` for the account that will be debited or credited.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    access_token: string;
    /**
     * The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    account_id: string;
    /**
     * Specify the account used to fund the transfer. Should be specified if using legacy funding methods only. If using Plaid Ledger, leave this field blank. Customers can find a list of `funding_account_id`s in the Accounts page of your Plaid Dashboard, under the \"Account ID\" column. If this field is left blank and you are using legacy funding methods, this will default to the default `funding_account_id` specified during onboarding. Otherwise, Plaid Ledger will be used.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    funding_account_id?: string | null;
    /**
     * Specify which ledger balance used to fund the transfer. Customers can find a list of `ledger_id`s in the Accounts page of your Plaid Dashboard. If this field is left blank, this will default to id of the default ledger balance.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    ledger_id?: string | null;
    /**
     * The payment profile token associated with the Payment Profile that will be debited or credited. Required if not using `access_token`.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    payment_profile_token?: string;
    /**
     *
     * @type {TransferType}
     * @memberof TransferAuthorizationCreateRequest
     */
    type: TransferType;
    /**
     *
     * @type {TransferNetwork}
     * @memberof TransferAuthorizationCreateRequest
     */
    network: TransferNetwork;
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    amount: string;
    /**
     *
     * @type {ACHClass}
     * @memberof TransferAuthorizationCreateRequest
     */
    ach_class?: ACHClass;
    /**
     *
     * @type {TransferWireDetails}
     * @memberof TransferAuthorizationCreateRequest
     */
    wire_details?: TransferWireDetails | null;
    /**
     *
     * @type {TransferAuthorizationUserInRequest}
     * @memberof TransferAuthorizationCreateRequest
     */
    user: TransferAuthorizationUserInRequest;
    /**
     *
     * @type {TransferAuthorizationDevice}
     * @memberof TransferAuthorizationCreateRequest
     */
    device?: TransferAuthorizationDevice;
    /**
     * Plaid\'s unique identifier for the origination account for this authorization. If not specified, the default account will be used.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     * @deprecated
     */
    origination_account_id?: string;
    /**
     * The currency of the transfer amount. The default value is \"USD\".
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    iso_currency_code?: string;
    /**
     * A random key provided by the client, per unique authorization, which expires after 48 hours. Maximum of 50 characters.  The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create an authorization fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single authorization is created.  Idempotency does not apply to authorizations whose decisions are `user_action_required`. Therefore you may re-attempt the authorization after completing the required user action without changing `idempotency_key`.  This idempotency key expires after 48 hours, after which the same key can be reused. Failure to provide this key may result in duplicate charges.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    idempotency_key?: string | null;
    /**
     * If the end user is initiating the specific transfer themselves via an interactive UI, this should be `true`; for automatic recurring payments where the end user is not actually initiating each individual transfer, it should be `false`. This field is not currently used and is present to support planned future functionality.
     * @type {boolean}
     * @memberof TransferAuthorizationCreateRequest
     */
    user_present?: boolean | null;
    /**
     * If set to `false`, Plaid will not offer a `guarantee_decision` for this request (Guarantee customers only).
     * @type {boolean}
     * @memberof TransferAuthorizationCreateRequest
     */
    with_guarantee?: boolean | null;
    /**
     * The unique identifier returned by Plaid\'s [beacon](https://plaid.com/docs/transfer/guarantee/#using-a-beacon) when it is run on your webpage.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    beacon_session_id?: string | null;
    /**
     * The Plaid client ID that is the originator of this transfer. Only needed if creating transfers on behalf of another client as a [Platform customer](https://plaid.com/docs/transfer/application/#originators-vs-platforms).
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    originator_client_id?: string | null;
    /**
     *
     * @type {TransferCreditFundsSource}
     * @memberof TransferAuthorizationCreateRequest
     * @deprecated
     */
    credit_funds_source?: TransferCreditFundsSource;
    /**
     * Plaid’s unique identifier for a test clock. This field may only be used when using `sandbox` environment. If provided, the `authorization` is created at the `virtual_time` on the provided test clock.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    test_clock_id?: string | null;
    /**
     * The key of the Ruleset for the transaction. This feature is currently in closed beta; to request access, contact your account manager.
     * @type {string}
     * @memberof TransferAuthorizationCreateRequest
     */
    ruleset_key?: string | null;
}
/**
 * Defines the response schema for `/transfer/authorization/create`
 * @export
 * @interface TransferAuthorizationCreateResponse
 */
export interface TransferAuthorizationCreateResponse {
    /**
     *
     * @type {TransferAuthorization}
     * @memberof TransferAuthorizationCreateResponse
     */
    authorization: TransferAuthorization;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferAuthorizationCreateResponse
     */
    request_id: string;
}
/**
 *  A decision regarding the proposed transfer.  `approved` – The proposed transfer has received the end user\'s consent and has been approved for processing by Plaid. The `decision_rationale` field is set if Plaid was unable to fetch the account information. You may proceed with the transfer, but further review is recommended. Refer to the `code` field in the `decision_rationale` object for details.  `declined` – Plaid reviewed the proposed transfer and declined processing. Refer to the `code` field in the `decision_rationale` object for details.  `user_action_required` – An action is required before Plaid can assess the transfer risk and make a decision. The most common scenario is to update authentication for an Item. To complete the required action, initialize Link by setting `transfer.authorization_id` in the request of `/link/token/create`. After Link flow is completed, you may re-attempt the authorization request.
 * @export
 * @enum {string}
 */
export declare enum TransferAuthorizationDecision {
    Approved = "approved",
    Declined = "declined",
    UserActionRequired = "user_action_required"
}
/**
 * The rationale for Plaid\'s decision regarding a proposed transfer. It is always set for `declined` decisions, and may or may not be null for `approved` decisions.
 * @export
 * @interface TransferAuthorizationDecisionRationale
 */
export interface TransferAuthorizationDecisionRationale {
    /**
     *
     * @type {TransferAuthorizationDecisionRationaleCode}
     * @memberof TransferAuthorizationDecisionRationale
     */
    code: TransferAuthorizationDecisionRationaleCode;
    /**
     * A human-readable description of the code associated with a transfer approval or transfer decline.
     * @type {string}
     * @memberof TransferAuthorizationDecisionRationale
     */
    description: string;
}
/**
 * A code representing the rationale for approving or declining the proposed transfer.  If the `rationale_code` is `null`, the transfer passed the authorization check.  Any non-`null` value for an `approved` transfer indicates that the the authorization check could not be run and that you should perform your own risk assessment on the transfer. The code will indicate why the check could not be run. Possible values for an `approved` transfer are:  `MANUALLY_VERIFIED_ITEM` – Item created via a manual entry flow (i.e. Same Day Micro-deposit, Instant Micro-deposit, Database Insights, or Database Match), limited information available.  `ITEM_LOGIN_REQUIRED` – Unable to collect the account information due to Item staleness. Can be resolved by using Link and setting [`transfer.authorization_id`](https://plaid.com/docs/api/link/#link-token-create-request-transfer-authorization-id) in the request to `/link/token/create`.  `MIGRATED_ACCOUNT_ITEM` - Item created via `/transfer/migrate_account` endpoint, limited information available.  `ERROR` – Unable to collect the account information due to an unspecified error.  The following codes indicate that the authorization decision was `declined`:  `NSF` – Transaction likely to result in a return due to insufficient funds.  `RISK` - Transaction is high-risk.  `TRANSFER_LIMIT_REACHED` - One or several transfer limits are reached, e.g. monthly transfer limit. Check the accompanying `description` field to understand which limit has been reached.
 * @export
 * @enum {string}
 */
export declare enum TransferAuthorizationDecisionRationaleCode {
    Nsf = "NSF",
    Risk = "RISK",
    TransferLimitReached = "TRANSFER_LIMIT_REACHED",
    ManuallyVerifiedItem = "MANUALLY_VERIFIED_ITEM",
    ItemLoginRequired = "ITEM_LOGIN_REQUIRED",
    PaymentProfileLoginRequired = "PAYMENT_PROFILE_LOGIN_REQUIRED",
    Error = "ERROR",
    MigratedAccountItem = "MIGRATED_ACCOUNT_ITEM",
    Null = "null"
}
/**
 * Information about the device being used to initiate the authorization. These fields are not currently incorporated into the risk check.
 * @export
 * @interface TransferAuthorizationDevice
 */
export interface TransferAuthorizationDevice {
    /**
     * The IP address of the device being used to initiate the authorization.
     * @type {string}
     * @memberof TransferAuthorizationDevice
     */
    ip_address?: string;
    /**
     * The user agent of the device being used to initiate the authorization.
     * @type {string}
     * @memberof TransferAuthorizationDevice
     */
    user_agent?: string;
}
/**
 * Indicates whether the transfer is guaranteed by Plaid (Guarantee customers only). This field will contain either `GUARANTEED` or `NOT_GUARANTEED` indicating whether Plaid will guarantee the transfer. If the transfer is not guaranteed, additional information will be provided in the `guarantee_decision_rationale` field. Refer to the `code` field in `guarantee_decision_rationale` for details.
 * @export
 * @enum {string}
 */
export declare enum TransferAuthorizationGuaranteeDecision {
    Guaranteed = "GUARANTEED",
    NotGuaranteed = "NOT_GUARANTEED",
    Null = "null"
}
/**
 * The rationale for Plaid\'s decision to not guarantee a transfer. Will be `null` unless `guarantee_decision` is `NOT_GUARANTEED`.
 * @export
 * @interface TransferAuthorizationGuaranteeDecisionRationale
 */
export interface TransferAuthorizationGuaranteeDecisionRationale {
    /**
     *
     * @type {TransferAuthorizationGuaranteeDecisionRationaleCode}
     * @memberof TransferAuthorizationGuaranteeDecisionRationale
     */
    code: TransferAuthorizationGuaranteeDecisionRationaleCode;
    /**
     * A human-readable description of why the transfer cannot be guaranteed.
     * @type {string}
     * @memberof TransferAuthorizationGuaranteeDecisionRationale
     */
    description: string;
}
/**
 * A code representing the reason Plaid declined to guarantee this transfer:  `RETURN_BANK`: The risk of a bank-initiated return (for example, an R01/NSF) is too high to guarantee this transfer.  `RETURN_CUSTOMER`: The risk of a customer-initiated return (for example, a R10/Unauthorized) is too high to guarantee this transfer.  `GUARANTEE_LIMIT_REACHED`: This transfer is low-risk, but Guarantee has exhausted an internal limit on the number or rate of guarantees that applies to this transfer.  `RISK_ESTIMATE_UNAVAILABLE`: A risk estimate is unavailable for this Item.  `REQUIRED_PARAM_MISSING`: Required fields are missing.
 * @export
 * @enum {string}
 */
export declare enum TransferAuthorizationGuaranteeDecisionRationaleCode {
    ReturnBank = "RETURN_BANK",
    ReturnCustomer = "RETURN_CUSTOMER",
    GuaranteeLimitReached = "GUARANTEE_LIMIT_REACHED",
    RiskEstimateUnavailable = "RISK_ESTIMATE_UNAVAILABLE",
    RequiredParamMissing = "REQUIRED_PARAM_MISSING"
}
/**
 * This object includes the scores and risk level. This response is offered as an add-on to /transfer/authorization/create. To request access to these fields please contact your Plaid account manager.
 * @export
 * @interface TransferAuthorizationPaymentRisk
 */
export interface TransferAuthorizationPaymentRisk {
    /**
     * A score from 1-99 that indicates the transaction return risk: a higher risk score suggests a higher return likelihood.  The score evaluates the transaction return risk because an account is overdrawn or because an ineligible account is used and covers return codes: \"R01\", \"R02\", \"R03\", \"R04\", \"R06\", \"R08\",  \"R09\", \"R13\", \"R16\", \"R17\", \"R20\", \"R23\". These returns have a turnaround time of 2 banking days.
     * @type {number}
     * @memberof TransferAuthorizationPaymentRisk
     */
    bank_initiated_return_score: number | null;
    /**
     * A score from 1-99 that indicates the transaction return risk: a higher risk score suggests a higher return likelihood.  The score evaluates the transaction return risk of an unauthorized debit and covers return codes: \"R05\", \"R07\", \"R10\", \"R11\", \"R29\". These returns typically have a return time frame of up to 60 calendar days. During this period, the customer of financial institutions can dispute a transaction as unauthorized.
     * @type {number}
     * @memberof TransferAuthorizationPaymentRisk
     */
    customer_initiated_return_score: number | null;
    /**
     *
     * @type {TransferAuthorizationRiskLevel}
     * @memberof TransferAuthorizationPaymentRisk
     */
    risk_level: TransferAuthorizationRiskLevel | null;
    /**
     * If bank information was not available to be used in the Signal model, this array contains warnings describing why bank data is missing. If you want to receive an API error instead of Signal scores in the case of missing bank data, file a support ticket or contact your Plaid account manager.
     * @type {Array<SignalWarning>}
     * @memberof TransferAuthorizationPaymentRisk
     */
    warnings: Array<SignalWarning>;
}
/**
 * Details regarding the proposed transfer.
 * @export
 * @interface TransferAuthorizationProposedTransfer
 */
export interface TransferAuthorizationProposedTransfer {
    /**
     *
     * @type {ACHClass}
     * @memberof TransferAuthorizationProposedTransfer
     */
    ach_class?: ACHClass;
    /**
     * The Plaid `account_id` for the account that will be debited or credited.
     * @type {string}
     * @memberof TransferAuthorizationProposedTransfer
     */
    account_id?: string;
    /**
     * The id of the associated funding account, available in the Plaid Dashboard. If present, this indicates which of your business checking accounts will be credited or debited.
     * @type {string}
     * @memberof TransferAuthorizationProposedTransfer
     */
    funding_account_id: string | null;
    /**
     * Plaid’s unique identifier for a Plaid Ledger Balance.
     * @type {string}
     * @memberof TransferAuthorizationProposedTransfer
     */
    ledger_id?: string | null;
    /**
     *
     * @type {TransferType}
     * @memberof TransferAuthorizationProposedTransfer
     */
    type: TransferType;
    /**
     *
     * @type {TransferUserInResponse}
     * @memberof TransferAuthorizationProposedTransfer
     */
    user: TransferUserInResponse;
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.
     * @type {string}
     * @memberof TransferAuthorizationProposedTransfer
     */
    amount: string;
    /**
     * The network or rails used for the transfer.
     * @type {string}
     * @memberof TransferAuthorizationProposedTransfer
     */
    network: string;
    /**
     *
     * @type {TransferWireDetails}
     * @memberof TransferAuthorizationProposedTransfer
     */
    wire_details?: TransferWireDetails | null;
    /**
     * Plaid\'s unique identifier for the origination account that was used for this transfer.
     * @type {string}
     * @memberof TransferAuthorizationProposedTransfer
     * @deprecated
     */
    origination_account_id: string;
    /**
     * The currency of the transfer amount. The default value is \"USD\".
     * @type {string}
     * @memberof TransferAuthorizationProposedTransfer
     */
    iso_currency_code: string;
    /**
     * The Plaid client ID that is the originator of this transfer. Only present if created on behalf of another client as a [Platform customer](https://plaid.com/docs/transfer/application/#originators-vs-platforms).
     * @type {string}
     * @memberof TransferAuthorizationProposedTransfer
     */
    originator_client_id: string | null;
    /**
     *
     * @type {TransferCreditFundsSource}
     * @memberof TransferAuthorizationProposedTransfer
     * @deprecated
     */
    credit_funds_source: TransferCreditFundsSource;
}
/**
 * Comprises five risk categories (high risk, medium-high risk, medium risk, medium-low risk, low risk) based on the probability of return
 * @export
 * @enum {string}
 */
export declare enum TransferAuthorizationRiskLevel {
    HighRisk = "HIGH_RISK",
    MediumHighRisk = "MEDIUM_HIGH_RISK",
    MediumRisk = "MEDIUM_RISK",
    MediumLowRisk = "MEDIUM_LOW_RISK",
    LowRisk = "LOW_RISK"
}
/**
 * The legal name and other information for the account holder.  If the account has multiple account holders, provide the information for the account holder on whose behalf the authorization is being requested. The `user.legal_name` field is required. Other fields are not currently used and are present to support planned future functionality.
 * @export
 * @interface TransferAuthorizationUserInRequest
 */
export interface TransferAuthorizationUserInRequest {
    /**
     * The user\'s legal name. If the user is a business, provide the business name.
     * @type {string}
     * @memberof TransferAuthorizationUserInRequest
     */
    legal_name: string;
    /**
     * The user\'s phone number.
     * @type {string}
     * @memberof TransferAuthorizationUserInRequest
     */
    phone_number?: string;
    /**
     * The user\'s email address.
     * @type {string}
     * @memberof TransferAuthorizationUserInRequest
     */
    email_address?: string;
    /**
     *
     * @type {TransferUserAddressInRequest}
     * @memberof TransferAuthorizationUserInRequest
     */
    address?: TransferUserAddressInRequest;
}
/**
 * Information about the balance held with Plaid.
 * @export
 * @interface TransferBalance
 */
export interface TransferBalance {
    /**
     * The amount of this balance available for use (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferBalance
     */
    available: string;
    /**
     * The available balance, plus amount of pending funds that in processing (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferBalance
     */
    current?: string;
    /**
     *
     * @type {TransferBalanceType}
     * @memberof TransferBalance
     */
    type: TransferBalanceType;
}
/**
 * Defines the request schema for `/transfer/balance/get`
 * @export
 * @interface TransferBalanceGetRequest
 */
export interface TransferBalanceGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferBalanceGetRequest
     */
    client_id?: string;
    /**
     * Client ID of the end customer.
     * @type {string}
     * @memberof TransferBalanceGetRequest
     * @deprecated
     */
    originator_client_id?: string | null;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferBalanceGetRequest
     */
    secret?: string;
    /**
     *
     * @type {TransferBalanceType}
     * @memberof TransferBalanceGetRequest
     */
    type?: TransferBalanceType;
}
/**
 * Defines the response schema for `/transfer/balance/get`
 * @export
 * @interface TransferBalanceGetResponse
 */
export interface TransferBalanceGetResponse {
    /**
     *
     * @type {TransferBalance}
     * @memberof TransferBalanceGetResponse
     */
    balance: TransferBalance;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferBalanceGetResponse
     */
    request_id: string;
}
/**
 * The type of balance.  `prefunded_rtp_credits` - Your prefunded RTP credit balance with Plaid `prefunded_ach_credits` - Your prefunded ACH credit balance with Plaid
 * @export
 * @enum {string}
 */
export declare enum TransferBalanceType {
    RtpCredits = "prefunded_rtp_credits",
    AchCredits = "prefunded_ach_credits"
}
/**
 * Defines the request schema for `/transfer/cancel`
 * @export
 * @interface TransferCancelRequest
 */
export interface TransferCancelRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferCancelRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferCancelRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a transfer.
     * @type {string}
     * @memberof TransferCancelRequest
     */
    transfer_id: string;
    /**
     * The Plaid client ID of the transfer originator. Should only be present if `client_id` is a third-party sender (TPS).
     * @type {string}
     * @memberof TransferCancelRequest
     * @deprecated
     */
    originator_client_id?: string | null;
}
/**
 * Defines the response schema for `/transfer/cancel`
 * @export
 * @interface TransferCancelResponse
 */
export interface TransferCancelResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferCancelResponse
     */
    request_id: string;
}
/**
 * Contains the supported service types in RTP
 * @export
 * @interface TransferCapabilitiesGetRTP
 */
export interface TransferCapabilitiesGetRTP {
    /**
     * When `true`, the linked Item\'s institution supports RTP credit transfer.
     * @type {boolean}
     * @memberof TransferCapabilitiesGetRTP
     */
    credit?: boolean;
}
/**
 * Defines the request schema for `/transfer/capabilities/get`
 * @export
 * @interface TransferCapabilitiesGetRequest
 */
export interface TransferCapabilitiesGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferCapabilitiesGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferCapabilitiesGetRequest
     */
    secret?: string;
    /**
     * The Plaid `access_token` for the account that will be debited or credited.
     * @type {string}
     * @memberof TransferCapabilitiesGetRequest
     */
    access_token: string;
    /**
     * The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
     * @type {string}
     * @memberof TransferCapabilitiesGetRequest
     */
    account_id: string;
    /**
     * A payment profile token associated with the Payment Profile data that is being requested.
     * @type {string}
     * @memberof TransferCapabilitiesGetRequest
     */
    payment_profile_token?: string;
}
/**
 * Defines the response schema for `/transfer/capabilities/get`
 * @export
 * @interface TransferCapabilitiesGetResponse
 */
export interface TransferCapabilitiesGetResponse {
    /**
     *
     * @type {InstitutionSupportedNetworks}
     * @memberof TransferCapabilitiesGetResponse
     */
    institution_supported_networks: InstitutionSupportedNetworks;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferCapabilitiesGetResponse
     */
    request_id: string;
}
/**
 * Contains the supported service types in RfP
 * @export
 * @interface TransferCapabilitiesGetRfP
 */
export interface TransferCapabilitiesGetRfP {
    /**
     * When `true`, the linked Item\'s institution supports RfP debit transfer.
     * @type {boolean}
     * @memberof TransferCapabilitiesGetRfP
     */
    debit?: boolean;
}
/**
 * Defines the request schema for `/transfer/configuration/get`
 * @export
 * @interface TransferConfigurationGetRequest
 */
export interface TransferConfigurationGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferConfigurationGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferConfigurationGetRequest
     */
    secret?: string;
    /**
     * The Plaid client ID of the transfer originator. Should only be present if `client_id` is a [Platform customer](https://plaid.com/docs/transfer/application/#originators-vs-platforms).
     * @type {string}
     * @memberof TransferConfigurationGetRequest
     */
    originator_client_id?: string | null;
}
/**
 * Defines the response schema for `/transfer/configuration/get`
 * @export
 * @interface TransferConfigurationGetResponse
 */
export interface TransferConfigurationGetResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferConfigurationGetResponse
     */
    request_id: string;
    /**
     * The max limit of dollar amount of a single transfer (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferConfigurationGetResponse
     * @deprecated
     */
    max_single_transfer_amount: string;
    /**
     * The max limit of dollar amount of a single credit transfer (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferConfigurationGetResponse
     */
    max_single_transfer_credit_amount: string;
    /**
     * The max limit of dollar amount of a single debit transfer (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferConfigurationGetResponse
     */
    max_single_transfer_debit_amount: string;
    /**
     * The max limit of sum of dollar amount of credit transfers in last 24 hours (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferConfigurationGetResponse
     */
    max_daily_credit_amount: string;
    /**
     * The max limit of sum of dollar amount of debit transfers in last 24 hours (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferConfigurationGetResponse
     */
    max_daily_debit_amount: string;
    /**
     * The max limit of sum of dollar amount of credit and debit transfers in one calendar month (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferConfigurationGetResponse
     * @deprecated
     */
    max_monthly_amount: string;
    /**
     * The max limit of sum of dollar amount of credit transfers in one calendar month (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferConfigurationGetResponse
     */
    max_monthly_credit_amount: string;
    /**
     * The max limit of sum of dollar amount of debit transfers in one calendar month (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferConfigurationGetResponse
     */
    max_monthly_debit_amount: string;
    /**
     * The currency of the dollar amount, e.g. \"USD\".
     * @type {string}
     * @memberof TransferConfigurationGetResponse
     */
    iso_currency_code: string;
}
/**
 * Defines the request schema for `/transfer/create`
 * @export
 * @interface TransferCreateRequest
 */
export interface TransferCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferCreateRequest
     */
    secret?: string;
    /**
     * Deprecated. `authorization_id` is now used as idempotency instead.  A random key provided by the client, per unique transfer. Maximum of 50 characters.  The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a transfer fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single transfer is created.
     * @type {string}
     * @memberof TransferCreateRequest
     * @deprecated
     */
    idempotency_key?: string;
    /**
     * The Plaid `access_token` for the account that will be debited or credited.
     * @type {string}
     * @memberof TransferCreateRequest
     */
    access_token: string;
    /**
     * The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
     * @type {string}
     * @memberof TransferCreateRequest
     */
    account_id: string;
    /**
     * Plaid’s unique identifier for a transfer authorization. This parameter also serves the purpose of acting as an idempotency identifier.
     * @type {string}
     * @memberof TransferCreateRequest
     */
    authorization_id: string;
    /**
     *
     * @type {TransferType}
     * @memberof TransferCreateRequest
     * @deprecated
     */
    type?: TransferType;
    /**
     *
     * @type {TransferNetwork}
     * @memberof TransferCreateRequest
     * @deprecated
     */
    network?: TransferNetwork;
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.
     * @type {string}
     * @memberof TransferCreateRequest
     */
    amount?: string;
    /**
     * The transfer description. Maximum of 15 characters. If reprocessing a returned transfer, please note that the `description` field must be `\"Retry 1\"` or `\"Retry 2\"` to indicate that it\'s a retry of a previously returned transfer. You may retry a transfer up to 2 times, within 180 days of creating the original transfer. Only transfers that were returned with code `R01` or `R09` may be retried. For a full listing of ACH return codes, see [Transfer errors](https://plaid.com/docs/errors/transfer/#ach-return-codes).
     * @type {string}
     * @memberof TransferCreateRequest
     */
    description: string;
    /**
     *
     * @type {ACHClass}
     * @memberof TransferCreateRequest
     * @deprecated
     */
    ach_class?: ACHClass;
    /**
     *
     * @type {TransferUserInRequestDeprecated}
     * @memberof TransferCreateRequest
     * @deprecated
     */
    user?: TransferUserInRequestDeprecated | null;
    /**
     * The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply: The JSON values must be Strings (no nested JSON objects allowed) Only ASCII characters may be used Maximum of 50 key/value pairs Maximum key length of 40 characters Maximum value length of 500 characters
     * @type {{ [key: string]: string; }}
     * @memberof TransferCreateRequest
     */
    metadata?: {
        [key: string]: string;
    } | null;
    /**
     * Plaid’s unique identifier for the origination account for this transfer. If you have more than one origination account, this value must be specified. Otherwise, this field should be left blank.
     * @type {string}
     * @memberof TransferCreateRequest
     * @deprecated
     */
    origination_account_id?: string | null;
    /**
     * The currency of the transfer amount. The default value is \"USD\".
     * @type {string}
     * @memberof TransferCreateRequest
     * @deprecated
     */
    iso_currency_code?: string;
    /**
     * Plaid’s unique identifier for a test clock. This field may only be used when using `sandbox` environment. If provided, the `transfer` is created at the `virtual_time` on the provided `test_clock`.
     * @type {string}
     * @memberof TransferCreateRequest
     */
    test_clock_id?: string | null;
    /**
     * The amount to deduct from `transfer.amount` and distribute to the platform’s Ledger balance as a facilitator fee (decimal string with two digits of precision e.g. \"10.00\"). The remainder will go to the end-customer’s Ledger balance. This must be less than or equal to the `transfer.amount`.
     * @type {string}
     * @memberof TransferCreateRequest
     */
    facilitator_fee?: string;
}
/**
 * Defines the response schema for `/transfer/create`
 * @export
 * @interface TransferCreateResponse
 */
export interface TransferCreateResponse {
    /**
     *
     * @type {Transfer}
     * @memberof TransferCreateResponse
     */
    transfer: Transfer;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferCreateResponse
     */
    request_id: string;
}
/**
 * This field is now deprecated. You may ignore it for transfers created on and after 12/01/2023.  Specifies the source of funds for the transfer. Only valid for `credit` transfers, and defaults to `sweep` if not specified. This field is not specified for `debit` transfers.  `sweep` - Sweep funds from your funding account `prefunded_rtp_credits` - Use your prefunded RTP credit balance with Plaid `prefunded_ach_credits` - Use your prefunded ACH credit balance with Plaid
 * @export
 * @enum {string}
 */
export declare enum TransferCreditFundsSource {
    Sweep = "sweep",
    PrefundedRtpCredits = "prefunded_rtp_credits",
    PrefundedAchCredits = "prefunded_ach_credits",
    Null = "null"
}
/**
 * Specifies the originator\'s expected usage of credits. For all dollar amounts, use a decimal string with two digits of precision e.g. \"10.00\". This field is required if the originator is expected to process credit transfers.
 * @export
 * @interface TransferCreditUsageConfiguration
 */
export interface TransferCreditUsageConfiguration {
    /**
     *
     * @type {OriginatorExpectedTransferFrequency}
     * @memberof TransferCreditUsageConfiguration
     */
    expected_frequency: OriginatorExpectedTransferFrequency;
    /**
     * The originator’s expected highest amount for a single credit transfer.
     * @type {string}
     * @memberof TransferCreditUsageConfiguration
     */
    expected_highest_amount: string;
    /**
     * The originator’s expected average amount per credit.
     * @type {string}
     * @memberof TransferCreditUsageConfiguration
     */
    expected_average_amount: string;
    /**
     * The originator’s monthly expected ACH credit processing amount for the next 6-12 months.
     * @type {string}
     * @memberof TransferCreditUsageConfiguration
     */
    expected_monthly_amount: string;
    /**
     * Specifies the expected use cases for the originator’s credit transfers. This should be a list that contains one or more of the following codes:  `\"ccd\"` - Corporate Credit or Debit - fund transfer between two corporate bank accounts  `\"ppd\"` - Prearranged Payment or Deposit - the transfer is part of a pre-existing relationship with a consumer, e.g. bill payment  `\"web\"` - A credit Entry initiated by or on behalf of a holder of a Consumer Account that is intended for a Consumer Account of a Receiver
     * @type {Array<CreditACHClass>}
     * @memberof TransferCreditUsageConfiguration
     */
    sec_codes: Array<CreditACHClass>;
}
/**
 * Specifies the originator\'s expected usage of debits. For all dollar amounts, use a decimal string with two digits of precision e.g. \"10.00\". This field is required if the originator is expected to process debit transfers.
 * @export
 * @interface TransferDebitUsageConfiguration
 */
export interface TransferDebitUsageConfiguration {
    /**
     *
     * @type {OriginatorExpectedTransferFrequency}
     * @memberof TransferDebitUsageConfiguration
     */
    expected_frequency: OriginatorExpectedTransferFrequency;
    /**
     * The originator’s expected highest amount for a single debit transfer.
     * @type {string}
     * @memberof TransferDebitUsageConfiguration
     */
    expected_highest_amount: string;
    /**
     * The originator’s expected average amount per debit.
     * @type {string}
     * @memberof TransferDebitUsageConfiguration
     */
    expected_average_amount: string;
    /**
     * The originator’s monthly expected ACH debit processing amount for the next 6-12 months.
     * @type {string}
     * @memberof TransferDebitUsageConfiguration
     */
    expected_monthly_amount: string;
    /**
     * Specifies the expected use cases for the originator’s debit transfers. This should be a list that contains one or more of the following codes:  `\"ccd\"` - Corporate Credit or Debit - fund transfer between two corporate bank accounts  `\"ppd\"` - Prearranged Payment or Deposit - the transfer is part of a pre-existing relationship with a consumer, eg. bill payment  `\"tel\"` - Telephone-Initiated Entry  `\"web\"` - Internet-Initiated Entry - debits from a consumer’s account where their authorization is obtained over the Internet
     * @type {Array<ACHClass>}
     * @memberof TransferDebitUsageConfiguration
     */
    sec_codes: Array<ACHClass>;
}
/**
 * Information about the device being used to initiate the authorization.
 * @export
 * @interface TransferDevice
 */
export interface TransferDevice {
    /**
     * The IP address of the device being used to initiate the authorization.
     * @type {string}
     * @memberof TransferDevice
     */
    ip_address: string;
    /**
     * The user agent of the device being used to initiate the authorization.
     * @type {string}
     * @memberof TransferDevice
     */
    user_agent: string;
}
/**
 * Defines the request schema for `/transfer/diligence/document/upload`
 * @export
 * @interface TransferDiligenceDocumentUploadRequest
 */
export interface TransferDiligenceDocumentUploadRequest {
    /**
     * The Client ID of the originator whose document that you want to upload.
     * @type {string}
     * @memberof TransferDiligenceDocumentUploadRequest
     */
    originator_client_id: string;
    /**
     * A file to upload. The file size must be less than 20MB. Supported file extensions: .pdf.
     * @type {any}
     * @memberof TransferDiligenceDocumentUploadRequest
     */
    file: any;
    /**
     *
     * @type {TransferDocumentPurpose}
     * @memberof TransferDiligenceDocumentUploadRequest
     */
    purpose: TransferDocumentPurpose;
}
/**
 * Defines the response schema for `/transfer/diligence/document/upload`
 * @export
 * @interface TransferDiligenceDocumentUploadResponse
 */
export interface TransferDiligenceDocumentUploadResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferDiligenceDocumentUploadResponse
     */
    request_id: string;
}
/**
 * Originator’s diligence status.
 * @export
 * @enum {string}
 */
export declare enum TransferDiligenceStatus {
    NotSubmitted = "not_submitted",
    Submitted = "submitted",
    UnderReview = "under_review",
    Approved = "approved",
    Denied = "denied",
    MoreInformationRequired = "more_information_required"
}
/**
 * Defines the request schema for `/transfer/diligence/submit`
 * @export
 * @interface TransferDiligenceSubmitRequest
 */
export interface TransferDiligenceSubmitRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferDiligenceSubmitRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferDiligenceSubmitRequest
     */
    secret?: string;
    /**
     * Client ID of the the originator whose diligence that you want to submit.
     * @type {string}
     * @memberof TransferDiligenceSubmitRequest
     */
    originator_client_id: string;
    /**
     *
     * @type {TransferOriginatorDiligence}
     * @memberof TransferDiligenceSubmitRequest
     */
    originator_diligence: TransferOriginatorDiligence;
}
/**
 * Defines the response schema for `/transfer/diligence/submit`
 * @export
 * @interface TransferDiligenceSubmitResponse
 */
export interface TransferDiligenceSubmitResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferDiligenceSubmitResponse
     */
    request_id: string;
}
/**
 * Specifies the purpose of the uploaded file.  `\"DUE_DILIGENCE\"` - The transfer due diligence document of the originator.
 * @export
 * @enum {string}
 */
export declare enum TransferDocumentPurpose {
    DueDiligence = "DUE_DILIGENCE"
}
/**
 * Represents an event in the Transfers API.
 * @export
 * @interface TransferEvent
 */
export interface TransferEvent {
    /**
     * Plaid’s unique identifier for this event. IDs are sequential unsigned 64-bit integers.
     * @type {number}
     * @memberof TransferEvent
     */
    event_id: number;
    /**
     * The datetime when this event occurred. This will be of the form `2006-01-02T15:04:05Z`.
     * @type {string}
     * @memberof TransferEvent
     */
    timestamp: string;
    /**
     *
     * @type {TransferEventType}
     * @memberof TransferEvent
     */
    event_type: TransferEventType;
    /**
     * The account ID associated with the transfer. This field is omitted for Plaid Ledger Sweep events.
     * @type {string}
     * @memberof TransferEvent
     */
    account_id?: string;
    /**
     * The id of the associated funding account, available in the Plaid Dashboard. If present, this indicates which of your business checking accounts will be credited or debited.
     * @type {string}
     * @memberof TransferEvent
     */
    funding_account_id: string | null;
    /**
     * Plaid’s unique identifier for a Plaid Ledger Balance.
     * @type {string}
     * @memberof TransferEvent
     */
    ledger_id?: string | null;
    /**
     * Plaid’s unique identifier for a transfer. This field is `null` for Plaid Ledger Sweep events.
     * @type {string}
     * @memberof TransferEvent
     */
    transfer_id: string;
    /**
     * The ID of the origination account that this balance belongs to.
     * @type {string}
     * @memberof TransferEvent
     * @deprecated
     */
    origination_account_id: string | null;
    /**
     *
     * @type {OmittableTransferType}
     * @memberof TransferEvent
     */
    transfer_type?: OmittableTransferType;
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). This field is omitted for Plaid Ledger Sweep events.
     * @type {string}
     * @memberof TransferEvent
     */
    transfer_amount?: string;
    /**
     *
     * @type {TransferFailure}
     * @memberof TransferEvent
     */
    failure_reason: TransferFailure | null;
    /**
     * Plaid’s unique identifier for a sweep.
     * @type {string}
     * @memberof TransferEvent
     */
    sweep_id: string | null;
    /**
     * A signed amount of how much was `swept` or `return_swept` for this transfer (decimal string with two digits of precision e.g. \"-5.50\").
     * @type {string}
     * @memberof TransferEvent
     */
    sweep_amount: string | null;
    /**
     * Plaid’s unique identifier for a refund. A non-null value indicates the event is for the associated refund of the transfer.
     * @type {string}
     * @memberof TransferEvent
     */
    refund_id: string | null;
    /**
     * The Plaid client ID that is the originator of the transfer that this event applies to. Only present if the transfer was created on behalf of another client as a third-party sender (TPS).
     * @type {string}
     * @memberof TransferEvent
     */
    originator_client_id: string | null;
}
/**
 * Defines the request schema for `/transfer/event/list`
 * @export
 * @interface TransferEventListRequest
 */
export interface TransferEventListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferEventListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferEventListRequest
     */
    secret?: string;
    /**
     * The start datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof TransferEventListRequest
     */
    start_date?: string | null;
    /**
     * The end datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof TransferEventListRequest
     */
    end_date?: string | null;
    /**
     * Plaid’s unique identifier for a transfer.
     * @type {string}
     * @memberof TransferEventListRequest
     */
    transfer_id?: string | null;
    /**
     * The account ID to get events for all transactions to/from an account.
     * @type {string}
     * @memberof TransferEventListRequest
     */
    account_id?: string | null;
    /**
     *
     * @type {TransferEventListTransferType}
     * @memberof TransferEventListRequest
     */
    transfer_type?: TransferEventListTransferType | null;
    /**
     * Filter events by event type.
     * @type {Array<TransferEventType>}
     * @memberof TransferEventListRequest
     */
    event_types?: Array<TransferEventType>;
    /**
     * Plaid’s unique identifier for a sweep.
     * @type {string}
     * @memberof TransferEventListRequest
     */
    sweep_id?: string;
    /**
     * The maximum number of transfer events to return. If the number of events matching the above parameters is greater than `count`, the most recent events will be returned.
     * @type {number}
     * @memberof TransferEventListRequest
     */
    count?: number | null;
    /**
     * The offset into the list of transfer events. When `count`=25 and `offset`=0, the first 25 events will be returned. When `count`=25 and `offset`=25, the next 25 events will be returned.
     * @type {number}
     * @memberof TransferEventListRequest
     */
    offset?: number | null;
    /**
     * The origination account ID to get events for transfers from a specific origination account.
     * @type {string}
     * @memberof TransferEventListRequest
     * @deprecated
     */
    origination_account_id?: string | null;
    /**
     * Filter transfer events to only those with the specified originator client.
     * @type {string}
     * @memberof TransferEventListRequest
     */
    originator_client_id?: string | null;
    /**
     * Filter transfer events to only those with the specified `funding_account_id`.
     * @type {string}
     * @memberof TransferEventListRequest
     */
    funding_account_id?: string | null;
}
/**
 * Defines the response schema for `/transfer/event/list`
 * @export
 * @interface TransferEventListResponse
 */
export interface TransferEventListResponse {
    /**
     *
     * @type {Array<TransferEvent>}
     * @memberof TransferEventListResponse
     */
    transfer_events: Array<TransferEvent>;
    /**
     * Whether there are more events to be pulled from the endpoint that have not already been returned
     * @type {boolean}
     * @memberof TransferEventListResponse
     */
    has_more: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferEventListResponse
     */
    request_id: string;
}
/**
 * The type of transfer. This will be either `debit` or `credit`.  A `debit` indicates a transfer of money into your origination account; a `credit` indicates a transfer of money out of your origination account.
 * @export
 * @enum {string}
 */
export declare enum TransferEventListTransferType {
    Debit = "debit",
    Credit = "credit",
    Null = "null"
}
/**
 * Defines the request schema for `/transfer/event/sync`
 * @export
 * @interface TransferEventSyncRequest
 */
export interface TransferEventSyncRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferEventSyncRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferEventSyncRequest
     */
    secret?: string;
    /**
     * The latest (largest) `event_id` fetched via the sync endpoint, or 0 initially.
     * @type {number}
     * @memberof TransferEventSyncRequest
     */
    after_id: number;
    /**
     * The maximum number of transfer events to return.
     * @type {number}
     * @memberof TransferEventSyncRequest
     */
    count?: number | null;
}
/**
 * Defines the response schema for `/transfer/event/sync`
 * @export
 * @interface TransferEventSyncResponse
 */
export interface TransferEventSyncResponse {
    /**
     *
     * @type {Array<TransferEvent>}
     * @memberof TransferEventSyncResponse
     */
    transfer_events: Array<TransferEvent>;
    /**
     * Whether there are more events to be pulled from the endpoint that have not already been returned
     * @type {boolean}
     * @memberof TransferEventSyncResponse
     */
    has_more: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferEventSyncResponse
     */
    request_id: string;
}
/**
 * The type of event that this transfer represents. Event types with prefix `sweep` represents events for Plaid Ledger sweeps.  `pending`: A new transfer was created; it is in the pending state.  `cancelled`: The transfer was cancelled by the client.  `failed`: The transfer failed, no funds were moved.  `posted`: The transfer has been successfully submitted to the payment network.  `settled`: The transfer has been successfully completed by the payment network.  `funds_available`: Funds from the transfer have been released from hold and applied to the ledger\'s available balance. (Only applicable to ACH debits.)  `returned`: A posted transfer was returned.  `swept`: The transfer was swept to / from the sweep account.  `swept_settled`: Credits are available to be withdrawn or debits have been deducted from the customer’s business checking account.  `return_swept`: Due to the transfer being returned, funds were pulled from or pushed back to the sweep account.  `sweep.pending`: A new ledger sweep was created; it is in the pending state.  `sweep.posted`: The ledger sweep has been successfully submitted to the payment network.  `sweep.settled`: The transaction has settled in the funding account. This means that funds withdrawn from Plaid Ledger balance have reached the funding account, or funds to be deposited into the Plaid Ledger Balance have been pulled, and the hold period has begun.  `sweep.returned`: A posted ledger sweep was returned.  `sweep.failed`: The ledger sweep failed, no funds were moved.  `sweep.funds_available`: Funds from the ledger sweep have been released from hold and applied to the ledger\'s available balance. This is only applicable to debits.  `refund.pending`: A new refund was created; it is in the pending state.  `refund.cancelled`: The refund was cancelled.  `refund.failed`: The refund failed, no funds were moved.  `refund.posted`: The refund has been successfully submitted to the payment network.  `refund.settled`: The refund transaction has settled in the Plaid linked account.  `refund.returned`: A posted refund was returned.  `refund.swept`: The refund was swept from the sweep account.  `refund.return_swept`: Due to the refund being returned, funds were pushed back to the sweep account.
 * @export
 * @enum {string}
 */
export declare enum TransferEventType {
    Pending = "pending",
    Cancelled = "cancelled",
    Failed = "failed",
    Posted = "posted",
    Settled = "settled",
    FundsAvailable = "funds_available",
    Returned = "returned",
    Swept = "swept",
    SweptSettled = "swept_settled",
    ReturnSwept = "return_swept",
    SweepPending = "sweep.pending",
    SweepPosted = "sweep.posted",
    SweepSettled = "sweep.settled",
    SweepReturned = "sweep.returned",
    SweepFailed = "sweep.failed",
    SweepFundsAvailable = "sweep.funds_available",
    RefundPending = "refund.pending",
    RefundCancelled = "refund.cancelled",
    RefundFailed = "refund.failed",
    RefundPosted = "refund.posted",
    RefundSettled = "refund.settled",
    RefundReturned = "refund.returned",
    RefundSwept = "refund.swept",
    RefundReturnSwept = "refund.return_swept"
}
/**
 * Fired when new transfer events are available. Receiving this webhook indicates you should fetch the new events from `/transfer/event/sync`. If multiple transfer events occur within a single minute, only one webhook will be fired, so a single webhook instance may correspond to multiple transfer events.
 * @export
 * @interface TransferEventsUpdateWebhook
 */
export interface TransferEventsUpdateWebhook {
    /**
     * `TRANSFER`
     * @type {string}
     * @memberof TransferEventsUpdateWebhook
     */
    webhook_type: string;
    /**
     * `TRANSFER_EVENTS_UPDATE`
     * @type {string}
     * @memberof TransferEventsUpdateWebhook
     */
    webhook_code: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof TransferEventsUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Defines an expected sweep date and amount.
 * @export
 * @interface TransferExpectedSweepSettlementScheduleItem
 */
export interface TransferExpectedSweepSettlementScheduleItem {
    /**
     * The settlement date of a sweep for this transfer.
     * @type {string}
     * @memberof TransferExpectedSweepSettlementScheduleItem
     */
    sweep_settlement_date: string;
    /**
     * The accumulated amount that has been swept by `sweep_settlement_date`.
     * @type {string}
     * @memberof TransferExpectedSweepSettlementScheduleItem
     */
    swept_settled_amount: string;
}
/**
 * The failure reason if the event type for a transfer is `\"failed\"` or `\"returned\"`. Null value otherwise.
 * @export
 * @interface TransferFailure
 */
export interface TransferFailure {
    /**
     * The failure code, e.g. `R01`.  A failure code will be provided if and only if the transfer status is `returned`. See [ACH return codes](https://plaid.com/docs/errors/transfer/#ach-return-codes) for a full listing of ACH return codes and [RTP error codes](https://plaid.com/docs/errors/transfer/#rtp-error-codes) for RTP error codes.
     * @type {string}
     * @memberof TransferFailure
     */
    failure_code?: string | null;
    /**
     * The ACH return code, e.g. `R01`.  A return code will be provided if and only if the transfer status is `returned`. For a full listing of ACH return codes, see [Transfer errors](https://plaid.com/docs/errors/transfer/#ach-return-codes).
     * @type {string}
     * @memberof TransferFailure
     * @deprecated
     */
    ach_return_code?: string | null;
    /**
     * A human-readable description of the reason for the failure or reversal.
     * @type {string}
     * @memberof TransferFailure
     */
    description?: string;
}
/**
 * The originator\'s funding account, linked with Plaid Link or `/transfer/migrate_account`.
 * @export
 * @interface TransferFundingAccount
 */
export interface TransferFundingAccount {
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof TransferFundingAccount
     */
    access_token: string;
    /**
     * The Plaid `account_id` for the newly created Item.
     * @type {string}
     * @memberof TransferFundingAccount
     */
    account_id: string;
}
/**
 * Defines the request schema for `/transfer/get`
 * @export
 * @interface TransferGetRequest
 */
export interface TransferGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferGetRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a transfer.
     * @type {string}
     * @memberof TransferGetRequest
     */
    transfer_id?: string;
    /**
     * Plaid’s unique identifier for a transfer authorization.
     * @type {string}
     * @memberof TransferGetRequest
     */
    authorization_id?: string;
    /**
     * The Plaid client ID of the transfer originator. Should only be present if `client_id` is a third-party sender (TPS).
     * @type {string}
     * @memberof TransferGetRequest
     * @deprecated
     */
    originator_client_id?: string | null;
}
/**
 * Defines the response schema for `/transfer/get`
 * @export
 * @interface TransferGetResponse
 */
export interface TransferGetResponse {
    /**
     *
     * @type {Transfer}
     * @memberof TransferGetResponse
     */
    transfer: Transfer;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferGetResponse
     */
    request_id: string;
}
/**
 *  A decision regarding the proposed transfer.  `APPROVED` – The proposed transfer has received the end user\'s consent and has been approved for processing by Plaid. The `decision_rationale` field is set if Plaid was unable to fetch the account information. You may proceed with the transfer, but further review is recommended (i.e., use Link in update mode to re-authenticate your user when `decision_rationale.code` is `ITEM_LOGIN_REQUIRED`). Refer to the `code` field in the `decision_rationale` object for details.  `DECLINED` – Plaid reviewed the proposed transfer and declined processing. Refer to the `code` field in the `decision_rationale` object for details.
 * @export
 * @enum {string}
 */
export declare enum TransferIntentAuthorizationDecision {
    Approved = "APPROVED",
    Declined = "DECLINED"
}
/**
 * Represents a transfer intent within Transfer UI.
 * @export
 * @interface TransferIntentCreate
 */
export interface TransferIntentCreate {
    /**
     * Plaid\'s unique identifier for the transfer intent object.
     * @type {string}
     * @memberof TransferIntentCreate
     */
    id: string;
    /**
     * The datetime the transfer was created. This will be of the form `2006-01-02T15:04:05Z`.
     * @type {string}
     * @memberof TransferIntentCreate
     */
    created: string;
    /**
     *
     * @type {TransferIntentStatus}
     * @memberof TransferIntentCreate
     */
    status: TransferIntentStatus;
    /**
     * The Plaid `account_id` corresponding to the end-user account that will be debited or credited. Returned only if `account_id` was set on intent creation.
     * @type {string}
     * @memberof TransferIntentCreate
     */
    account_id?: string | null;
    /**
     * Plaid’s unique identifier for the origination account for the intent. If not provided, the default account will be used.
     * @type {string}
     * @memberof TransferIntentCreate
     * @deprecated
     */
    origination_account_id: string;
    /**
     * The id of the funding account to use, available in the Plaid Dashboard. This determines which of your business checking accounts will be credited or debited.
     * @type {string}
     * @memberof TransferIntentCreate
     */
    funding_account_id: string;
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.
     * @type {string}
     * @memberof TransferIntentCreate
     */
    amount: string;
    /**
     *
     * @type {TransferIntentCreateMode}
     * @memberof TransferIntentCreate
     */
    mode: TransferIntentCreateMode;
    /**
     *
     * @type {TransferIntentCreateNetwork}
     * @memberof TransferIntentCreate
     */
    network?: TransferIntentCreateNetwork;
    /**
     *
     * @type {ACHClass}
     * @memberof TransferIntentCreate
     */
    ach_class?: ACHClass;
    /**
     *
     * @type {TransferUserInResponse}
     * @memberof TransferIntentCreate
     */
    user: TransferUserInResponse;
    /**
     * A description for the underlying transfer. Maximum of 8 characters.
     * @type {string}
     * @memberof TransferIntentCreate
     */
    description: string;
    /**
     * The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply: The JSON values must be Strings (no nested JSON objects allowed) Only ASCII characters may be used Maximum of 50 key/value pairs Maximum key length of 40 characters Maximum value length of 500 characters
     * @type {{ [key: string]: string; }}
     * @memberof TransferIntentCreate
     */
    metadata?: {
        [key: string]: string;
    } | null;
    /**
     * The currency of the transfer amount, e.g. \"USD\"
     * @type {string}
     * @memberof TransferIntentCreate
     */
    iso_currency_code: string;
    /**
     * When `true`, the transfer requires a `GUARANTEED` decision by Plaid to proceed (Guarantee customers only).
     * @type {boolean}
     * @memberof TransferIntentCreate
     */
    require_guarantee?: boolean | null;
}
/**
 * The direction of the flow of transfer funds.  `PAYMENT`: Transfers funds from an end user\'s account to your business account.  `DISBURSEMENT`: Transfers funds from your business account to an end user\'s account.
 * @export
 * @enum {string}
 */
export declare enum TransferIntentCreateMode {
    Payment = "PAYMENT",
    Disbursement = "DISBURSEMENT"
}
/**
 * The network or rails used for the transfer. Defaults to `same-day-ach`.  For transfers submitted using `ach`, the next-day cutoff is 8:30 PM Eastern Time.  For transfers submitted using `same-day-ach`, the same-day cutoff is 3:30 PM Eastern Time. If the transfer is submitted after this cutoff but before the next-day cutoff, it will be sent over next-day rails and will not incur same-day charges.  For transfers submitted using `rtp`, in the case that the account being credited does not support RTP, the transfer will be sent over ACH as long as an `ach_class` is provided in the request. If RTP isn\'t supported by the account and no `ach_class` is provided, the transfer will fail to be submitted.
 * @export
 * @enum {string}
 */
export declare enum TransferIntentCreateNetwork {
    Ach = "ach",
    SameDayAch = "same-day-ach",
    Rtp = "rtp"
}
/**
 * Defines the request schema for `/transfer/intent/create`
 * @export
 * @interface TransferIntentCreateRequest
 */
export interface TransferIntentCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferIntentCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferIntentCreateRequest
     */
    secret?: string;
    /**
     * The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
     * @type {string}
     * @memberof TransferIntentCreateRequest
     */
    account_id?: string | null;
    /**
     * Specify the account used to fund the transfer. Should be specified if using legacy funding methods only. If using Plaid Ledger, leave this field blank. Customers can find a list of `funding_account_id`s in the Accounts page of your Plaid Dashboard, under the \"Account ID\" column. If this field is left blank and you are using legacy funding methods, this will default to the default `funding_account_id` specified during onboarding. Otherwise, Plaid Ledger will be used.
     * @type {string}
     * @memberof TransferIntentCreateRequest
     */
    funding_account_id?: string | null;
    /**
     *
     * @type {TransferIntentCreateMode}
     * @memberof TransferIntentCreateRequest
     */
    mode: TransferIntentCreateMode;
    /**
     *
     * @type {TransferIntentCreateNetwork}
     * @memberof TransferIntentCreateRequest
     */
    network?: TransferIntentCreateNetwork;
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.
     * @type {string}
     * @memberof TransferIntentCreateRequest
     */
    amount: string;
    /**
     * A description for the underlying transfer. Maximum of 15 characters.
     * @type {string}
     * @memberof TransferIntentCreateRequest
     */
    description: string;
    /**
     *
     * @type {ACHClass}
     * @memberof TransferIntentCreateRequest
     */
    ach_class?: ACHClass;
    /**
     * Plaid’s unique identifier for the origination account for the intent. If not provided, the default account will be used.
     * @type {string}
     * @memberof TransferIntentCreateRequest
     * @deprecated
     */
    origination_account_id?: string | null;
    /**
     *
     * @type {TransferUserInRequest}
     * @memberof TransferIntentCreateRequest
     */
    user: TransferUserInRequest;
    /**
     * The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply: The JSON values must be Strings (no nested JSON objects allowed) Only ASCII characters may be used Maximum of 50 key/value pairs Maximum key length of 40 characters Maximum value length of 500 characters
     * @type {{ [key: string]: string; }}
     * @memberof TransferIntentCreateRequest
     */
    metadata?: {
        [key: string]: string;
    } | null;
    /**
     * The currency of the transfer amount, e.g. \"USD\"
     * @type {string}
     * @memberof TransferIntentCreateRequest
     */
    iso_currency_code?: string;
    /**
     * When `true`, the transfer requires a `GUARANTEED` decision by Plaid to proceed (Guarantee customers only).
     * @type {boolean}
     * @memberof TransferIntentCreateRequest
     */
    require_guarantee?: boolean | null;
}
/**
 * Defines the response schema for `/transfer/intent/create`
 * @export
 * @interface TransferIntentCreateResponse
 */
export interface TransferIntentCreateResponse {
    /**
     *
     * @type {TransferIntentCreate}
     * @memberof TransferIntentCreateResponse
     */
    transfer_intent: TransferIntentCreate;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferIntentCreateResponse
     */
    request_id: string;
}
/**
 * Represents a transfer intent within Transfer UI.
 * @export
 * @interface TransferIntentGet
 */
export interface TransferIntentGet {
    /**
     * Plaid\'s unique identifier for a transfer intent object.
     * @type {string}
     * @memberof TransferIntentGet
     */
    id: string;
    /**
     * The datetime the transfer was created. This will be of the form `2006-01-02T15:04:05Z`.
     * @type {string}
     * @memberof TransferIntentGet
     */
    created: string;
    /**
     *
     * @type {TransferIntentStatus}
     * @memberof TransferIntentGet
     */
    status: TransferIntentStatus;
    /**
     * Plaid\'s unique identifier for the transfer created through the UI. Returned only if the transfer was successfully created. Null value otherwise.
     * @type {string}
     * @memberof TransferIntentGet
     */
    transfer_id: string | null;
    /**
     *
     * @type {TransferIntentGetFailureReason}
     * @memberof TransferIntentGet
     */
    failure_reason: TransferIntentGetFailureReason | null;
    /**
     *
     * @type {TransferIntentAuthorizationDecision}
     * @memberof TransferIntentGet
     */
    authorization_decision: TransferIntentAuthorizationDecision | null;
    /**
     *
     * @type {TransferAuthorizationDecisionRationale}
     * @memberof TransferIntentGet
     */
    authorization_decision_rationale: TransferAuthorizationDecisionRationale | null;
    /**
     * The Plaid `account_id` for the account that will be debited or credited. Returned only if `account_id` was set on intent creation.
     * @type {string}
     * @memberof TransferIntentGet
     */
    account_id?: string | null;
    /**
     * Plaid’s unique identifier for the origination account used for the transfer.
     * @type {string}
     * @memberof TransferIntentGet
     * @deprecated
     */
    origination_account_id: string;
    /**
     * The id of the funding account to use, available in the Plaid Dashboard. This determines which of your business checking accounts will be credited or debited.
     * @type {string}
     * @memberof TransferIntentGet
     */
    funding_account_id: string;
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.
     * @type {string}
     * @memberof TransferIntentGet
     */
    amount: string;
    /**
     *
     * @type {TransferIntentCreateMode}
     * @memberof TransferIntentGet
     */
    mode: TransferIntentCreateMode;
    /**
     *
     * @type {TransferIntentCreateNetwork}
     * @memberof TransferIntentGet
     */
    network?: TransferIntentCreateNetwork;
    /**
     *
     * @type {ACHClass}
     * @memberof TransferIntentGet
     */
    ach_class?: ACHClass;
    /**
     *
     * @type {TransferUserInResponse}
     * @memberof TransferIntentGet
     */
    user: TransferUserInResponse;
    /**
     * A description for the underlying transfer. Maximum of 8 characters.
     * @type {string}
     * @memberof TransferIntentGet
     */
    description: string;
    /**
     * The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply: The JSON values must be Strings (no nested JSON objects allowed) Only ASCII characters may be used Maximum of 50 key/value pairs Maximum key length of 40 characters Maximum value length of 500 characters
     * @type {{ [key: string]: string; }}
     * @memberof TransferIntentGet
     */
    metadata?: {
        [key: string]: string;
    } | null;
    /**
     * The currency of the transfer amount, e.g. \"USD\"
     * @type {string}
     * @memberof TransferIntentGet
     */
    iso_currency_code: string;
    /**
     * When `true`, the transfer requires a `GUARANTEED` decision by Plaid to proceed (Guarantee customers only).
     * @type {boolean}
     * @memberof TransferIntentGet
     */
    require_guarantee?: boolean | null;
    /**
     *
     * @type {TransferAuthorizationGuaranteeDecision}
     * @memberof TransferIntentGet
     */
    guarantee_decision: TransferAuthorizationGuaranteeDecision | null;
    /**
     *
     * @type {TransferAuthorizationGuaranteeDecisionRationale}
     * @memberof TransferIntentGet
     */
    guarantee_decision_rationale: TransferAuthorizationGuaranteeDecisionRationale | null;
}
/**
 * The reason for a failed transfer intent. Returned only if the transfer intent status is `failed`. Null otherwise.
 * @export
 * @interface TransferIntentGetFailureReason
 */
export interface TransferIntentGetFailureReason {
    /**
     * A broad categorization of the error.
     * @type {string}
     * @memberof TransferIntentGetFailureReason
     */
    error_type?: string;
    /**
     * A code representing the reason for a failed transfer intent (i.e., an API error or the authorization being declined).
     * @type {string}
     * @memberof TransferIntentGetFailureReason
     */
    error_code?: string;
    /**
     * A human-readable description of the code associated with a failed transfer intent.
     * @type {string}
     * @memberof TransferIntentGetFailureReason
     */
    error_message?: string;
}
/**
 * Defines the request schema for `/transfer/intent/get`
 * @export
 * @interface TransferIntentGetRequest
 */
export interface TransferIntentGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferIntentGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferIntentGetRequest
     */
    secret?: string;
    /**
     * Plaid\'s unique identifier for a transfer intent object.
     * @type {string}
     * @memberof TransferIntentGetRequest
     */
    transfer_intent_id: string;
}
/**
 * Defines the response schema for `/transfer/intent/get`
 * @export
 * @interface TransferIntentGetResponse
 */
export interface TransferIntentGetResponse {
    /**
     *
     * @type {TransferIntentGet}
     * @memberof TransferIntentGetResponse
     */
    transfer_intent: TransferIntentGet;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferIntentGetResponse
     */
    request_id: string;
}
/**
 * The status of the transfer intent.  `PENDING`: The transfer intent is pending. `SUCCEEDED`: The transfer intent was successfully created. `FAILED`: The transfer intent was unable to be created.
 * @export
 * @enum {string}
 */
export declare enum TransferIntentStatus {
    Pending = "PENDING",
    Succeeded = "SUCCEEDED",
    Failed = "FAILED"
}
/**
 * Information about the balance of the ledger held with Plaid.
 * @export
 * @interface TransferLedgerBalance
 */
export interface TransferLedgerBalance {
    /**
     * The amount of this balance available for use (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferLedgerBalance
     */
    available: string;
    /**
     * The amount of pending funds that are in processing (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferLedgerBalance
     */
    pending: string;
}
/**
 * Defines the request schema for `/transfer/ledger/deposit`
 * @export
 * @interface TransferLedgerDepositRequest
 */
export interface TransferLedgerDepositRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferLedgerDepositRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferLedgerDepositRequest
     */
    secret?: string;
    /**
     * Client ID of the customer that owns the Ledger balance. This is so Plaid knows which of your customers to payout or collect funds. Only applicable for [Platform customers](https://plaid.com/docs/transfer/application/#originators-vs-platforms). Do not include if you’re paying out to yourself.
     * @type {string}
     * @memberof TransferLedgerDepositRequest
     */
    originator_client_id?: string | null;
    /**
     * Specify which funding account to use. Customers can find a list of `funding_account_id`s in the Accounts page of the Plaid Dashboard, under the \"Account ID\" column. If this field is left blank, the funding account associated with the specified Ledger will be used. If an `originator_client_id` is specified, the `funding_account_id` must belong to the specified originator.
     * @type {string}
     * @memberof TransferLedgerDepositRequest
     */
    funding_account_id?: string | null;
    /**
     * Specify which ledger balance to deposit to. Customers can find a list of `ledger_id`s in the Accounts page of your Plaid Dashboard. If this field is left blank, this will default to id of the default ledger balance.
     * @type {string}
     * @memberof TransferLedgerDepositRequest
     */
    ledger_id?: string | null;
    /**
     * A positive amount of how much will be deposited into ledger (decimal string with two digits of precision e.g. \"5.50\").
     * @type {string}
     * @memberof TransferLedgerDepositRequest
     */
    amount: string;
    /**
     * The description of the deposit that will be passed to the receiving bank (up to 10 characters). Note that banks utilize this field differently, and may or may not show it on the bank statement.
     * @type {string}
     * @memberof TransferLedgerDepositRequest
     */
    description?: string | null;
    /**
     * A unique key provided by the client, per unique ledger deposit. Maximum of 50 characters.  The API supports idempotency for safely retrying the request without accidentally performing the same operation twice. For example, if a request to create a ledger deposit fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single deposit is created.
     * @type {string}
     * @memberof TransferLedgerDepositRequest
     */
    idempotency_key: string;
    /**
     *
     * @type {TransferACHNetwork}
     * @memberof TransferLedgerDepositRequest
     */
    network: TransferACHNetwork;
}
/**
 * Defines the response schema for `/transfer/ledger/deposit`
 * @export
 * @interface TransferLedgerDepositResponse
 */
export interface TransferLedgerDepositResponse {
    /**
     *
     * @type {TransferSweep}
     * @memberof TransferLedgerDepositResponse
     */
    sweep: TransferSweep;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferLedgerDepositResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/ledger/distribute`
 * @export
 * @interface TransferLedgerDistributeRequest
 */
export interface TransferLedgerDistributeRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferLedgerDistributeRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferLedgerDistributeRequest
     */
    secret?: string;
    /**
     * The Ledger to pull money from.
     * @type {string}
     * @memberof TransferLedgerDistributeRequest
     */
    from_ledger_id: string;
    /**
     * The Ledger to credit money to.
     * @type {string}
     * @memberof TransferLedgerDistributeRequest
     */
    to_ledger_id: string;
    /**
     * The amount to move (decimal string with two digits of precision e.g. \"10.00\"). Amount must be positive.
     * @type {string}
     * @memberof TransferLedgerDistributeRequest
     */
    amount: string;
    /**
     * A unique key provided by the client, per unique ledger distribute. Maximum of 50 characters.  The API supports idempotency for safely retrying the request without accidentally performing the same operation twice. For example, if a request to create a ledger distribute fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single distribute is created.
     * @type {string}
     * @memberof TransferLedgerDistributeRequest
     */
    idempotency_key: string;
    /**
     * An optional description for the ledger distribute operation.
     * @type {string}
     * @memberof TransferLedgerDistributeRequest
     */
    description?: string;
}
/**
 * Defines the response schema for `/transfer/ledger/distribute`
 * @export
 * @interface TransferLedgerDistributeResponse
 */
export interface TransferLedgerDistributeResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferLedgerDistributeResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/ledger/get`
 * @export
 * @interface TransferLedgerGetRequest
 */
export interface TransferLedgerGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferLedgerGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferLedgerGetRequest
     */
    secret?: string;
    /**
     * Specify which ledger balance to get. Customers can find a list of `ledger_id`s in the Accounts page of your Plaid Dashboard. If this field is left blank, this will default to id of the default ledger balance.
     * @type {string}
     * @memberof TransferLedgerGetRequest
     */
    ledger_id?: string | null;
    /**
     * Client ID of the end customer.
     * @type {string}
     * @memberof TransferLedgerGetRequest
     */
    originator_client_id?: string | null;
}
/**
 * Defines the response schema for `/transfer/ledger/get`
 * @export
 * @interface TransferLedgerGetResponse
 */
export interface TransferLedgerGetResponse {
    /**
     * The unique identifier of the Ledger that was returned.
     * @type {string}
     * @memberof TransferLedgerGetResponse
     */
    ledger_id: string;
    /**
     *
     * @type {TransferLedgerBalance}
     * @memberof TransferLedgerGetResponse
     */
    balance: TransferLedgerBalance;
    /**
     * The name of the Ledger
     * @type {string}
     * @memberof TransferLedgerGetResponse
     */
    name: string;
    /**
     * Whether this Ledger is the client\'s default ledger.
     * @type {boolean}
     * @memberof TransferLedgerGetResponse
     */
    is_default: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferLedgerGetResponse
     */
    request_id: string;
}
/**
 * The asynchronous event to be simulated. May be: `posted`, `settled`, `failed`, or `returned`.  An error will be returned if the event type is incompatible with the current ledger sweep status. Compatible status --> event type transitions include:  `sweep.pending` --> `sweep.posted`  `sweep.pending` --> `sweep.failed`  `sweep.posted` --> `sweep.settled`  `sweep.posted` --> `sweep.returned`  `sweep.settled` --> `sweep.returned`
 * @export
 * @enum {string}
 */
export declare enum TransferLedgerSweepSimulateEventType {
    Posted = "sweep.posted",
    Settled = "sweep.settled",
    Returned = "sweep.returned",
    Failed = "sweep.failed"
}
/**
 * Defines the request schema for `/transfer/ledger/withdraw`
 * @export
 * @interface TransferLedgerWithdrawRequest
 */
export interface TransferLedgerWithdrawRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferLedgerWithdrawRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferLedgerWithdrawRequest
     */
    secret?: string;
    /**
     * Client ID of the customer that owns the Ledger balance. This is so Plaid knows which of your customers to payout or collect funds. Only applicable for [Platform customers](https://plaid.com/docs/transfer/application/#originators-vs-platforms). Do not include if you’re paying out to yourself.
     * @type {string}
     * @memberof TransferLedgerWithdrawRequest
     */
    originator_client_id?: string | null;
    /**
     * Specify which funding account to use. Customers can find a list of `funding_account_id`s in the Accounts page of the Plaid Dashboard, under the \"Account ID\" column. If this field is left blank, the funding account associated with the specified Ledger will be used. If an `originator_client_id` is specified, the `funding_account_id` must belong to the specified originator.
     * @type {string}
     * @memberof TransferLedgerWithdrawRequest
     */
    funding_account_id?: string | null;
    /**
     * Specify which ledger balance to withdraw from. Customers can find a list of `ledger_id`s in the Accounts page of your Plaid Dashboard. If this field is left blank, this will default to id of the default ledger balance.
     * @type {string}
     * @memberof TransferLedgerWithdrawRequest
     */
    ledger_id?: string | null;
    /**
     * A positive amount of how much will be withdrawn from the ledger balance (decimal string with two digits of precision e.g. \"5.50\").
     * @type {string}
     * @memberof TransferLedgerWithdrawRequest
     */
    amount: string;
    /**
     * The description of the deposit that will be passed to the receiving bank (up to 10 characters). Note that banks utilize this field differently, and may or may not show it on the bank statement.
     * @type {string}
     * @memberof TransferLedgerWithdrawRequest
     */
    description?: string | null;
    /**
     * A unique key provided by the client, per unique ledger withdraw. Maximum of 50 characters.  The API supports idempotency for safely retrying the request without accidentally performing the same operation twice. For example, if a request to create a ledger withdraw fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single withdraw is created.
     * @type {string}
     * @memberof TransferLedgerWithdrawRequest
     */
    idempotency_key: string;
    /**
     *
     * @type {TransferNetwork}
     * @memberof TransferLedgerWithdrawRequest
     */
    network: TransferNetwork;
}
/**
 * Defines the response schema for `/transfer/ledger/withdraw`
 * @export
 * @interface TransferLedgerWithdrawResponse
 */
export interface TransferLedgerWithdrawResponse {
    /**
     *
     * @type {TransferSweep}
     * @memberof TransferLedgerWithdrawResponse
     */
    sweep: TransferSweep;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferLedgerWithdrawResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/list`
 * @export
 * @interface TransferListRequest
 */
export interface TransferListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferListRequest
     */
    secret?: string;
    /**
     * The start datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof TransferListRequest
     */
    start_date?: string | null;
    /**
     * The end datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof TransferListRequest
     */
    end_date?: string | null;
    /**
     * The maximum number of transfers to return.
     * @type {number}
     * @memberof TransferListRequest
     */
    count?: number;
    /**
     * The number of transfers to skip before returning results.
     * @type {number}
     * @memberof TransferListRequest
     */
    offset?: number;
    /**
     * Filter transfers to only those originated through the specified origination account.
     * @type {string}
     * @memberof TransferListRequest
     * @deprecated
     */
    origination_account_id?: string | null;
    /**
     * Filter transfers to only those with the specified originator client.
     * @type {string}
     * @memberof TransferListRequest
     */
    originator_client_id?: string | null;
    /**
     * Filter transfers to only those with the specified `funding_account_id`.
     * @type {string}
     * @memberof TransferListRequest
     */
    funding_account_id?: string | null;
}
/**
 * Defines the response schema for `/transfer/list`
 * @export
 * @interface TransferListResponse
 */
export interface TransferListResponse {
    /**
     *
     * @type {Array<Transfer>}
     * @memberof TransferListResponse
     */
    transfers: Array<Transfer>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferListResponse
     */
    request_id: string;
}
/**
 * Details regarding authorization usage.
 * @export
 * @interface TransferMetricsGetAuthorizationUsage
 */
export interface TransferMetricsGetAuthorizationUsage {
    /**
     * The daily credit utilization formatted as a decimal.
     * @type {string}
     * @memberof TransferMetricsGetAuthorizationUsage
     */
    daily_credit_utilization?: string;
    /**
     * The daily debit utilization formatted as a decimal.
     * @type {string}
     * @memberof TransferMetricsGetAuthorizationUsage
     */
    daily_debit_utilization?: string;
    /**
     * The monthly credit utilization formatted as a decimal.
     * @type {string}
     * @memberof TransferMetricsGetAuthorizationUsage
     */
    monthly_credit_utilization?: string;
    /**
     * The monthly debit utilization formatted as a decimal.
     * @type {string}
     * @memberof TransferMetricsGetAuthorizationUsage
     */
    monthly_debit_utilization?: string;
}
/**
 * Defines the request schema for `/transfer/metrics/get`
 * @export
 * @interface TransferMetricsGetRequest
 */
export interface TransferMetricsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferMetricsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferMetricsGetRequest
     */
    secret?: string;
    /**
     * The Plaid client ID of the transfer originator. Should only be present if `client_id` is a [Platform customer](https://plaid.com/docs/transfer/application/#originators-vs-platforms).
     * @type {string}
     * @memberof TransferMetricsGetRequest
     */
    originator_client_id?: string | null;
}
/**
 * Defines the response schema for `/transfer/metrics/get`
 * @export
 * @interface TransferMetricsGetResponse
 */
export interface TransferMetricsGetResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferMetricsGetResponse
     */
    request_id: string;
    /**
     * Sum of dollar amount of debit transfers in last 24 hours (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferMetricsGetResponse
     */
    daily_debit_transfer_volume: string;
    /**
     * Sum of dollar amount of credit transfers in last 24 hours (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferMetricsGetResponse
     */
    daily_credit_transfer_volume: string;
    /**
     * Sum of dollar amount of credit and debit transfers in current calendar month (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferMetricsGetResponse
     * @deprecated
     */
    monthly_transfer_volume: string;
    /**
     * Sum of dollar amount of debit transfers in current calendar month (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferMetricsGetResponse
     */
    monthly_debit_transfer_volume: string;
    /**
     * Sum of dollar amount of credit transfers in current calendar month (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferMetricsGetResponse
     */
    monthly_credit_transfer_volume: string;
    /**
     * The currency of the dollar amount, e.g. \"USD\".
     * @type {string}
     * @memberof TransferMetricsGetResponse
     */
    iso_currency_code: string;
    /**
     *
     * @type {TransferMetricsGetReturnRates}
     * @memberof TransferMetricsGetResponse
     */
    return_rates?: TransferMetricsGetReturnRates | null;
    /**
     *
     * @type {TransferMetricsGetAuthorizationUsage}
     * @memberof TransferMetricsGetResponse
     */
    authorization_usage?: TransferMetricsGetAuthorizationUsage | null;
}
/**
 * Details regarding return rates.
 * @export
 * @interface TransferMetricsGetReturnRates
 */
export interface TransferMetricsGetReturnRates {
    /**
     *
     * @type {TransferMetricsGetReturnRatesOverInterval}
     * @memberof TransferMetricsGetReturnRates
     */
    last_60d?: TransferMetricsGetReturnRatesOverInterval | null;
}
/**
 * Details regarding return rates.
 * @export
 * @interface TransferMetricsGetReturnRatesOverInterval
 */
export interface TransferMetricsGetReturnRatesOverInterval {
    /**
     * The overall return rate.
     * @type {string}
     * @memberof TransferMetricsGetReturnRatesOverInterval
     */
    overall_return_rate?: string;
    /**
     * The unauthorized return rate.
     * @type {string}
     * @memberof TransferMetricsGetReturnRatesOverInterval
     */
    unauthorized_return_rate?: string;
    /**
     * The administrative return rate.
     * @type {string}
     * @memberof TransferMetricsGetReturnRatesOverInterval
     */
    administrative_return_rate?: string;
}
/**
 * Defines the request schema for `/transfer/migrate_account`
 * @export
 * @interface TransferMigrateAccountRequest
 */
export interface TransferMigrateAccountRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferMigrateAccountRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferMigrateAccountRequest
     */
    secret?: string;
    /**
     * The user\'s account number.
     * @type {string}
     * @memberof TransferMigrateAccountRequest
     */
    account_number: string;
    /**
     * The user\'s routing number.
     * @type {string}
     * @memberof TransferMigrateAccountRequest
     */
    routing_number: string;
    /**
     * The user\'s wire transfer routing number. This is the ABA number; for some institutions, this may differ from the ACH number used in `routing_number`. This field must be set for the created item to be eligible for wire transfers.
     * @type {string}
     * @memberof TransferMigrateAccountRequest
     */
    wire_routing_number?: string;
    /**
     * The type of the bank account (`checking` or `savings`).
     * @type {string}
     * @memberof TransferMigrateAccountRequest
     */
    account_type: string;
}
/**
 * Defines the response schema for `/transfer/migrate_account`
 * @export
 * @interface TransferMigrateAccountResponse
 */
export interface TransferMigrateAccountResponse {
    /**
     * The Plaid `access_token` for the newly created Item.
     * @type {string}
     * @memberof TransferMigrateAccountResponse
     */
    access_token: string;
    /**
     * The Plaid `account_id` for the newly created Item.
     * @type {string}
     * @memberof TransferMigrateAccountResponse
     */
    account_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferMigrateAccountResponse
     */
    request_id: string;
}
/**
 * The network or rails used for the transfer.  For transfers submitted as `ach`, the next-day cutoff is 8:30 PM Eastern Time.  For transfers submitted as `same-day-ach`, the same-day cutoff is 3:30 PM Eastern Time. If the transfer is submitted after this cutoff but before the next-day cutoff, it will be sent over next-day rails and will not incur same-day charges; this will apply to both legs of the transfer if applicable.  For transfers submitted as `rtp`,  Plaid will automatically route between Real Time Payment rail by TCH or FedNow rails as necessary. If a transfer is submitted as `rtp` and the counterparty account is not eligible for RTP, the `/transfer/authorization/create` request will fail with an `INVALID_FIELD` error code. To pre-check to determine whether a counterparty account can support RTP, call `/transfer/capabilities/get` before calling `/transfer/authorization/create`.  Wire transfers are currently in early availability. To request access to `wire` as a payment network, contact your Account Manager. For transfers submitted as `wire`, the `type` must be `credit`; wire debits are not supported. The cutoff to submit a wire payment is 4:30 PM Eastern Time on a business day; wires submitted after that time will be processed on the next business day.
 * @export
 * @enum {string}
 */
export declare enum TransferNetwork {
    Ach = "ach",
    SameDayAch = "same-day-ach",
    Rtp = "rtp",
    Wire = "wire"
}
/**
 * The originator\'s address.
 * @export
 * @interface TransferOriginatorAddress
 */
export interface TransferOriginatorAddress {
    /**
     * The full city name.
     * @type {string}
     * @memberof TransferOriginatorAddress
     */
    city: string;
    /**
     * The full street address.
     * @type {string}
     * @memberof TransferOriginatorAddress
     */
    street: string;
    /**
     * The two-letter code for the state or province (e.g., \"CA\").
     * @type {string}
     * @memberof TransferOriginatorAddress
     */
    region: string;
    /**
     * The postal code (e.g., \"94103\").
     * @type {string}
     * @memberof TransferOriginatorAddress
     */
    postal_code: string;
    /**
     * ISO-3166-1 alpha-2 country code standard.
     * @type {string}
     * @memberof TransferOriginatorAddress
     */
    country_code: string;
}
/**
 * Defines the request schema for `/transfer/originator/create`
 * @export
 * @interface TransferOriginatorCreateRequest
 */
export interface TransferOriginatorCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferOriginatorCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferOriginatorCreateRequest
     */
    secret?: string;
    /**
     * The company name of the end customer being created. This will be displayed in public-facing surfaces, e.g. Plaid Dashboard.
     * @type {string}
     * @memberof TransferOriginatorCreateRequest
     */
    company_name: string;
}
/**
 * Defines the response schema for `/transfer/originator/create`
 * @export
 * @interface TransferOriginatorCreateResponse
 */
export interface TransferOriginatorCreateResponse {
    /**
     * Client ID of the originator. This identifier will be used when creating transfers and should be stored associated with end user information.
     * @type {string}
     * @memberof TransferOriginatorCreateResponse
     */
    originator_client_id: string;
    /**
     * The company name of the end customer.
     * @type {string}
     * @memberof TransferOriginatorCreateResponse
     */
    company_name: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferOriginatorCreateResponse
     */
    request_id: string;
}
/**
 * The diligence information for the originator.
 * @export
 * @interface TransferOriginatorDiligence
 */
export interface TransferOriginatorDiligence {
    /**
     * The business name of the originator.
     * @type {string}
     * @memberof TransferOriginatorDiligence
     */
    dba: string;
    /**
     * The tax ID of the originator.
     * @type {string}
     * @memberof TransferOriginatorDiligence
     */
    tax_id: string;
    /**
     *
     * @type {TransferCreditUsageConfiguration}
     * @memberof TransferOriginatorDiligence
     */
    credit_usage_configuration?: TransferCreditUsageConfiguration | null;
    /**
     *
     * @type {TransferDebitUsageConfiguration}
     * @memberof TransferOriginatorDiligence
     */
    debit_usage_configuration?: TransferDebitUsageConfiguration | null;
    /**
     *
     * @type {TransferOriginatorAddress}
     * @memberof TransferOriginatorDiligence
     */
    address: TransferOriginatorAddress;
    /**
     * The website of the originator.
     * @type {string}
     * @memberof TransferOriginatorDiligence
     */
    website: string;
    /**
     * The NAICS code of the originator.
     * @type {string}
     * @memberof TransferOriginatorDiligence
     */
    naics_code: string;
    /**
     *
     * @type {TransferFundingAccount}
     * @memberof TransferOriginatorDiligence
     */
    funding_account: TransferFundingAccount;
}
/**
 * Defines the request schema for `/transfer/originator/funding_account/update`
 * @export
 * @interface TransferOriginatorFundingAccountUpdateRequest
 */
export interface TransferOriginatorFundingAccountUpdateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferOriginatorFundingAccountUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferOriginatorFundingAccountUpdateRequest
     */
    secret?: string;
    /**
     * The Plaid client ID of the transfer originator.
     * @type {string}
     * @memberof TransferOriginatorFundingAccountUpdateRequest
     */
    originator_client_id: string;
    /**
     *
     * @type {TransferFundingAccount}
     * @memberof TransferOriginatorFundingAccountUpdateRequest
     */
    funding_account: TransferFundingAccount;
}
/**
 * Defines the response schema for `/transfer/originator/funding_account/update`
 * @export
 * @interface TransferOriginatorFundingAccountUpdateResponse
 */
export interface TransferOriginatorFundingAccountUpdateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferOriginatorFundingAccountUpdateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/originator/get`
 * @export
 * @interface TransferOriginatorGetRequest
 */
export interface TransferOriginatorGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferOriginatorGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferOriginatorGetRequest
     */
    secret?: string;
    /**
     * Client ID of the end customer (i.e. the originator).
     * @type {string}
     * @memberof TransferOriginatorGetRequest
     */
    originator_client_id: string;
}
/**
 * Defines the response schema for `/transfer/originator/get`
 * @export
 * @interface TransferOriginatorGetResponse
 */
export interface TransferOriginatorGetResponse {
    /**
     *
     * @type {DetailedOriginator}
     * @memberof TransferOriginatorGetResponse
     */
    originator: DetailedOriginator;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferOriginatorGetResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/originator/list`
 * @export
 * @interface TransferOriginatorListRequest
 */
export interface TransferOriginatorListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferOriginatorListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferOriginatorListRequest
     */
    secret?: string;
    /**
     * The maximum number of originators to return.
     * @type {number}
     * @memberof TransferOriginatorListRequest
     */
    count?: number | null;
    /**
     * The number of originators to skip before returning results.
     * @type {number}
     * @memberof TransferOriginatorListRequest
     */
    offset?: number | null;
}
/**
 * Defines the response schema for `/transfer/originator/list`
 * @export
 * @interface TransferOriginatorListResponse
 */
export interface TransferOriginatorListResponse {
    /**
     *
     * @type {Array<Originator>}
     * @memberof TransferOriginatorListResponse
     */
    originators: Array<Originator>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferOriginatorListResponse
     */
    request_id: string;
}
/**
 * Fired when the status of an onboarding originator has been updated. Call `/transfer/originator/get` to check the latest status
 * @export
 * @interface TransferPlatformOnboardingUpdateWebhook
 */
export interface TransferPlatformOnboardingUpdateWebhook {
    /**
     * `\"TRANSFER\"`
     * @type {string}
     * @memberof TransferPlatformOnboardingUpdateWebhook
     */
    webhook_type: string;
    /**
     * `\"PLATFORM_ONBOARDING_UPDATE\"`
     * @type {string}
     * @memberof TransferPlatformOnboardingUpdateWebhook
     */
    webhook_code: string;
    /**
     * The client ID of the originator
     * @type {string}
     * @memberof TransferPlatformOnboardingUpdateWebhook
     */
    originator_client_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof TransferPlatformOnboardingUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * Defines the request schema for `/transfer/platform/originator/create`
 * @export
 * @interface TransferPlatformOriginatorCreateRequest
 */
export interface TransferPlatformOriginatorCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferPlatformOriginatorCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferPlatformOriginatorCreateRequest
     */
    secret?: string;
    /**
     * The client ID of the originator
     * @type {string}
     * @memberof TransferPlatformOriginatorCreateRequest
     */
    originator_client_id: string;
    /**
     *
     * @type {TransferPlatformTOSAcceptanceMetadata}
     * @memberof TransferPlatformOriginatorCreateRequest
     */
    tos_acceptance_metadata: TransferPlatformTOSAcceptanceMetadata;
    /**
     * ISO8601 timestamp indicating the most recent time the platform collected onboarding data from the originator
     * @type {string}
     * @memberof TransferPlatformOriginatorCreateRequest
     */
    originator_reviewed_at: string;
    /**
     * The webhook URL to which a `PLATFORM_ONBOARDING_UPDATE` webhook should be sent.
     * @type {string}
     * @memberof TransferPlatformOriginatorCreateRequest
     */
    webhook?: string;
}
/**
 * Defines the response schema for `/transfer/platform/originator/create`
 * @export
 * @interface TransferPlatformOriginatorCreateResponse
 */
export interface TransferPlatformOriginatorCreateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferPlatformOriginatorCreateResponse
     */
    request_id: string;
}
/**
 * Home address of a person
 * @export
 * @interface TransferPlatformPersonAddress
 */
export interface TransferPlatformPersonAddress {
    /**
     * The full city name.
     * @type {string}
     * @memberof TransferPlatformPersonAddress
     */
    city: string;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof TransferPlatformPersonAddress
     */
    country: string;
    /**
     * The postal code of the address.
     * @type {string}
     * @memberof TransferPlatformPersonAddress
     */
    postal_code: string;
    /**
     * An ISO 3166-2 subdivision code. Related terms would be \"state\", \"province\", \"prefecture\", \"zone\", \"subdivision\", etc.
     * @type {string}
     * @memberof TransferPlatformPersonAddress
     */
    region: string;
    /**
     * The primary street portion of an address. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
     * @type {string}
     * @memberof TransferPlatformPersonAddress
     */
    street: string;
    /**
     * Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
     * @type {string}
     * @memberof TransferPlatformPersonAddress
     */
    street2?: string;
}
/**
 * Defines the response schema for `/transfer/platform/person/create`
 * @export
 * @interface TransferPlatformPersonCreateRequest
 */
export interface TransferPlatformPersonCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferPlatformPersonCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferPlatformPersonCreateRequest
     */
    secret?: string;
    /**
     * The client ID of the originator
     * @type {string}
     * @memberof TransferPlatformPersonCreateRequest
     */
    originator_client_id: string;
    /**
     *
     * @type {TransferPlatformPersonName}
     * @memberof TransferPlatformPersonCreateRequest
     */
    name?: TransferPlatformPersonName;
    /**
     * A valid email address. Must not have leading or trailing spaces.
     * @type {string}
     * @memberof TransferPlatformPersonCreateRequest
     */
    email_address?: string;
    /**
     * A valid phone number in E.164 format.
     * @type {string}
     * @memberof TransferPlatformPersonCreateRequest
     */
    phone_number?: string;
    /**
     *
     * @type {TransferPlatformPersonAddress}
     * @memberof TransferPlatformPersonCreateRequest
     */
    address?: TransferPlatformPersonAddress;
    /**
     *
     * @type {TransferPlatformPersonIDNumber}
     * @memberof TransferPlatformPersonCreateRequest
     */
    id_number?: TransferPlatformPersonIDNumber;
    /**
     * The date of birth of the person. Formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof TransferPlatformPersonCreateRequest
     */
    date_of_birth?: string;
    /**
     * The relationship between this person and the originator they are related to.
     * @type {string}
     * @memberof TransferPlatformPersonCreateRequest
     */
    relationship_to_originator?: string;
}
/**
 * Defines the response schema for `/transfer/platform/person/create`
 * @export
 * @interface TransferPlatformPersonCreateResponse
 */
export interface TransferPlatformPersonCreateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferPlatformPersonCreateResponse
     */
    request_id: string;
    /**
     * An ID that should be used when submitting additional requirements that are associated with this person.
     * @type {string}
     * @memberof TransferPlatformPersonCreateResponse
     */
    person_id: string;
}
/**
 * ID number of the person
 * @export
 * @interface TransferPlatformPersonIDNumber
 */
export interface TransferPlatformPersonIDNumber {
    /**
     * Value of the person\'s ID Number. Alpha-numeric, with all formatting characters stripped.
     * @type {string}
     * @memberof TransferPlatformPersonIDNumber
     */
    value: string;
    /**
     *
     * @type {IDNumberType}
     * @memberof TransferPlatformPersonIDNumber
     */
    type: IDNumberType;
}
/**
 * The person\'s legal name
 * @export
 * @interface TransferPlatformPersonName
 */
export interface TransferPlatformPersonName {
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof TransferPlatformPersonName
     */
    given_name: string;
    /**
     * A string with at least one non-whitespace character, with a max length of 100 characters.
     * @type {string}
     * @memberof TransferPlatformPersonName
     */
    family_name: string;
}
/**
 * A piece of information that is outstanding for the scaled platform onboarding process.
 * @export
 * @interface TransferPlatformRequirement
 */
export interface TransferPlatformRequirement {
    /**
     * The type of requirement.
     * @type {string}
     * @memberof TransferPlatformRequirement
     */
    requirement_type?: string;
    /**
     * UUID of the person associated with the requirement. Only present for individual-scoped requirements.
     * @type {string}
     * @memberof TransferPlatformRequirement
     */
    person_id?: string | null;
}
/**
 * A single requirement submission
 * @export
 * @interface TransferPlatformRequirementSubmission
 */
export interface TransferPlatformRequirementSubmission {
    /**
     * The type of requirement being submitted
     * @type {string}
     * @memberof TransferPlatformRequirementSubmission
     */
    requirement_type: string;
    /**
     * The value of the requirement, which can be a string or an object depending on the `requirement_type`. If it is an object, the object should be JSON marshaled into a string. See the documentation on this endpoint for more information and examples.
     * @type {string}
     * @memberof TransferPlatformRequirementSubmission
     */
    value: string;
    /**
     * The `person_id` of the person the requirement submission is related to. A `person_id` is returned by `/transfer/platform/person/create`. This field should not be included for requirements that are not related to a person.
     * @type {string}
     * @memberof TransferPlatformRequirementSubmission
     */
    person_id?: string;
}
/**
 * Defines the request schema for `/transfer/platform/requirement/submit`
 * @export
 * @interface TransferPlatformRequirementSubmitRequest
 */
export interface TransferPlatformRequirementSubmitRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferPlatformRequirementSubmitRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferPlatformRequirementSubmitRequest
     */
    secret?: string;
    /**
     * The client ID of the originator
     * @type {string}
     * @memberof TransferPlatformRequirementSubmitRequest
     */
    originator_client_id: string;
    /**
     * A list of requirement submissions that all relate to the originator. Must contain between 1 and 50 requirement submissions.
     * @type {Array<TransferPlatformRequirementSubmission>}
     * @memberof TransferPlatformRequirementSubmitRequest
     */
    requirement_submissions: Array<TransferPlatformRequirementSubmission>;
}
/**
 * Defines the response schema for `/transfer/platform/requirement/submit`
 * @export
 * @interface TransferPlatformRequirementSubmitResponse
 */
export interface TransferPlatformRequirementSubmitResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferPlatformRequirementSubmitResponse
     */
    request_id: string;
}
/**
 * Metadata related to the acceptance of Terms of Service
 * @export
 * @interface TransferPlatformTOSAcceptanceMetadata
 */
export interface TransferPlatformTOSAcceptanceMetadata {
    /**
     * Indicates whether the TOS agreement was accepted
     * @type {boolean}
     * @memberof TransferPlatformTOSAcceptanceMetadata
     */
    agreement_accepted: boolean;
    /**
     * The IP address of the originator when they accepted the TOS. Formatted as an IPv4 or IPv6 IP address
     * @type {string}
     * @memberof TransferPlatformTOSAcceptanceMetadata
     */
    originator_ip_address: string;
    /**
     * ISO8601 timestamp indicating when the originator accepted the TOS
     * @type {string}
     * @memberof TransferPlatformTOSAcceptanceMetadata
     */
    agreement_accepted_at: string;
}
/**
 * Defines the request schema for `/transfer/questionnaire/create`
 * @export
 * @interface TransferQuestionnaireCreateRequest
 */
export interface TransferQuestionnaireCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferQuestionnaireCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferQuestionnaireCreateRequest
     */
    secret?: string;
    /**
     * Client ID of the end customer.
     * @type {string}
     * @memberof TransferQuestionnaireCreateRequest
     */
    originator_client_id: string;
    /**
     * URL the end customer will be redirected to after completing questions in Plaid-hosted onboarding flow.
     * @type {string}
     * @memberof TransferQuestionnaireCreateRequest
     */
    redirect_uri: string;
}
/**
 * Defines the response schema for `/transfer/questionnaire/create`
 * @export
 * @interface TransferQuestionnaireCreateResponse
 */
export interface TransferQuestionnaireCreateResponse {
    /**
     * Plaid-hosted onboarding URL that you will redirect the end customer to.
     * @type {string}
     * @memberof TransferQuestionnaireCreateResponse
     */
    onboarding_url: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferQuestionnaireCreateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/recurring/cancel`
 * @export
 * @interface TransferRecurringCancelRequest
 */
export interface TransferRecurringCancelRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferRecurringCancelRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferRecurringCancelRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a recurring transfer.
     * @type {string}
     * @memberof TransferRecurringCancelRequest
     */
    recurring_transfer_id: string;
}
/**
 * Defines the response schema for `/transfer/recurring/cancel`
 * @export
 * @interface TransferRecurringCancelResponse
 */
export interface TransferRecurringCancelResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferRecurringCancelResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/recurring/create`
 * @export
 * @interface TransferRecurringCreateRequest
 */
export interface TransferRecurringCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferRecurringCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferRecurringCreateRequest
     */
    secret?: string;
    /**
     * The Plaid `access_token` for the account that will be debited or credited.
     * @type {string}
     * @memberof TransferRecurringCreateRequest
     */
    access_token: string;
    /**
     * A random key provided by the client, per unique recurring transfer. Maximum of 50 characters.  The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a recurring fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single recurring transfer is created.
     * @type {string}
     * @memberof TransferRecurringCreateRequest
     */
    idempotency_key: string;
    /**
     * The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
     * @type {string}
     * @memberof TransferRecurringCreateRequest
     */
    account_id: string;
    /**
     * Specify the account used to fund the transfer. Customers can find a list of `funding_account_id`s in the Accounts page of your Plaid Dashboard, under the \"Account ID\" column. If this field is left blank, it will default to the default `funding_account_id` specified during onboarding.
     * @type {string}
     * @memberof TransferRecurringCreateRequest
     * @deprecated
     */
    funding_account_id?: string | null;
    /**
     *
     * @type {TransferType}
     * @memberof TransferRecurringCreateRequest
     */
    type: TransferType;
    /**
     *
     * @type {TransferRecurringNetwork}
     * @memberof TransferRecurringCreateRequest
     */
    network: TransferRecurringNetwork;
    /**
     *
     * @type {ACHClass}
     * @memberof TransferRecurringCreateRequest
     */
    ach_class?: ACHClass;
    /**
     * The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.
     * @type {string}
     * @memberof TransferRecurringCreateRequest
     */
    amount: string;
    /**
     * If the end user is initiating the specific transfer themselves via an interactive UI, this should be `true`; for automatic recurring payments where the end user is not actually initiating each individual transfer, it should be `false`.
     * @type {boolean}
     * @memberof TransferRecurringCreateRequest
     */
    user_present?: boolean | null;
    /**
     * The currency of the transfer amount. The default value is \"USD\".
     * @type {string}
     * @memberof TransferRecurringCreateRequest
     * @deprecated
     */
    iso_currency_code?: string;
    /**
     * The description of the recurring transfer.
     * @type {string}
     * @memberof TransferRecurringCreateRequest
     */
    description: string;
    /**
     * Plaid’s unique identifier for a test clock. This field may only be used when using `sandbox` environment. If provided, the created `recurring_transfer` is associated with the `test_clock`. New originations are automatically generated when the associated `test_clock` advances.
     * @type {string}
     * @memberof TransferRecurringCreateRequest
     */
    test_clock_id?: string | null;
    /**
     *
     * @type {TransferRecurringSchedule}
     * @memberof TransferRecurringCreateRequest
     */
    schedule: TransferRecurringSchedule;
    /**
     *
     * @type {TransferUserInRequest}
     * @memberof TransferRecurringCreateRequest
     */
    user: TransferUserInRequest;
    /**
     *
     * @type {TransferDevice}
     * @memberof TransferRecurringCreateRequest
     */
    device?: TransferDevice;
}
/**
 * Defines the response schema for `/transfer/recurring/create`
 * @export
 * @interface TransferRecurringCreateResponse
 */
export interface TransferRecurringCreateResponse {
    /**
     *
     * @type {RecurringTransferNullable}
     * @memberof TransferRecurringCreateResponse
     */
    recurring_transfer?: RecurringTransferNullable;
    /**
     *
     * @type {TransferAuthorizationDecision}
     * @memberof TransferRecurringCreateResponse
     */
    decision: TransferAuthorizationDecision;
    /**
     *
     * @type {TransferAuthorizationDecisionRationale}
     * @memberof TransferRecurringCreateResponse
     */
    decision_rationale?: TransferAuthorizationDecisionRationale | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferRecurringCreateResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/recurring/get`
 * @export
 * @interface TransferRecurringGetRequest
 */
export interface TransferRecurringGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferRecurringGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferRecurringGetRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a recurring transfer.
     * @type {string}
     * @memberof TransferRecurringGetRequest
     */
    recurring_transfer_id: string;
}
/**
 * Defines the response schema for `/transfer/recurring/get`
 * @export
 * @interface TransferRecurringGetResponse
 */
export interface TransferRecurringGetResponse {
    /**
     *
     * @type {RecurringTransfer}
     * @memberof TransferRecurringGetResponse
     */
    recurring_transfer: RecurringTransfer;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferRecurringGetResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/recurring/list`
 * @export
 * @interface TransferRecurringListRequest
 */
export interface TransferRecurringListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferRecurringListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferRecurringListRequest
     */
    secret?: string;
    /**
     * The start datetime of recurring transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof TransferRecurringListRequest
     */
    start_time?: string | null;
    /**
     * The end datetime of recurring transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
     * @type {string}
     * @memberof TransferRecurringListRequest
     */
    end_time?: string | null;
    /**
     * The maximum number of recurring transfers to return.
     * @type {number}
     * @memberof TransferRecurringListRequest
     */
    count?: number;
    /**
     * The number of recurring transfers to skip before returning results.
     * @type {number}
     * @memberof TransferRecurringListRequest
     */
    offset?: number;
    /**
     * Filter recurring transfers to only those with the specified `funding_account_id`.
     * @type {string}
     * @memberof TransferRecurringListRequest
     */
    funding_account_id?: string | null;
}
/**
 * Defines the response schema for `/transfer/recurring/list`
 * @export
 * @interface TransferRecurringListResponse
 */
export interface TransferRecurringListResponse {
    /**
     *
     * @type {Array<RecurringTransfer>}
     * @memberof TransferRecurringListResponse
     */
    recurring_transfers: Array<RecurringTransfer>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferRecurringListResponse
     */
    request_id: string;
}
/**
 * Networks eligible for recurring transfers.
 * @export
 * @enum {string}
 */
export declare enum TransferRecurringNetwork {
    Ach = "ach",
    SameDayAch = "same-day-ach",
    Rtp = "rtp"
}
/**
 * The schedule that the recurring transfer will be executed on.
 * @export
 * @interface TransferRecurringSchedule
 */
export interface TransferRecurringSchedule {
    /**
     *
     * @type {TransferScheduleIntervalUnit}
     * @memberof TransferRecurringSchedule
     */
    interval_unit: TransferScheduleIntervalUnit;
    /**
     * The number of recurring `interval_units` between originations. The recurring interval (before holiday adjustment) is calculated by multiplying `interval_unit` and `interval_count`. For example, to schedule a recurring transfer which originates once every two weeks, set `interval_unit` = `week` and `interval_count` = 2.
     * @type {number}
     * @memberof TransferRecurringSchedule
     */
    interval_count: number;
    /**
     * The day of the interval on which to schedule the transfer.  If the `interval_unit` is `week`, `interval_execution_day` should be an integer from 1 (Monday) to 5 (Friday).  If the `interval_unit` is `month`, `interval_execution_day` should be an integer indicating which day of the month to make the transfer on. Integers from 1 to 28 can be used to make a transfer on that day of the month. Negative integers from -1 to -5 can be used to make a transfer relative to the end of the month. To make a transfer on the last day of the month, use -1; to make the transfer on the second-to-last day, use -2, and so on.  The transfer will be originated on the next available banking day if the designated day is a non banking day.
     * @type {number}
     * @memberof TransferRecurringSchedule
     */
    interval_execution_day: number;
    /**
     * A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). The recurring transfer will begin on the first `interval_execution_day` on or after the `start_date`.  For `rtp` recurring transfers, `start_date` must be in the future. Otherwise, if the first `interval_execution_day` on or after the start date is also the same day that `/transfer/recurring/create` was called, the bank *may* make the first payment on that day, but it is not guaranteed to do so.
     * @type {string}
     * @memberof TransferRecurringSchedule
     */
    start_date: string;
    /**
     * A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). The recurring transfer will end on the last `interval_execution_day` on or before the `end_date`. If the `interval_execution_day` between the start date and the end date (inclusive) is also the same day that `/transfer/recurring/create` was called, the bank *may* make a payment on that day, but it is not guaranteed to do so.
     * @type {string}
     * @memberof TransferRecurringSchedule
     */
    end_date?: string | null;
}
/**
 * The status of the recurring transfer.  `active`: The recurring transfer is currently active. `cancelled`: The recurring transfer was cancelled by the client or Plaid. `expired`: The recurring transfer has completed all originations according to its recurring schedule.
 * @export
 * @enum {string}
 */
export declare enum TransferRecurringStatus {
    Active = "active",
    Cancelled = "cancelled",
    Expired = "expired"
}
/**
 * Represents a refund within the Transfers API.
 * @export
 * @interface TransferRefund
 */
export interface TransferRefund {
    /**
     * Plaid’s unique identifier for a refund.
     * @type {string}
     * @memberof TransferRefund
     */
    id: string;
    /**
     * The ID of the transfer to refund.
     * @type {string}
     * @memberof TransferRefund
     */
    transfer_id: string;
    /**
     * The amount of the refund (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferRefund
     */
    amount: string;
    /**
     *
     * @type {TransferRefundStatus}
     * @memberof TransferRefund
     */
    status: TransferRefundStatus;
    /**
     *
     * @type {TransferRefundFailure}
     * @memberof TransferRefund
     */
    failure_reason: TransferRefundFailure | null;
    /**
     * Plaid’s unique identifier for a Plaid Ledger Balance.
     * @type {string}
     * @memberof TransferRefund
     */
    ledger_id?: string | null;
    /**
     * The datetime when this refund was created. This will be of the form `2006-01-02T15:04:05Z`
     * @type {string}
     * @memberof TransferRefund
     */
    created: string;
    /**
     * The trace identifier for the transfer based on its network. This will only be set after the transfer has posted.  For `ach` or `same-day-ach` transfers, this is the ACH trace number. For `rtp` transfers, this is the Transaction Identification number. For `wire` transfers, this is the IMAD (Input Message Accountability Data) number.
     * @type {string}
     * @memberof TransferRefund
     */
    network_trace_id?: string | null;
}
/**
 * Defines the request schema for `/transfer/refund/cancel`
 * @export
 * @interface TransferRefundCancelRequest
 */
export interface TransferRefundCancelRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferRefundCancelRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferRefundCancelRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a refund.
     * @type {string}
     * @memberof TransferRefundCancelRequest
     */
    refund_id: string;
}
/**
 * Defines the response schema for `/transfer/refund/cancel`
 * @export
 * @interface TransferRefundCancelResponse
 */
export interface TransferRefundCancelResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferRefundCancelResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/refund/create`
 * @export
 * @interface TransferRefundCreateRequest
 */
export interface TransferRefundCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferRefundCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferRefundCreateRequest
     */
    secret?: string;
    /**
     * The ID of the transfer to refund.
     * @type {string}
     * @memberof TransferRefundCreateRequest
     */
    transfer_id: string;
    /**
     * The amount of the refund (decimal string with two digits of precision e.g. \"10.00\").
     * @type {string}
     * @memberof TransferRefundCreateRequest
     */
    amount: string;
    /**
     * A random key provided by the client, per unique refund. Maximum of 50 characters.  The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a refund fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single refund is created.
     * @type {string}
     * @memberof TransferRefundCreateRequest
     */
    idempotency_key: string;
}
/**
 * Defines the response schema for `/transfer/refund/create`
 * @export
 * @interface TransferRefundCreateResponse
 */
export interface TransferRefundCreateResponse {
    /**
     *
     * @type {TransferRefund}
     * @memberof TransferRefundCreateResponse
     */
    refund: TransferRefund;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferRefundCreateResponse
     */
    request_id: string;
}
/**
 * The failure reason if the event type for a refund is `\"failed\"` or `\"returned\"`. Null value otherwise.
 * @export
 * @interface TransferRefundFailure
 */
export interface TransferRefundFailure {
    /**
     * The failure code, e.g. `R01`.  A failure code will be provided if and only if the refund status is `returned`. See [ACH return codes](https://plaid.com/docs/errors/transfer/#ach-return-codes) for a full listing of ACH return codes and [RTP error codes](https://plaid.com/docs/errors/transfer/#rtp-error-codes) for RTP error codes.
     * @type {string}
     * @memberof TransferRefundFailure
     */
    failure_code?: string | null;
    /**
     * The ACH return code, e.g. `R01`.  A return code will be provided if and only if the refund status is `returned`. For a full listing of ACH return codes, see [Transfer errors](https://plaid.com/docs/errors/transfer/#ach-return-codes). This field is deprecated in favor of the more versatile `failure_code`, which encompasses non-ACH failure codes as well.
     * @type {string}
     * @memberof TransferRefundFailure
     * @deprecated
     */
    ach_return_code?: string | null;
    /**
     * A human-readable description of the reason for the failure or reversal.
     * @type {string}
     * @memberof TransferRefundFailure
     */
    description?: string;
}
/**
 * Defines the request schema for `/transfer/refund/get`
 * @export
 * @interface TransferRefundGetRequest
 */
export interface TransferRefundGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferRefundGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferRefundGetRequest
     */
    secret?: string;
    /**
     * Plaid’s unique identifier for a refund.
     * @type {string}
     * @memberof TransferRefundGetRequest
     */
    refund_id: string;
}
/**
 * Defines the response schema for `/transfer/refund/get`
 * @export
 * @interface TransferRefundGetResponse
 */
export interface TransferRefundGetResponse {
    /**
     *
     * @type {TransferRefund}
     * @memberof TransferRefundGetResponse
     */
    refund: TransferRefund;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferRefundGetResponse
     */
    request_id: string;
}
/**
 * The status of the refund.  `pending`: A new refund was created; it is in the pending state. `posted`: The refund has been successfully submitted to the payment network. `settled`: Credits have been refunded to the Plaid linked account. `cancelled`: The refund was cancelled by the client. `failed`: The refund has failed. `returned`: The refund was returned.
 * @export
 * @enum {string}
 */
export declare enum TransferRefundStatus {
    Pending = "pending",
    Posted = "posted",
    Cancelled = "cancelled",
    Failed = "failed",
    Settled = "settled",
    Returned = "returned"
}
/**
 * A repayment is created automatically after one or more guaranteed transactions receive a return. If there are multiple eligible returns in a day, they are batched together into a single repayment.  Repayments are sent over ACH, with funds typically available on the next banking day.
 * @export
 * @interface TransferRepayment
 */
export interface TransferRepayment {
    /**
     * Identifier of the repayment.
     * @type {string}
     * @memberof TransferRepayment
     */
    repayment_id: string;
    /**
     * The datetime when the repayment occurred, in RFC 3339 format.
     * @type {string}
     * @memberof TransferRepayment
     */
    created: string;
    /**
     * Decimal amount of the repayment as it appears on your account ledger.
     * @type {string}
     * @memberof TransferRepayment
     */
    amount: string;
    /**
     * The currency of the repayment, e.g. \"USD\".
     * @type {string}
     * @memberof TransferRepayment
     */
    iso_currency_code: string;
}
/**
 * Defines the request schema for `/transfer/repayment/list`
 * @export
 * @interface TransferRepaymentListRequest
 */
export interface TransferRepaymentListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferRepaymentListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferRepaymentListRequest
     */
    secret?: string;
    /**
     * The start datetime of repayments to return (RFC 3339 format).
     * @type {string}
     * @memberof TransferRepaymentListRequest
     */
    start_date?: string | null;
    /**
     * The end datetime of repayments to return (RFC 3339 format).
     * @type {string}
     * @memberof TransferRepaymentListRequest
     */
    end_date?: string | null;
    /**
     * The maximum number of repayments to return.
     * @type {number}
     * @memberof TransferRepaymentListRequest
     */
    count?: number | null;
    /**
     * The number of repayments to skip before returning results.
     * @type {number}
     * @memberof TransferRepaymentListRequest
     */
    offset?: number;
}
/**
 * Defines the response schema for `/transfer/repayments/list`
 * @export
 * @interface TransferRepaymentListResponse
 */
export interface TransferRepaymentListResponse {
    /**
     *
     * @type {Array<TransferRepayment>}
     * @memberof TransferRepaymentListResponse
     */
    repayments: Array<TransferRepayment>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferRepaymentListResponse
     */
    request_id: string;
}
/**
 * Represents a return on a Guaranteed ACH transfer that is included in the specified repayment.
 * @export
 * @interface TransferRepaymentReturn
 */
export interface TransferRepaymentReturn {
    /**
     * The unique identifier of the guaranteed transfer that was returned.
     * @type {string}
     * @memberof TransferRepaymentReturn
     */
    transfer_id: string;
    /**
     * The unique identifier of the corresponding `returned` transfer event.
     * @type {number}
     * @memberof TransferRepaymentReturn
     */
    event_id: number;
    /**
     * The value of the returned transfer.
     * @type {string}
     * @memberof TransferRepaymentReturn
     */
    amount: string;
    /**
     * The currency of the repayment, e.g. \"USD\".
     * @type {string}
     * @memberof TransferRepaymentReturn
     */
    iso_currency_code: string;
}
/**
 * Defines the request schema for `/transfer/repayment/return/list`
 * @export
 * @interface TransferRepaymentReturnListRequest
 */
export interface TransferRepaymentReturnListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferRepaymentReturnListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferRepaymentReturnListRequest
     */
    secret?: string;
    /**
     * Identifier of the repayment to query.
     * @type {string}
     * @memberof TransferRepaymentReturnListRequest
     */
    repayment_id: string;
    /**
     * The maximum number of repayments to return.
     * @type {number}
     * @memberof TransferRepaymentReturnListRequest
     */
    count?: number | null;
    /**
     * The number of repayments to skip before returning results.
     * @type {number}
     * @memberof TransferRepaymentReturnListRequest
     */
    offset?: number;
}
/**
 * Defines the response schema for `/transfer/repayments/return/list`
 * @export
 * @interface TransferRepaymentReturnListResponse
 */
export interface TransferRepaymentReturnListResponse {
    /**
     *
     * @type {Array<TransferRepaymentReturn>}
     * @memberof TransferRepaymentReturnListResponse
     */
    repayment_returns: Array<TransferRepaymentReturn>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferRepaymentReturnListResponse
     */
    request_id: string;
}
/**
 * The unit of the recurring interval.
 * @export
 * @enum {string}
 */
export declare enum TransferScheduleIntervalUnit {
    Week = "week",
    Month = "month"
}
/**
 * The status of the transfer.  `pending`: A new transfer was created; it is in the pending state. `posted`: The transfer has been successfully submitted to the payment network. `settled`: The transfer was successfully completed by the payment network. Note that funds from received debits are not available to be moved out of the Ledger until the transfer reaches `funds_available` status. For credit transactions, `settled` means the funds have been delivered to the receiving bank account. `funds_available`: Funds from the transfer have been released from hold and applied to the ledger\'s available balance. (Only applicable to ACH debits.) `cancelled`: The transfer was cancelled by the client. `failed`: The transfer failed, no funds were moved. `returned`: A posted transfer was returned.
 * @export
 * @enum {string}
 */
export declare enum TransferStatus {
    Pending = "pending",
    Posted = "posted",
    Settled = "settled",
    FundsAvailable = "funds_available",
    Cancelled = "cancelled",
    Failed = "failed",
    Returned = "returned"
}
/**
 * Describes a sweep of funds to / from the sweep account.  A sweep is associated with many sweep events (events of type `swept` or `return_swept`) which can be retrieved by invoking the `/transfer/event/list` endpoint with the corresponding `sweep_id`.  `swept` events occur when the transfer amount is credited or debited from your sweep account, depending on the `type` of the transfer. `return_swept` events occur when a transfer is returned and Plaid undoes the credit or debit.  The total sum of the `swept` and `return_swept` events is equal to the `amount` of the sweep Plaid creates and matches the amount of the entry on your sweep account ledger.
 * @export
 * @interface TransferSweep
 */
export interface TransferSweep {
    /**
     * Identifier of the sweep.
     * @type {string}
     * @memberof TransferSweep
     */
    id: string;
    /**
     * The id of the funding account to use, available in the Plaid Dashboard. This determines which of your business checking accounts will be credited or debited.
     * @type {string}
     * @memberof TransferSweep
     */
    funding_account_id: string;
    /**
     * Plaid’s unique identifier for a Plaid Ledger Balance.
     * @type {string}
     * @memberof TransferSweep
     */
    ledger_id?: string | null;
    /**
     * The datetime when the sweep occurred, in RFC 3339 format.
     * @type {string}
     * @memberof TransferSweep
     */
    created: string;
    /**
     * Signed decimal amount of the sweep as it appears on your sweep account ledger (e.g. \"-10.00\")  If amount is not present, the sweep was net-settled to zero and outstanding debits and credits between the sweep account and Plaid are balanced.
     * @type {string}
     * @memberof TransferSweep
     */
    amount: string;
    /**
     * The currency of the sweep, e.g. \"USD\".
     * @type {string}
     * @memberof TransferSweep
     */
    iso_currency_code: string;
    /**
     * The date when the sweep settled, in the YYYY-MM-DD format.
     * @type {string}
     * @memberof TransferSweep
     */
    settled: string | null;
    /**
     *
     * @type {SweepStatus}
     * @memberof TransferSweep
     */
    status?: SweepStatus | null;
    /**
     *
     * @type {SweepTrigger}
     * @memberof TransferSweep
     */
    trigger?: SweepTrigger | null;
    /**
     * The description of the deposit that will be passed to the receiving bank (up to 10 characters). Note that banks utilize this field differently, and may or may not show it on the bank statement.
     * @type {string}
     * @memberof TransferSweep
     */
    description?: string;
    /**
     * The trace identifier for the transfer based on its network. This will only be set after the transfer has posted.  For `ach` or `same-day-ach` transfers, this is the ACH trace number. For `rtp` transfers, this is the Transaction Identification number. For `wire` transfers, this is the IMAD (Input Message Accountability Data) number.
     * @type {string}
     * @memberof TransferSweep
     */
    network_trace_id?: string | null;
    /**
     *
     * @type {SweepFailure}
     * @memberof TransferSweep
     */
    failure_reason?: SweepFailure | null;
}
/**
 * Defines the request schema for `/transfer/sweep/get`
 * @export
 * @interface TransferSweepGetRequest
 */
export interface TransferSweepGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferSweepGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferSweepGetRequest
     */
    secret?: string;
    /**
     * Plaid\'s unique identifier for the sweep (UUID) or a shortened form consisting of the first 8 characters of the identifier (8-digit hexadecimal string).
     * @type {string}
     * @memberof TransferSweepGetRequest
     */
    sweep_id: string;
}
/**
 * Defines the response schema for `/transfer/sweep/get`
 * @export
 * @interface TransferSweepGetResponse
 */
export interface TransferSweepGetResponse {
    /**
     *
     * @type {TransferSweep}
     * @memberof TransferSweepGetResponse
     */
    sweep: TransferSweep;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferSweepGetResponse
     */
    request_id: string;
}
/**
 * Defines the request schema for `/transfer/sweep/list`
 * @export
 * @interface TransferSweepListRequest
 */
export interface TransferSweepListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof TransferSweepListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof TransferSweepListRequest
     */
    secret?: string;
    /**
     * The start datetime of sweeps to return (RFC 3339 format).
     * @type {string}
     * @memberof TransferSweepListRequest
     */
    start_date?: string | null;
    /**
     * The end datetime of sweeps to return (RFC 3339 format).
     * @type {string}
     * @memberof TransferSweepListRequest
     */
    end_date?: string | null;
    /**
     * The maximum number of sweeps to return.
     * @type {number}
     * @memberof TransferSweepListRequest
     */
    count?: number | null;
    /**
     * The number of sweeps to skip before returning results.
     * @type {number}
     * @memberof TransferSweepListRequest
     */
    offset?: number;
    /**
     * Filter sweeps to only those with the specified amount.
     * @type {string}
     * @memberof TransferSweepListRequest
     */
    amount?: string | null;
    /**
     *
     * @type {SweepStatus}
     * @memberof TransferSweepListRequest
     */
    status?: SweepStatus | null;
    /**
     * Filter sweeps to only those with the specified originator client.
     * @type {string}
     * @memberof TransferSweepListRequest
     */
    originator_client_id?: string | null;
    /**
     * Filter sweeps to only those with the specified `funding_account_id`.
     * @type {string}
     * @memberof TransferSweepListRequest
     */
    funding_account_id?: string | null;
    /**
     * Filter sweeps to only those with the included `transfer_id`.
     * @type {string}
     * @memberof TransferSweepListRequest
     */
    transfer_id?: string | null;
    /**
     *
     * @type {SweepTrigger}
     * @memberof TransferSweepListRequest
     */
    trigger?: SweepTrigger | null;
}
/**
 * Defines the response schema for `/transfer/sweep/list`
 * @export
 * @interface TransferSweepListResponse
 */
export interface TransferSweepListResponse {
    /**
     *
     * @type {Array<TransferSweep>}
     * @memberof TransferSweepListResponse
     */
    sweeps: Array<TransferSweep>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof TransferSweepListResponse
     */
    request_id: string;
}
/**
 * The status of the sweep for the transfer.  `unswept`: The transfer hasn\'t been swept yet. `swept`: The transfer was swept to the sweep account. `swept_settled`: Credits are available to be withdrawn or debits have been deducted from the customer’s business checking account. `return_swept`: The transfer was returned, funds were pulled back or pushed back to the sweep account. `funds_available`: Funds from the transfer have been released from hold and applied to the ledger\'s available balance. This is only applicable to debits. `null`: The transfer will never be swept (e.g. if the transfer is cancelled or returned before being swept)
 * @export
 * @enum {string}
 */
export declare enum TransferSweepStatus {
    Null = "null",
    Unswept = "unswept",
    Swept = "swept",
    SweptSettled = "swept_settled",
    ReturnSwept = "return_swept",
    FundsAvailable = "funds_available"
}
/**
 * Defines the test clock for a transfer.
 * @export
 * @interface TransferTestClock
 */
export interface TransferTestClock {
    /**
     * Plaid’s unique identifier for a test clock.
     * @type {string}
     * @memberof TransferTestClock
     */
    test_clock_id: string;
    /**
     * The virtual timestamp on the test clock. This will be of the form `2006-01-02T15:04:05Z`.
     * @type {string}
     * @memberof TransferTestClock
     */
    virtual_time: string;
}
/**
 * The type of transfer. This will be either `debit` or `credit`.  A `debit` indicates a transfer of money into the origination account; a `credit` indicates a transfer of money out of the origination account.
 * @export
 * @enum {string}
 */
export declare enum TransferType {
    Debit = "debit",
    Credit = "credit"
}
/**
 * The address associated with the account holder.
 * @export
 * @interface TransferUserAddressInRequest
 */
export interface TransferUserAddressInRequest {
    /**
     * The street number and name (i.e., \"100 Market St.\").
     * @type {string}
     * @memberof TransferUserAddressInRequest
     */
    street?: string;
    /**
     * Ex. \"San Francisco\"
     * @type {string}
     * @memberof TransferUserAddressInRequest
     */
    city?: string;
    /**
     * The state or province (e.g., \"CA\").
     * @type {string}
     * @memberof TransferUserAddressInRequest
     */
    region?: string;
    /**
     * The postal code (e.g., \"94103\").
     * @type {string}
     * @memberof TransferUserAddressInRequest
     */
    postal_code?: string;
    /**
     * A two-letter country code (e.g., \"US\").
     * @type {string}
     * @memberof TransferUserAddressInRequest
     */
    country?: string;
}
/**
 * The address associated with the account holder.
 * @export
 * @interface TransferUserAddressInResponse
 */
export interface TransferUserAddressInResponse {
    /**
     * The street number and name (i.e., \"100 Market St.\").
     * @type {string}
     * @memberof TransferUserAddressInResponse
     */
    street: string | null;
    /**
     * Ex. \"San Francisco\"
     * @type {string}
     * @memberof TransferUserAddressInResponse
     */
    city: string | null;
    /**
     * The state or province (e.g., \"CA\").
     * @type {string}
     * @memberof TransferUserAddressInResponse
     */
    region: string | null;
    /**
     * The postal code (e.g., \"94103\").
     * @type {string}
     * @memberof TransferUserAddressInResponse
     */
    postal_code: string | null;
    /**
     * A two-letter country code (e.g., \"US\").
     * @type {string}
     * @memberof TransferUserAddressInResponse
     */
    country: string | null;
}
/**
 * The legal name and other information for the account holder.
 * @export
 * @interface TransferUserInRequest
 */
export interface TransferUserInRequest {
    /**
     * The user\'s legal name.
     * @type {string}
     * @memberof TransferUserInRequest
     */
    legal_name: string;
    /**
     * The user\'s phone number.
     * @type {string}
     * @memberof TransferUserInRequest
     */
    phone_number?: string;
    /**
     * The user\'s email address.
     * @type {string}
     * @memberof TransferUserInRequest
     */
    email_address?: string;
    /**
     *
     * @type {TransferUserAddressInRequest}
     * @memberof TransferUserInRequest
     */
    address?: TransferUserAddressInRequest;
}
/**
 * The legal name and other information for the account holder.
 * @export
 * @interface TransferUserInRequestDeprecated
 */
export interface TransferUserInRequestDeprecated {
    /**
     * The user\'s legal name.
     * @type {string}
     * @memberof TransferUserInRequestDeprecated
     */
    legal_name?: string;
    /**
     * The user\'s phone number.
     * @type {string}
     * @memberof TransferUserInRequestDeprecated
     */
    phone_number?: string;
    /**
     * The user\'s email address.
     * @type {string}
     * @memberof TransferUserInRequestDeprecated
     */
    email_address?: string;
    /**
     *
     * @type {TransferUserAddressInRequest}
     * @memberof TransferUserInRequestDeprecated
     */
    address?: TransferUserAddressInRequest;
}
/**
 * The legal name and other information for the account holder.
 * @export
 * @interface TransferUserInResponse
 */
export interface TransferUserInResponse {
    /**
     * The user\'s legal name.
     * @type {string}
     * @memberof TransferUserInResponse
     */
    legal_name: string;
    /**
     * The user\'s phone number.
     * @type {string}
     * @memberof TransferUserInResponse
     */
    phone_number: string | null;
    /**
     * The user\'s email address.
     * @type {string}
     * @memberof TransferUserInResponse
     */
    email_address: string | null;
    /**
     *
     * @type {TransferUserAddressInResponse}
     * @memberof TransferUserInResponse
     */
    address: TransferUserAddressInResponse | null;
}
/**
 * Information specific to wire transfers.
 * @export
 * @interface TransferWireDetails
 */
export interface TransferWireDetails {
    /**
     * Additional information from the wire originator to the beneficiary. Max 140 characters.
     * @type {string}
     * @memberof TransferWireDetails
     */
    message_to_beneficiary?: string | null;
}
/**
 * Trusted Device data associated with the previous Link session.
 * @export
 * @interface TrustedDeviceData
 */
export interface TrustedDeviceData {
    /**
     *
     * @type {number}
     * @memberof TrustedDeviceData
     */
    trust_level?: number;
    /**
     *
     * @type {DeviceId}
     * @memberof TrustedDeviceData
     */
    device_id?: DeviceId;
}
/**
 * Search terms for editing an entity watchlist screening
 * @export
 * @interface UpdateEntityScreeningRequestSearchTerms
 */
export interface UpdateEntityScreeningRequestSearchTerms {
    /**
     * ID of the associated entity program.
     * @type {string}
     * @memberof UpdateEntityScreeningRequestSearchTerms
     */
    entity_watchlist_program_id: string;
    /**
     * The name of the organization being screened. Must have at least one alphabetical character, have a maximum length of 100 characters, and not include leading or trailing spaces.
     * @type {string}
     * @memberof UpdateEntityScreeningRequestSearchTerms
     */
    legal_name?: string;
    /**
     * The numeric or alphanumeric identifier associated with this document. Must be between 4 and 32 characters long, and cannot have leading or trailing spaces.
     * @type {string}
     * @memberof UpdateEntityScreeningRequestSearchTerms
     */
    document_number?: string;
    /**
     * A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).
     * @type {string}
     * @memberof UpdateEntityScreeningRequestSearchTerms
     */
    email_address?: string;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof UpdateEntityScreeningRequestSearchTerms
     */
    country?: string;
    /**
     * A phone number in E.164 format.
     * @type {string}
     * @memberof UpdateEntityScreeningRequestSearchTerms
     */
    phone_number?: string;
    /**
     * An \'http\' or \'https\' URL (must begin with either of those).
     * @type {string}
     * @memberof UpdateEntityScreeningRequestSearchTerms
     */
    url?: string;
}
/**
 * Search terms for editing an individual watchlist screening
 * @export
 * @interface UpdateIndividualScreeningRequestSearchTerms
 */
export interface UpdateIndividualScreeningRequestSearchTerms {
    /**
     * ID of the associated program.
     * @type {string}
     * @memberof UpdateIndividualScreeningRequestSearchTerms
     */
    watchlist_program_id?: string;
    /**
     * The legal name of the individual being screened. Must have at least one alphabetical character, have a maximum length of 100 characters, and not include leading or trailing spaces.
     * @type {string}
     * @memberof UpdateIndividualScreeningRequestSearchTerms
     */
    legal_name?: string;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof UpdateIndividualScreeningRequestSearchTerms
     */
    date_of_birth?: string;
    /**
     * The numeric or alphanumeric identifier associated with this document. Must be between 4 and 32 characters long, and cannot have leading or trailing spaces.
     * @type {string}
     * @memberof UpdateIndividualScreeningRequestSearchTerms
     */
    document_number?: string;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof UpdateIndividualScreeningRequestSearchTerms
     */
    country?: string;
}
/**
 * The identity data permissioned by the end user during the authorization flow.
 * @export
 * @interface UserAccountIdentity
 */
export interface UserAccountIdentity {
    /**
     *
     * @type {UserAccountIdentityName}
     * @memberof UserAccountIdentity
     */
    name?: UserAccountIdentityName | null;
    /**
     *
     * @type {UserAccountIdentityAddress}
     * @memberof UserAccountIdentity
     */
    address?: UserAccountIdentityAddress | null;
    /**
     * The user\'s phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format
     * @type {string}
     * @memberof UserAccountIdentity
     */
    phone_number?: string;
    /**
     * The user\'s email address.  Note: email is currently not returned for users, and is an upcoming addition that will be live in early 2025.
     * @type {string}
     * @memberof UserAccountIdentity
     */
    email?: string | null;
    /**
     * The user\'s date of birth.
     * @type {string}
     * @memberof UserAccountIdentity
     */
    date_of_birth?: string | null;
    /**
     * The user\'s social security number.
     * @type {string}
     * @memberof UserAccountIdentity
     */
    ssn?: string | null;
    /**
     * The last 4 digits of the user\'s social security number.
     * @type {string}
     * @memberof UserAccountIdentity
     */
    ssn_last_4?: string | null;
}
/**
 * The user\'s address.
 * @export
 * @interface UserAccountIdentityAddress
 */
export interface UserAccountIdentityAddress {
    /**
     * The full city name
     * @type {string}
     * @memberof UserAccountIdentityAddress
     */
    city?: string | null;
    /**
     * The region or state. Example: `\"NC\"`
     * @type {string}
     * @memberof UserAccountIdentityAddress
     */
    region?: string | null;
    /**
     * The full street address Example: `\"564 Main Street, APT 15\"`
     * @type {string}
     * @memberof UserAccountIdentityAddress
     */
    street?: string | null;
    /**
     * The second line street address
     * @type {string}
     * @memberof UserAccountIdentityAddress
     */
    street2?: string | null;
    /**
     * The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.
     * @type {string}
     * @memberof UserAccountIdentityAddress
     */
    postal_code?: string | null;
    /**
     * The ISO 3166-1 alpha-2 country code
     * @type {string}
     * @memberof UserAccountIdentityAddress
     */
    country?: string | null;
}
/**
 * The user\'s first name and last name.
 * @export
 * @interface UserAccountIdentityName
 */
export interface UserAccountIdentityName {
    /**
     *
     * @type {string}
     * @memberof UserAccountIdentityName
     */
    first_name?: string;
    /**
     *
     * @type {string}
     * @memberof UserAccountIdentityName
     */
    last_name?: string;
}
/**
 * An Item created during a Layer authorization session.
 * @export
 * @interface UserAccountItem
 */
export interface UserAccountItem {
    /**
     * The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
     * @type {string}
     * @memberof UserAccountItem
     */
    item_id?: string;
    /**
     * The access token associated with the Item data is being requested for.
     * @type {string}
     * @memberof UserAccountItem
     */
    access_token?: string;
}
/**
 * The `USER_ACCOUNT_REVOKED` webhook is fired when an end user has revoked access to their account on the Data Provider\'s portal. This webhook is currently sent only for Chase and PNC Items, but may be sent in the future for other financial institutions that allow account-level permissions revocation through their portals. Upon receiving this webhook, it is recommended to delete any Plaid-derived data you have stored that is associated with the revoked account.  If you are using Auth and receive this webhook, this webhook indicates that the TAN associated with the revoked account is no longer valid and cannot be used to create new transfers. You should not create new ACH transfers for the account that was revoked until access has been re-granted.  You can request the user to re-grant access to their account by sending them through [update mode](https://www.plaid.com/docs/link/update-mode). Alternatively, they may re-grant access directly through the Data Provider\'s portal.  After the user has re-granted access, Auth customers should call the auth endpoint again to obtain the new TAN.
 * @export
 * @interface UserAccountRevokedWebhook
 */
export interface UserAccountRevokedWebhook {
    /**
     * `ITEM`
     * @type {string}
     * @memberof UserAccountRevokedWebhook
     */
    webhook_type: string;
    /**
     * `USER_ACCOUNT_REVOKED`
     * @type {string}
     * @memberof UserAccountRevokedWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof UserAccountRevokedWebhook
     */
    item_id: string;
    /**
     * The external account ID of the affected account
     * @type {string}
     * @memberof UserAccountRevokedWebhook
     */
    account_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof UserAccountRevokedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * UserAccountSessionGetRequest defines the request schema for `/user_account/session/get`
 * @export
 * @interface UserAccountSessionGetRequest
 */
export interface UserAccountSessionGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof UserAccountSessionGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof UserAccountSessionGetRequest
     */
    secret?: string;
    /**
     * The public token generated by the end user Layer session.
     * @type {string}
     * @memberof UserAccountSessionGetRequest
     */
    public_token: string;
}
/**
 * UserAccountSessionGetResponse defines the response schema for `/user_account/session/get`
 * @export
 * @interface UserAccountSessionGetResponse
 */
export interface UserAccountSessionGetResponse {
    /**
     *
     * @type {UserAccountIdentity}
     * @memberof UserAccountSessionGetResponse
     */
    identity: UserAccountIdentity | null;
    /**
     *
     * @type {Array<UserAccountItem>}
     * @memberof UserAccountSessionGetResponse
     */
    items: Array<UserAccountItem>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof UserAccountSessionGetResponse
     */
    request_id: string;
}
/**
 * Home address for the user. Supported values are: not provided, address with only country code or full address.  For more context on this field, see [Input Validation by Country](https://plaid.com/docs/identity-verification/hybrid-input-validation/#input-validation-by-country).
 * @export
 * @interface UserAddress
 */
export interface UserAddress {
    /**
     * The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
     * @type {string}
     * @memberof UserAddress
     */
    street?: string | null;
    /**
     * Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
     * @type {string}
     * @memberof UserAddress
     */
    street2?: string | null;
    /**
     * City from the end user\'s address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters.\"
     * @type {string}
     * @memberof UserAddress
     */
    city?: string | null;
    /**
     * An ISO 3166-2 subdivision code. Related terms would be \"state\", \"province\", \"prefecture\", \"zone\", \"subdivision\", etc.
     * @type {string}
     * @memberof UserAddress
     */
    region?: string | null;
    /**
     * The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
     * @type {string}
     * @memberof UserAddress
     */
    postal_code?: string | null;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof UserAddress
     */
    country: string;
}
/**
 * UserCreateRequest defines the request schema for `/user/create`
 * @export
 * @interface UserCreateRequest
 */
export interface UserCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof UserCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof UserCreateRequest
     */
    secret?: string;
    /**
     * A unique ID representing the end user. Maximum of 128 characters. Typically this will be a user ID number from your application. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof UserCreateRequest
     */
    client_user_id: string;
    /**
     * A unique ID representing a CRA reseller\'s end customer. Maximum of 128 characters.
     * @type {string}
     * @memberof UserCreateRequest
     */
    end_customer?: string;
    /**
     *
     * @type {ConsumerReportUserIdentity}
     * @memberof UserCreateRequest
     */
    consumer_report_user_identity?: ConsumerReportUserIdentity | null;
}
/**
 * UserCreateResponse defines the response schema for `/user/create`
 * @export
 * @interface UserCreateResponse
 */
export interface UserCreateResponse {
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof UserCreateResponse
     */
    user_token: string;
    /**
     * The Plaid `user_id` of the User associated with this webhook, warning, or error.
     * @type {string}
     * @memberof UserCreateResponse
     */
    user_id: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof UserCreateResponse
     */
    request_id: string;
}
/**
 * Custom test accounts are configured with a JSON configuration object formulated according to the schema below. All top level fields are optional. Sending an empty object as a configuration will result in an account configured with random balances and transaction history.
 * @export
 * @interface UserCustomPassword
 */
export interface UserCustomPassword {
    /**
     * The version of the password schema to use, possible values are 1 or 2. The default value is 2. You should only specify 1 if you know it is necessary for your test suite.
     * @type {string}
     * @memberof UserCustomPassword
     */
    version?: string | null;
    /**
     * A seed, in the form of a string, that will be used to randomly generate account and transaction data, if this data is not specified using the `override_accounts` argument. If no seed is specified, the randomly generated data will be different each time.  Note that transactions data is generated relative to the Item\'s creation date. Different Items created on different dates with the same seed for transactions data will have different dates for the transactions. The number of days between each transaction and the Item creation will remain constant. For example, an Item created on December 15 might show a transaction on December 14. An Item created on December 20, using the same seed, would show that same transaction occurring on December 19.
     * @type {string}
     * @memberof UserCustomPassword
     */
    seed: string;
    /**
     * An array of account overrides to configure the accounts for the Item. By default, if no override is specified, transactions and account data will be randomly generated based on the account type and subtype, and other products will have fixed or empty data.
     * @type {Array<OverrideAccounts>}
     * @memberof UserCustomPassword
     */
    override_accounts: Array<OverrideAccounts>;
    /**
     *
     * @type {MFA}
     * @memberof UserCustomPassword
     */
    mfa: MFA;
    /**
     * You may trigger a reCAPTCHA in Plaid Link in the Sandbox environment by using the recaptcha field. Possible values are `good` or `bad`. A value of `good` will result in successful Item creation and `bad` will result in a `RECAPTCHA_BAD` error to simulate a failed reCAPTCHA. Both values require the reCAPTCHA to be manually solved within Plaid Link.
     * @type {string}
     * @memberof UserCustomPassword
     */
    recaptcha: string;
    /**
     * An error code to force on Item creation. Possible values are:  `\"INSTITUTION_NOT_RESPONDING\"` `\"INSTITUTION_NO_LONGER_SUPPORTED\"` `\"INVALID_CREDENTIALS\"` `\"INVALID_MFA\"` `\"ITEM_LOCKED\"` `\"ITEM_LOGIN_REQUIRED\"` `\"ITEM_NOT_SUPPORTED\"` `\"INVALID_LINK_TOKEN\"` `\"MFA_NOT_SUPPORTED\"` `\"NO_ACCOUNTS\"` `\"PLAID_ERROR\"` `\"USER_INPUT_TIMEOUT\"` `\"USER_SETUP_REQUIRED\"`
     * @type {string}
     * @memberof UserCustomPassword
     */
    force_error: string;
}
/**
 * metadata for the set of insights provided in `TransactionsUserInsightsGetResponse`
 * @export
 * @interface UserDataOverview
 */
export interface UserDataOverview {
    /**
     * The total number of transactions.
     * @type {number}
     * @memberof UserDataOverview
     */
    transaction_count: number;
    /**
     * The date of the oldest transaction processed to generate insights.
     * @type {string}
     * @memberof UserDataOverview
     */
    oldest_transaction_date?: string;
    /**
     * The date of the newest transaction processed to generate insights.
     * @type {string}
     * @memberof UserDataOverview
     */
    newest_transaction_date?: string;
    /**
     * The range of days of transactions available.
     * @type {number}
     * @memberof UserDataOverview
     */
    days_available: number;
    /**
     * Sum of outflow amounts.
     * @type {number}
     * @memberof UserDataOverview
     */
    total_outflows: number;
    /**
     * Sum of inflow amounts.
     * @type {number}
     * @memberof UserDataOverview
     */
    total_inflows: number;
}
/**
 * ID number submitted by the user, currently used only for the Identity Verification product. If the user has not submitted this data yet, this field will be `null`. Otherwise, both fields are guaranteed to be filled.
 * @export
 * @interface UserIDNumber
 */
export interface UserIDNumber {
    /**
     * Value of identity document value typed in by user. Alpha-numeric, with all formatting characters stripped. For specific format requirements by ID type, see [Hybrid Input Validation](https://plaid.com/docs/identity-verification/hybrid-input-validation/).
     * @type {string}
     * @memberof UserIDNumber
     */
    value: string;
    /**
     *
     * @type {IDNumberType}
     * @memberof UserIDNumber
     */
    type: IDNumberType;
}
/**
 * UserItemsGetRequest defines the request schema for `/user/items/get`
 * @export
 * @interface UserItemsGetRequest
 */
export interface UserItemsGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof UserItemsGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof UserItemsGetRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof UserItemsGetRequest
     */
    user_token: string;
}
/**
 * UserItemsGetResponse defines the response schema for `/user/items/get`
 * @export
 * @interface UserItemsGetResponse
 */
export interface UserItemsGetResponse {
    /**
     *
     * @type {Array<Item>}
     * @memberof UserItemsGetResponse
     */
    items: Array<Item>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof UserItemsGetResponse
     */
    request_id: string;
}
/**
 * The `USER_PERMISSION_REVOKED` webhook may be fired when an end user has revoked the permission that they previously granted to access an Item. If the end user revoked their permissions through Plaid (such as via the Plaid Portal or by contacting Plaid Support), the webhook will fire. If the end user revoked their permissions directly through the institution, this webhook may not always fire, since some institutions’ consent portals do not trigger this webhook. Upon receiving this webhook, it is recommended to delete any stored data from Plaid associated with the Item. To restore the Item, it can be sent through [update mode](https://plaid.com/docs/link/update-mode).   Note that when working with tokenized account numbers with Auth or Transfer, the account number provided by Plaid will no longer work for creating transfers once user permission has been revoked.
 * @export
 * @interface UserPermissionRevokedWebhook
 */
export interface UserPermissionRevokedWebhook {
    /**
     * `ITEM`
     * @type {string}
     * @memberof UserPermissionRevokedWebhook
     */
    webhook_type: string;
    /**
     * `USER_PERMISSION_REVOKED`
     * @type {string}
     * @memberof UserPermissionRevokedWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof UserPermissionRevokedWebhook
     */
    item_id: string;
    /**
     *
     * @type {PlaidError}
     * @memberof UserPermissionRevokedWebhook
     */
    error?: PlaidError | null;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof UserPermissionRevokedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * UserRemoveRequest defines the request schema for `/user/remove`
 * @export
 * @interface UserRemoveRequest
 */
export interface UserRemoveRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof UserRemoveRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof UserRemoveRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof UserRemoveRequest
     */
    user_token: string;
}
/**
 * UserRemoveResponse defines the response schema for `/user/remove`
 * @export
 * @interface UserRemoveResponse
 */
export interface UserRemoveResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof UserRemoveResponse
     */
    request_id: string;
}
/**
 * The income category for a specified income source
 * @export
 * @enum {string}
 */
export declare enum UserStatedIncomeSourceCategory {
    Other = "OTHER",
    Salary = "SALARY",
    Unemployment = "UNEMPLOYMENT",
    Cash = "CASH",
    GigEconomy = "GIG_ECONOMY",
    Rental = "RENTAL",
    ChildSupport = "CHILD_SUPPORT",
    Military = "MILITARY",
    Retirement = "RETIREMENT",
    LongTermDisability = "LONG_TERM_DISABILITY",
    BankInterest = "BANK_INTEREST"
}
/**
 * The pay frequency of a specified income source
 * @export
 * @enum {string}
 */
export declare enum UserStatedIncomeSourceFrequency {
    Unknown = "UNKNOWN",
    Weekly = "WEEKLY",
    Biweekly = "BIWEEKLY",
    SemiMonthly = "SEMI_MONTHLY",
    Monthly = "MONTHLY"
}
/**
 * The pay type - `GROSS`, `NET`, or `UNKNOWN` for a specified income source
 * @export
 * @enum {string}
 */
export declare enum UserStatedIncomeSourcePayType {
    Unknown = "UNKNOWN",
    Gross = "GROSS",
    Net = "NET"
}
/**
 * UserThirdPartyTokenCreateRequest defines the request schema for `/user/third_party_token/create`
 * @export
 * @interface UserThirdPartyTokenCreateRequest
 */
export interface UserThirdPartyTokenCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof UserThirdPartyTokenCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof UserThirdPartyTokenCreateRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof UserThirdPartyTokenCreateRequest
     */
    user_token: string;
    /**
     * The Plaid API `client_id` of the third-party client the token will be shared with. The token will only be valid for the specified client.
     * @type {string}
     * @memberof UserThirdPartyTokenCreateRequest
     */
    third_party_client_id: string;
    /**
     * The expiration date and time for the third-party user token in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDThh:mm:ssZ`). The expiration is restricted to a maximum of 24 hours from the token\'s creation time. If not provided, the token will automatically expire after 24 hours.
     * @type {string}
     * @memberof UserThirdPartyTokenCreateRequest
     */
    expiration_time?: string | null;
}
/**
 * UserThirdPartyTokenCreateResponse defines the response schema for `/user/third_party_token/create`
 * @export
 * @interface UserThirdPartyTokenCreateResponse
 */
export interface UserThirdPartyTokenCreateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof UserThirdPartyTokenCreateResponse
     */
    request_id: string;
    /**
     * The third-party user token associated with the requested User data.
     * @type {string}
     * @memberof UserThirdPartyTokenCreateResponse
     */
    third_party_user_token: string;
}
/**
 * UserThirdPartyTokenCreateRequest defines the request schema for `/user/third_party_token/remove`
 * @export
 * @interface UserThirdPartyTokenRemoveRequest
 */
export interface UserThirdPartyTokenRemoveRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof UserThirdPartyTokenRemoveRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof UserThirdPartyTokenRemoveRequest
     */
    secret?: string;
    /**
     * The third-party user token associated with the requested User data.
     * @type {string}
     * @memberof UserThirdPartyTokenRemoveRequest
     */
    third_party_user_token: string;
}
/**
 * UserThirdPartyTokenCreateResponse defines the response schema for `/user/third_party_token/remove`
 * @export
 * @interface UserThirdPartyTokenRemoveResponse
 */
export interface UserThirdPartyTokenRemoveResponse {
    /**
     * `true` if the third-party user token was successfully removed.
     * @type {boolean}
     * @memberof UserThirdPartyTokenRemoveResponse
     */
    removed: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof UserThirdPartyTokenRemoveResponse
     */
    request_id: string;
}
/**
 * UserUpdateRequest defines the request schema for `/user/update`
 * @export
 * @interface UserUpdateRequest
 */
export interface UserUpdateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof UserUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof UserUpdateRequest
     */
    secret?: string;
    /**
     * The user token associated with the User data is being requested for.
     * @type {string}
     * @memberof UserUpdateRequest
     */
    user_token: string;
    /**
     *
     * @type {ConsumerReportUserIdentity}
     * @memberof UserUpdateRequest
     */
    consumer_report_user_identity: ConsumerReportUserIdentity | null;
}
/**
 * UserUpdateResponse defines the response schema for `/user/update`
 * @export
 * @interface UserUpdateResponse
 */
export interface UserUpdateResponse {
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof UserUpdateResponse
     */
    request_id: string;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface ValidationSource
 */
export interface ValidationSource {
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
     * @type {string}
     * @memberof ValidationSource
     */
    ValidationSourceName: string | null;
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
     * @type {string}
     * @memberof ValidationSource
     */
    ValidationSourceReferenceIdentifier: string | null;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface ValidationSources
 */
export interface ValidationSources {
    /**
     * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
     * @type {Array<ValidationSource>}
     * @memberof ValidationSources
     */
    VALIDATION_SOURCE: Array<ValidationSource>;
}
/**
 * Fired when an Item was not verified via automated micro-deposits after seven days since the automated micro-deposit was made.
 * @export
 * @interface VerificationExpiredWebhook
 */
export interface VerificationExpiredWebhook {
    /**
     * `AUTH`
     * @type {string}
     * @memberof VerificationExpiredWebhook
     */
    webhook_type: string;
    /**
     * `VERIFICATION_EXPIRED`
     * @type {string}
     * @memberof VerificationExpiredWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof VerificationExpiredWebhook
     */
    item_id: string;
    /**
     * The `account_id` of the account associated with the webhook
     * @type {string}
     * @memberof VerificationExpiredWebhook
     */
    account_id: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof VerificationExpiredWebhook
     */
    environment: WebhookEnvironmentValues;
    /**
     *
     * @type {PlaidError}
     * @memberof VerificationExpiredWebhook
     */
    error?: PlaidError | null;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface VerificationOfAsset
 */
export interface VerificationOfAsset {
    /**
     *
     * @type {ReportingInformation}
     * @memberof VerificationOfAsset
     */
    REPORTING_INFORMATION: ReportingInformation;
    /**
     *
     * @type {ServiceProductFulfillment}
     * @memberof VerificationOfAsset
     */
    SERVICE_PRODUCT_FULFILLMENT: ServiceProductFulfillment;
    /**
     *
     * @type {VerificationOfAssetResponse}
     * @memberof VerificationOfAsset
     */
    VERIFICATION_OF_ASSET_RESPONSE: VerificationOfAssetResponse;
}
/**
 * Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
 * @export
 * @interface VerificationOfAssetResponse
 */
export interface VerificationOfAssetResponse {
    /**
     *
     * @type {Assets}
     * @memberof VerificationOfAssetResponse
     */
    ASSETS: Assets;
}
/**
 * The verification refresh status. One of the following:  `\"VERIFICATION_REFRESH_STATUS_USER_PRESENCE_REQUIRED\"` User presence is required to refresh an income verification. `\"VERIFICATION_REFRESH_SUCCESSFUL\"` The income verification refresh was successful. `\"VERIFICATION_REFRESH_NOT_FOUND\"` No new data was found after the income verification refresh.
 * @export
 * @enum {string}
 */
export declare enum VerificationRefreshStatus {
    StatusUserPresenceRequired = "VERIFICATION_REFRESH_STATUS_USER_PRESENCE_REQUIRED",
    Successful = "VERIFICATION_REFRESH_SUCCESSFUL",
    NotFound = "VERIFICATION_REFRESH_NOT_FOUND"
}
/**
 * The verification status. One of the following:  `\"VERIFIED\"`: The information was successfully verified.  `\"UNVERIFIED\"`: The verification has not yet been performed.  `\"NEEDS_INFO\"`: The verification was attempted but could not be completed due to missing information.  \"`UNABLE_TO_VERIFY`\": The verification was performed and the information could not be verified.  `\"UNKNOWN\"`: The verification status is unknown.
 * @export
 * @enum {string}
 */
export declare enum VerificationStatus {
    Verified = "VERIFIED",
    Unverified = "UNVERIFIED",
    NeedsInfo = "NEEDS_INFO",
    UnableToVerify = "UNABLE_TO_VERIFY",
    Unknown = "UNKNOWN"
}
/**
 * Additional information for the `verify_sms` step.
 * @export
 * @interface VerifySMSDetails
 */
export interface VerifySMSDetails {
    /**
     *
     * @type {VerifySMSDetailsStatus}
     * @memberof VerifySMSDetails
     */
    status: VerifySMSDetailsStatus;
    /**
     * An array where each entry represents a verification attempt for the `verify_sms` step. Each entry represents one user-submitted phone number. Phone number edits, and in some cases error handling due to edge cases like rate limiting, may generate additional verifications.
     * @type {Array<SMSVerification>}
     * @memberof VerifySMSDetails
     */
    verifications: Array<SMSVerification>;
}
/**
 * The outcome status for the associated Identity Verification attempt\'s `verify_sms` step. This field will always have the same value as `steps.verify_sms`.
 * @export
 * @enum {string}
 */
export declare enum VerifySMSDetailsStatus {
    Success = "success",
    Failed = "failed"
}
/**
 * W2 is an object that represents income data taken from a W2 tax document.
 * @export
 * @interface W2
 */
export interface W2 {
    /**
     *
     * @type {PaystubEmployer}
     * @memberof W2
     */
    employer?: PaystubEmployer;
    /**
     *
     * @type {Employee}
     * @memberof W2
     */
    employee?: Employee;
    /**
     * The tax year of the W2 document.
     * @type {string}
     * @memberof W2
     */
    tax_year?: string | null;
    /**
     * An employee identification number or EIN.
     * @type {string}
     * @memberof W2
     */
    employer_id_number?: string | null;
    /**
     * Wages from tips and other compensation.
     * @type {string}
     * @memberof W2
     */
    wages_tips_other_comp?: string | null;
    /**
     * Federal income tax withheld for the tax year.
     * @type {string}
     * @memberof W2
     */
    federal_income_tax_withheld?: string | null;
    /**
     * Wages from social security.
     * @type {string}
     * @memberof W2
     */
    social_security_wages?: string | null;
    /**
     * Social security tax withheld for the tax year.
     * @type {string}
     * @memberof W2
     */
    social_security_tax_withheld?: string | null;
    /**
     * Wages and tips from medicare.
     * @type {string}
     * @memberof W2
     */
    medicare_wages_and_tips?: string | null;
    /**
     * Medicare tax withheld for the tax year.
     * @type {string}
     * @memberof W2
     */
    medicare_tax_withheld?: string | null;
    /**
     * Tips from social security.
     * @type {string}
     * @memberof W2
     */
    social_security_tips?: string | null;
    /**
     * Allocated tips.
     * @type {string}
     * @memberof W2
     */
    allocated_tips?: string | null;
    /**
     * Contents from box 9 on the W2.
     * @type {string}
     * @memberof W2
     */
    box_9?: string | null;
    /**
     * Dependent care benefits.
     * @type {string}
     * @memberof W2
     */
    dependent_care_benefits?: string | null;
    /**
     * Nonqualified plans.
     * @type {string}
     * @memberof W2
     */
    nonqualified_plans?: string | null;
    /**
     *
     * @type {Array<W2Box12>}
     * @memberof W2
     */
    box_12?: Array<W2Box12>;
    /**
     * Statutory employee.
     * @type {string}
     * @memberof W2
     */
    statutory_employee?: string | null;
    /**
     * Retirement plan.
     * @type {string}
     * @memberof W2
     */
    retirement_plan?: string | null;
    /**
     * Third party sick pay.
     * @type {string}
     * @memberof W2
     */
    third_party_sick_pay?: string | null;
    /**
     * Other.
     * @type {string}
     * @memberof W2
     */
    other?: string | null;
    /**
     *
     * @type {Array<W2StateAndLocalWages>}
     * @memberof W2
     */
    state_and_local_wages?: Array<W2StateAndLocalWages>;
}
/**
 * Data on the W2 Box 12
 * @export
 * @interface W2Box12
 */
export interface W2Box12 {
    /**
     * W2 Box 12 code.
     * @type {string}
     * @memberof W2Box12
     */
    code?: string | null;
    /**
     * W2 Box 12 amount.
     * @type {string}
     * @memberof W2Box12
     */
    amount?: string | null;
}
/**
 * Data on the W2 Box 12
 * @export
 * @interface W2Box12Override
 */
export interface W2Box12Override {
    /**
     * W2 Box 12 code.
     * @type {string}
     * @memberof W2Box12Override
     */
    code?: string | null;
    /**
     * W2 Box 12 amount.
     * @type {string}
     * @memberof W2Box12Override
     */
    amount?: string | null;
}
/**
 * W2 is an object that represents income data taken from a W2 tax document.
 * @export
 * @interface W2Override
 */
export interface W2Override {
    /**
     *
     * @type {PaystubOverrideEmployer}
     * @memberof W2Override
     */
    employer?: PaystubOverrideEmployer;
    /**
     *
     * @type {PaystubOverrideEmployee}
     * @memberof W2Override
     */
    employee?: PaystubOverrideEmployee;
    /**
     * The tax year of the W2 document.
     * @type {string}
     * @memberof W2Override
     */
    tax_year?: string | null;
    /**
     * An employer identification number or EIN.
     * @type {string}
     * @memberof W2Override
     */
    employer_id_number?: string | null;
    /**
     * Wages from tips and other compensation.
     * @type {string}
     * @memberof W2Override
     */
    wages_tips_other_comp?: string | null;
    /**
     * Federal income tax withheld for the tax year.
     * @type {string}
     * @memberof W2Override
     */
    federal_income_tax_withheld?: string | null;
    /**
     * Wages from social security.
     * @type {string}
     * @memberof W2Override
     */
    social_security_wages?: string | null;
    /**
     * Social security tax withheld for the tax year.
     * @type {string}
     * @memberof W2Override
     */
    social_security_tax_withheld?: string | null;
    /**
     * Wages and tips from medicare.
     * @type {string}
     * @memberof W2Override
     */
    medicare_wages_and_tips?: string | null;
    /**
     * Medicare tax withheld for the tax year.
     * @type {string}
     * @memberof W2Override
     */
    medicare_tax_withheld?: string | null;
    /**
     * Tips from social security.
     * @type {string}
     * @memberof W2Override
     */
    social_security_tips?: string | null;
    /**
     * Allocated tips.
     * @type {string}
     * @memberof W2Override
     */
    allocated_tips?: string | null;
    /**
     * Contents from box 9 on the W2.
     * @type {string}
     * @memberof W2Override
     */
    box_9?: string | null;
    /**
     * Dependent care benefits.
     * @type {string}
     * @memberof W2Override
     */
    dependent_care_benefits?: string | null;
    /**
     * Nonqualified plans.
     * @type {string}
     * @memberof W2Override
     */
    nonqualified_plans?: string | null;
    /**
     *
     * @type {Array<W2Box12Override>}
     * @memberof W2Override
     */
    box_12?: Array<W2Box12Override>;
    /**
     * Statutory employee.
     * @type {string}
     * @memberof W2Override
     */
    statutory_employee?: string | null;
    /**
     * Retirement plan.
     * @type {string}
     * @memberof W2Override
     */
    retirement_plan?: string | null;
    /**
     * Third party sick pay.
     * @type {string}
     * @memberof W2Override
     */
    third_party_sick_pay?: string | null;
    /**
     * Other.
     * @type {string}
     * @memberof W2Override
     */
    other?: string | null;
    /**
     *
     * @type {Array<W2StateAndLocalWagesOverride>}
     * @memberof W2Override
     */
    state_and_local_wages?: Array<W2StateAndLocalWagesOverride>;
}
/**
 * W2 state and local wages
 * @export
 * @interface W2StateAndLocalWages
 */
export interface W2StateAndLocalWages {
    /**
     * State associated with the wage.
     * @type {string}
     * @memberof W2StateAndLocalWages
     */
    state?: string | null;
    /**
     * State identification number of the employer.
     * @type {string}
     * @memberof W2StateAndLocalWages
     */
    employer_state_id_number?: string | null;
    /**
     * Wages and tips from the specified state.
     * @type {string}
     * @memberof W2StateAndLocalWages
     */
    state_wages_tips?: string | null;
    /**
     * Income tax from the specified state.
     * @type {string}
     * @memberof W2StateAndLocalWages
     */
    state_income_tax?: string | null;
    /**
     * Wages and tips from the locality.
     * @type {string}
     * @memberof W2StateAndLocalWages
     */
    local_wages_tips?: string | null;
    /**
     * Income tax from the locality.
     * @type {string}
     * @memberof W2StateAndLocalWages
     */
    local_income_tax?: string | null;
    /**
     * Name of the locality.
     * @type {string}
     * @memberof W2StateAndLocalWages
     */
    locality_name?: string | null;
}
/**
 * W2 state and local wages
 * @export
 * @interface W2StateAndLocalWagesOverride
 */
export interface W2StateAndLocalWagesOverride {
    /**
     * State associated with the wage.
     * @type {string}
     * @memberof W2StateAndLocalWagesOverride
     */
    state?: string | null;
    /**
     * State identification number of the employer.
     * @type {string}
     * @memberof W2StateAndLocalWagesOverride
     */
    employer_state_id_number?: string | null;
    /**
     * Wages and tips from the specified state.
     * @type {string}
     * @memberof W2StateAndLocalWagesOverride
     */
    state_wages_tips?: string | null;
    /**
     * Income tax from the specified state.
     * @type {string}
     * @memberof W2StateAndLocalWagesOverride
     */
    state_income_tax?: string | null;
    /**
     * Wages and tips from the locality.
     * @type {string}
     * @memberof W2StateAndLocalWagesOverride
     */
    local_wages_tips?: string | null;
    /**
     * Income tax from the locality.
     * @type {string}
     * @memberof W2StateAndLocalWagesOverride
     */
    local_income_tax?: string | null;
    /**
     * Name of the locality.
     * @type {string}
     * @memberof W2StateAndLocalWagesOverride
     */
    locality_name?: string | null;
}
/**
 * An object representing the e-wallet
 * @export
 * @interface Wallet
 */
export interface Wallet {
    /**
     * A unique ID identifying the e-wallet
     * @type {string}
     * @memberof Wallet
     */
    wallet_id: string;
    /**
     *
     * @type {WalletBalance}
     * @memberof Wallet
     */
    balance: WalletBalance;
    /**
     *
     * @type {WalletNumbers}
     * @memberof Wallet
     */
    numbers: WalletNumbers;
    /**
     * The ID of the recipient that corresponds to the e-wallet account numbers
     * @type {string}
     * @memberof Wallet
     */
    recipient_id?: string;
    /**
     *
     * @type {WalletStatus}
     * @memberof Wallet
     */
    status: WalletStatus;
}
/**
 * An object representing the e-wallet balance
 * @export
 * @interface WalletBalance
 */
export interface WalletBalance {
    /**
     * The ISO-4217 currency code of the balance
     * @type {string}
     * @memberof WalletBalance
     */
    iso_currency_code: string;
    /**
     * The total amount of funds in the account
     * @type {number}
     * @memberof WalletBalance
     */
    current: number;
    /**
     * The total amount of funds in the account after subtracting pending debit transaction amounts
     * @type {number}
     * @memberof WalletBalance
     */
    available: number;
}
/**
 * WalletCreateRequest defines the request schema for `/wallet/create`
 * @export
 * @interface WalletCreateRequest
 */
export interface WalletCreateRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WalletCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WalletCreateRequest
     */
    secret?: string;
    /**
     *
     * @type {WalletISOCurrencyCode}
     * @memberof WalletCreateRequest
     */
    iso_currency_code: WalletISOCurrencyCode;
}
/**
 * WalletCreateResponse defines the response schema for `/wallet/create`
 * @export
 * @interface WalletCreateResponse
 */
export interface WalletCreateResponse {
    /**
     * A unique ID identifying the e-wallet
     * @type {string}
     * @memberof WalletCreateResponse
     */
    wallet_id: string;
    /**
     *
     * @type {WalletBalance}
     * @memberof WalletCreateResponse
     */
    balance: WalletBalance;
    /**
     *
     * @type {WalletNumbers}
     * @memberof WalletCreateResponse
     */
    numbers: WalletNumbers;
    /**
     * The ID of the recipient that corresponds to the e-wallet account numbers
     * @type {string}
     * @memberof WalletCreateResponse
     */
    recipient_id?: string;
    /**
     *
     * @type {WalletStatus}
     * @memberof WalletCreateResponse
     */
    status: WalletStatus;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WalletCreateResponse
     */
    request_id: string;
}
/**
 * WalletGetRequest defines the request schema for `/wallet/get`
 * @export
 * @interface WalletGetRequest
 */
export interface WalletGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WalletGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WalletGetRequest
     */
    secret?: string;
    /**
     * The ID of the e-wallet
     * @type {string}
     * @memberof WalletGetRequest
     */
    wallet_id: string;
}
/**
 * WalletGetResponse defines the response schema for `/wallet/get`
 * @export
 * @interface WalletGetResponse
 */
export interface WalletGetResponse {
    /**
     * A unique ID identifying the e-wallet
     * @type {string}
     * @memberof WalletGetResponse
     */
    wallet_id: string;
    /**
     *
     * @type {WalletBalance}
     * @memberof WalletGetResponse
     */
    balance: WalletBalance;
    /**
     *
     * @type {WalletNumbers}
     * @memberof WalletGetResponse
     */
    numbers: WalletNumbers;
    /**
     * The ID of the recipient that corresponds to the e-wallet account numbers
     * @type {string}
     * @memberof WalletGetResponse
     */
    recipient_id?: string;
    /**
     *
     * @type {WalletStatus}
     * @memberof WalletGetResponse
     */
    status: WalletStatus;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WalletGetResponse
     */
    request_id: string;
}
/**
 * An ISO-4217 currency code, used with e-wallets and transactions.
 * @export
 * @enum {string}
 */
export declare enum WalletISOCurrencyCode {
    Gbp = "GBP",
    Eur = "EUR"
}
/**
 * WalletListRequest defines the request schema for `/wallet/list`
 * @export
 * @interface WalletListRequest
 */
export interface WalletListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WalletListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WalletListRequest
     */
    secret?: string;
    /**
     *
     * @type {WalletISOCurrencyCode}
     * @memberof WalletListRequest
     */
    iso_currency_code?: WalletISOCurrencyCode;
    /**
     * A base64 value representing the latest e-wallet that has already been requested. Set this to `next_cursor` received from the previous `/wallet/list` request. If provided, the response will only contain e-wallets created before that e-wallet. If omitted, the response will contain e-wallets starting from the most recent, and in descending order.
     * @type {string}
     * @memberof WalletListRequest
     */
    cursor?: string;
    /**
     * The number of e-wallets to fetch
     * @type {number}
     * @memberof WalletListRequest
     */
    count?: number;
}
/**
 * WalletListResponse defines the response schema for `/wallet/list`
 * @export
 * @interface WalletListResponse
 */
export interface WalletListResponse {
    /**
     * An array of e-wallets
     * @type {Array<Wallet>}
     * @memberof WalletListResponse
     */
    wallets: Array<Wallet>;
    /**
     * Cursor used for fetching e-wallets created before the latest e-wallet provided in this response
     * @type {string}
     * @memberof WalletListResponse
     */
    next_cursor?: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WalletListResponse
     */
    request_id: string;
}
/**
 * An object representing the e-wallet account numbers
 * @export
 * @interface WalletNumbers
 */
export interface WalletNumbers {
    /**
     *
     * @type {RecipientBACS}
     * @memberof WalletNumbers
     */
    bacs?: RecipientBACS | null;
    /**
     *
     * @type {NumbersInternationalIBAN}
     * @memberof WalletNumbers
     */
    international?: NumbersInternationalIBAN | null;
}
/**
 * The payment scheme used to execute this transaction. This is present only for transaction types `PAYOUT` and `REFUND`.  `FASTER_PAYMENTS`: The standard payment scheme within the UK.  `SEPA_CREDIT_TRANSFER`: The standard payment to a beneficiary within the SEPA area.  `SEPA_CREDIT_TRANSFER_INSTANT`: Instant payment to a beneficiary within the SEPA area.
 * @export
 * @enum {string}
 */
export declare enum WalletPaymentScheme {
    Null = "null",
    FasterPayments = "FASTER_PAYMENTS",
    SepaCreditTransfer = "SEPA_CREDIT_TRANSFER",
    SepaCreditTransferInstant = "SEPA_CREDIT_TRANSFER_INSTANT"
}
/**
 * The status of the wallet.  `UNKNOWN`: The wallet status is unknown.  `ACTIVE`: The wallet is active and ready to send money to and receive money from.  `CLOSED`: The wallet is closed. Any transactions made to or from this wallet will error.
 * @export
 * @enum {string}
 */
export declare enum WalletStatus {
    Unknown = "UNKNOWN",
    Active = "ACTIVE",
    Closed = "CLOSED"
}
/**
 * The transaction details
 * @export
 * @interface WalletTransaction
 */
export interface WalletTransaction {
    /**
     * A unique ID identifying the transaction
     * @type {string}
     * @memberof WalletTransaction
     */
    transaction_id: string;
    /**
     * The EMI (E-Money Institution) wallet that this payment is associated with, if any. This wallet is used as an intermediary account to enable Plaid to reconcile the settlement of funds for Payment Initiation requests.
     * @type {string}
     * @memberof WalletTransaction
     */
    wallet_id: string;
    /**
     * A reference for the transaction
     * @type {string}
     * @memberof WalletTransaction
     */
    reference: string;
    /**
     * The type of the transaction. The supported transaction types that are returned are: `BANK_TRANSFER:` a transaction which credits an e-wallet through an external bank transfer.  `PAYOUT:` a transaction which debits an e-wallet by disbursing funds to a counterparty.  `PIS_PAY_IN:` a payment which credits an e-wallet through Plaid\'s Payment Initiation Services (PIS) APIs. For more information see the [Payment Initiation endpoints](https://plaid.com/docs/api/products/payment-initiation/).  `REFUND:` a transaction which debits an e-wallet by refunding a previously initiated payment made through Plaid\'s [PIS APIs](https://plaid.com/docs/api/products/payment-initiation/).  `FUNDS_SWEEP`: an automated transaction which debits funds from an e-wallet to a designated client-owned account.  `RETURN`: an automated transaction where a debit transaction was reversed and money moved back to originating account.  `RECALL`: a transaction where the sending bank has requested the return of funds due to a fraud claim, technical error, or other issue associated with the payment.
     * @type {string}
     * @memberof WalletTransaction
     */
    type: WalletTransactionTypeEnum;
    /**
     *
     * @type {WalletPaymentScheme}
     * @memberof WalletTransaction
     */
    scheme?: WalletPaymentScheme | null;
    /**
     *
     * @type {WalletTransactionAmount}
     * @memberof WalletTransaction
     */
    amount: WalletTransactionAmount;
    /**
     *
     * @type {WalletTransactionCounterparty}
     * @memberof WalletTransaction
     */
    counterparty: WalletTransactionCounterparty;
    /**
     *
     * @type {WalletTransactionStatus}
     * @memberof WalletTransaction
     */
    status: WalletTransactionStatus;
    /**
     * Timestamp when the transaction was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof WalletTransaction
     */
    created_at: string;
    /**
     * The date and time of the last time the `status` was updated, in IS0 8601 format
     * @type {string}
     * @memberof WalletTransaction
     */
    last_status_update: string;
    /**
     * The payment id that this transaction is associated with, if any. This is present only for transaction types `PIS_PAY_IN` and `REFUND`.
     * @type {string}
     * @memberof WalletTransaction
     */
    payment_id?: string | null;
    /**
     *
     * @type {WalletTransactionFailureReason}
     * @memberof WalletTransaction
     */
    failure_reason?: WalletTransactionFailureReason | null;
    /**
     * A list of wallet transactions that this transaction is associated with, if any.
     * @type {Array<WalletTransactionRelation>}
     * @memberof WalletTransaction
     */
    related_transactions?: Array<WalletTransactionRelation>;
}
/**
    * @export
    * @enum {string}
    */
export declare enum WalletTransactionTypeEnum {
    BankTransfer = "BANK_TRANSFER",
    Payout = "PAYOUT",
    PisPayIn = "PIS_PAY_IN",
    Refund = "REFUND",
    FundsSweep = "FUNDS_SWEEP",
    Return = "RETURN",
    Recall = "RECALL"
}
/**
 * The amount and currency of a transaction
 * @export
 * @interface WalletTransactionAmount
 */
export interface WalletTransactionAmount {
    /**
     *
     * @type {WalletISOCurrencyCode}
     * @memberof WalletTransactionAmount
     */
    iso_currency_code: WalletISOCurrencyCode;
    /**
     * The amount of the transaction. Must contain at most two digits of precision e.g. `1.23`.
     * @type {number}
     * @memberof WalletTransactionAmount
     */
    value: number;
}
/**
 * An object representing the e-wallet transaction\'s counterparty
 * @export
 * @interface WalletTransactionCounterparty
 */
export interface WalletTransactionCounterparty {
    /**
     * The name of the counterparty
     * @type {string}
     * @memberof WalletTransactionCounterparty
     */
    name: string;
    /**
     *
     * @type {WalletTransactionCounterpartyNumbers}
     * @memberof WalletTransactionCounterparty
     */
    numbers: WalletTransactionCounterpartyNumbers;
    /**
     *
     * @type {PaymentInitiationAddress}
     * @memberof WalletTransactionCounterparty
     */
    address?: PaymentInitiationAddress | null;
    /**
     * The counterparty\'s birthdate, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format.
     * @type {string}
     * @memberof WalletTransactionCounterparty
     */
    date_of_birth?: string | null;
}
/**
 * The account number and sort code of the counterparty\'s account
 * @export
 * @interface WalletTransactionCounterpartyBACS
 */
export interface WalletTransactionCounterpartyBACS {
    /**
     * The account number of the account. Maximum of 10 characters.
     * @type {string}
     * @memberof WalletTransactionCounterpartyBACS
     */
    account?: string;
    /**
     * The 6-character sort code of the account.
     * @type {string}
     * @memberof WalletTransactionCounterpartyBACS
     */
    sort_code?: string;
}
/**
 * International Bank Account Number for a Wallet Transaction
 * @export
 * @interface WalletTransactionCounterpartyInternational
 */
export interface WalletTransactionCounterpartyInternational {
    /**
     * International Bank Account Number (IBAN).
     * @type {string}
     * @memberof WalletTransactionCounterpartyInternational
     */
    iban?: string;
}
/**
 * The counterparty\'s bank account numbers. Exactly one of IBAN or BACS data is required.
 * @export
 * @interface WalletTransactionCounterpartyNumbers
 */
export interface WalletTransactionCounterpartyNumbers {
    /**
     *
     * @type {WalletTransactionCounterpartyBACS}
     * @memberof WalletTransactionCounterpartyNumbers
     */
    bacs?: WalletTransactionCounterpartyBACS;
    /**
     *
     * @type {WalletTransactionCounterpartyInternational}
     * @memberof WalletTransactionCounterpartyNumbers
     */
    international?: WalletTransactionCounterpartyInternational | null;
}
/**
 * WalletTransactionExecuteRequest defines the request schema for `/wallet/transaction/execute`
 * @export
 * @interface WalletTransactionExecuteRequest
 */
export interface WalletTransactionExecuteRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WalletTransactionExecuteRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WalletTransactionExecuteRequest
     */
    secret?: string;
    /**
     * A random key provided by the client, per unique wallet transaction. Maximum of 128 characters.  The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. If a request to execute a wallet transaction fails due to a network connection error, then after a minimum delay of one minute, you can retry the request with the same idempotency key to guarantee that only a single wallet transaction is created. If the request was successfully processed, it will prevent any transaction that uses the same idempotency key, and was received within 24 hours of the first request, from being processed.
     * @type {string}
     * @memberof WalletTransactionExecuteRequest
     */
    idempotency_key: string;
    /**
     * The ID of the e-wallet to debit from
     * @type {string}
     * @memberof WalletTransactionExecuteRequest
     */
    wallet_id: string;
    /**
     *
     * @type {WalletTransactionCounterparty}
     * @memberof WalletTransactionExecuteRequest
     */
    counterparty: WalletTransactionCounterparty;
    /**
     *
     * @type {WalletTransactionAmount}
     * @memberof WalletTransactionExecuteRequest
     */
    amount: WalletTransactionAmount;
    /**
     * A reference for the transaction. This must be an alphanumeric string with 6 to 18 characters and must not contain any special characters or spaces. Ensure that the `reference` field is unique for each transaction.
     * @type {string}
     * @memberof WalletTransactionExecuteRequest
     */
    reference: string;
    /**
     *
     * @type {OriginatingFundSource}
     * @memberof WalletTransactionExecuteRequest
     */
    originating_fund_source?: OriginatingFundSource | null;
}
/**
 * WalletTransactionExecuteResponse defines the response schema for `/wallet/transaction/execute`
 * @export
 * @interface WalletTransactionExecuteResponse
 */
export interface WalletTransactionExecuteResponse {
    /**
     * A unique ID identifying the transaction
     * @type {string}
     * @memberof WalletTransactionExecuteResponse
     */
    transaction_id: string;
    /**
     *
     * @type {WalletTransactionStatus}
     * @memberof WalletTransactionExecuteResponse
     */
    status: WalletTransactionStatus;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WalletTransactionExecuteResponse
     */
    request_id: string;
}
/**
 * The error code of a failed transaction. Error codes include: `EXTERNAL_SYSTEM`: The transaction was declined by an external system. `EXPIRED`: The transaction request has expired. `CANCELLED`: The transaction request was rescinded. `INVALID`: The transaction did not meet certain criteria, such as an inactive account or no valid counterparty, etc. `UNKNOWN`: The transaction was unsuccessful, but the exact cause is unknown.
 * @export
 * @enum {string}
 */
export declare enum WalletTransactionFailureReason {
    ExternalSystem = "EXTERNAL_SYSTEM",
    Expired = "EXPIRED",
    Cancelled = "CANCELLED",
    Invalid = "INVALID",
    Unknown = "UNKNOWN"
}
/**
 * WalletTransactionGetRequest defines the request schema for `/wallet/transaction/get`
 * @export
 * @interface WalletTransactionGetRequest
 */
export interface WalletTransactionGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WalletTransactionGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WalletTransactionGetRequest
     */
    secret?: string;
    /**
     * The ID of the transaction to fetch
     * @type {string}
     * @memberof WalletTransactionGetRequest
     */
    transaction_id: string;
}
/**
 * WalletTransactionGetResponse defines the response schema for `/wallet/transaction/get`
 * @export
 * @interface WalletTransactionGetResponse
 */
export interface WalletTransactionGetResponse {
    /**
     * A unique ID identifying the transaction
     * @type {string}
     * @memberof WalletTransactionGetResponse
     */
    transaction_id: string;
    /**
     * The EMI (E-Money Institution) wallet that this payment is associated with, if any. This wallet is used as an intermediary account to enable Plaid to reconcile the settlement of funds for Payment Initiation requests.
     * @type {string}
     * @memberof WalletTransactionGetResponse
     */
    wallet_id: string;
    /**
     * A reference for the transaction
     * @type {string}
     * @memberof WalletTransactionGetResponse
     */
    reference: string;
    /**
     * The type of the transaction. The supported transaction types that are returned are: `BANK_TRANSFER:` a transaction which credits an e-wallet through an external bank transfer.  `PAYOUT:` a transaction which debits an e-wallet by disbursing funds to a counterparty.  `PIS_PAY_IN:` a payment which credits an e-wallet through Plaid\'s Payment Initiation Services (PIS) APIs. For more information see the [Payment Initiation endpoints](https://plaid.com/docs/api/products/payment-initiation/).  `REFUND:` a transaction which debits an e-wallet by refunding a previously initiated payment made through Plaid\'s [PIS APIs](https://plaid.com/docs/api/products/payment-initiation/).  `FUNDS_SWEEP`: an automated transaction which debits funds from an e-wallet to a designated client-owned account.  `RETURN`: an automated transaction where a debit transaction was reversed and money moved back to originating account.  `RECALL`: a transaction where the sending bank has requested the return of funds due to a fraud claim, technical error, or other issue associated with the payment.
     * @type {string}
     * @memberof WalletTransactionGetResponse
     */
    type: WalletTransactionGetResponseTypeEnum;
    /**
     *
     * @type {WalletPaymentScheme}
     * @memberof WalletTransactionGetResponse
     */
    scheme?: WalletPaymentScheme | null;
    /**
     *
     * @type {WalletTransactionAmount}
     * @memberof WalletTransactionGetResponse
     */
    amount: WalletTransactionAmount;
    /**
     *
     * @type {WalletTransactionCounterparty}
     * @memberof WalletTransactionGetResponse
     */
    counterparty: WalletTransactionCounterparty;
    /**
     *
     * @type {WalletTransactionStatus}
     * @memberof WalletTransactionGetResponse
     */
    status: WalletTransactionStatus;
    /**
     * Timestamp when the transaction was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
     * @type {string}
     * @memberof WalletTransactionGetResponse
     */
    created_at: string;
    /**
     * The date and time of the last time the `status` was updated, in IS0 8601 format
     * @type {string}
     * @memberof WalletTransactionGetResponse
     */
    last_status_update: string;
    /**
     * The payment id that this transaction is associated with, if any. This is present only for transaction types `PIS_PAY_IN` and `REFUND`.
     * @type {string}
     * @memberof WalletTransactionGetResponse
     */
    payment_id?: string | null;
    /**
     *
     * @type {WalletTransactionFailureReason}
     * @memberof WalletTransactionGetResponse
     */
    failure_reason?: WalletTransactionFailureReason | null;
    /**
     * A list of wallet transactions that this transaction is associated with, if any.
     * @type {Array<WalletTransactionRelation>}
     * @memberof WalletTransactionGetResponse
     */
    related_transactions?: Array<WalletTransactionRelation>;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WalletTransactionGetResponse
     */
    request_id: string;
}
/**
    * @export
    * @enum {string}
    */
export declare enum WalletTransactionGetResponseTypeEnum {
    BankTransfer = "BANK_TRANSFER",
    Payout = "PAYOUT",
    PisPayIn = "PIS_PAY_IN",
    Refund = "REFUND",
    FundsSweep = "FUNDS_SWEEP",
    Return = "RETURN",
    Recall = "RECALL"
}
/**
 * WalletTransactionListRequest defines the request schema for `/wallet/transaction/list`
 * @export
 * @interface WalletTransactionListRequest
 */
export interface WalletTransactionListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WalletTransactionListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WalletTransactionListRequest
     */
    secret?: string;
    /**
     * The ID of the e-wallet to fetch transactions from
     * @type {string}
     * @memberof WalletTransactionListRequest
     */
    wallet_id: string;
    /**
     * A base64 value representing the latest transaction that has already been requested. Set this to `next_cursor` received from the previous `/wallet/transaction/list` request. If provided, the response will only contain transactions created before that transaction. If omitted, the response will contain transactions starting from the most recent, and in descending order by the `created_at` time.
     * @type {string}
     * @memberof WalletTransactionListRequest
     */
    cursor?: string;
    /**
     * The number of transactions to fetch
     * @type {number}
     * @memberof WalletTransactionListRequest
     */
    count?: number;
    /**
     *
     * @type {WalletTransactionListRequestOptions}
     * @memberof WalletTransactionListRequest
     */
    options?: WalletTransactionListRequestOptions | null;
}
/**
 * Additional wallet transaction options
 * @export
 * @interface WalletTransactionListRequestOptions
 */
export interface WalletTransactionListRequestOptions {
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDThh:mm:ssZ) for filtering transactions, inclusive of the provided date.
     * @type {string}
     * @memberof WalletTransactionListRequestOptions
     */
    start_time?: string;
    /**
     * Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDThh:mm:ssZ) for filtering transactions, inclusive of the provided date.
     * @type {string}
     * @memberof WalletTransactionListRequestOptions
     */
    end_time?: string;
}
/**
 * WalletTransactionListResponse defines the response schema for `/wallet/transaction/list`
 * @export
 * @interface WalletTransactionListResponse
 */
export interface WalletTransactionListResponse {
    /**
     * An array of transactions of an e-wallet, associated with the given `wallet_id`
     * @type {Array<WalletTransaction>}
     * @memberof WalletTransactionListResponse
     */
    transactions: Array<WalletTransaction>;
    /**
     * Cursor used for fetching transactions created before the latest transaction provided in this response
     * @type {string}
     * @memberof WalletTransactionListResponse
     */
    next_cursor?: string;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WalletTransactionListResponse
     */
    request_id: string;
}
/**
 * Transactions are related when they have a logical connection.  For example, a `PAYOUT` transaction can be returned by the sender, creating a `RETURN` transaction. Each `PAYOUT` transaction can have at most one corresponding `RETURN` transaction in case of reversal.  These relationships are bi-directional, meaning that both entities have references to each other. For instance, when a transaction of type RETURN occurs, it is linked to the original transaction being returned. Likewise, the original transaction has a reference back to the RETURN transaction that represents the return.   This field is only populated for transactions of type `RETURN`, `FUNDS_SWEEP`, `REFUND` and `PAYOUT`.  The relationship between a `PIS_PAY_IN` payment and its corresponding `REFUND` transactions is only available through `refund_ids` property in the payment object. See[`/payment_initiation/payment/get`](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-get-response-refund-ids).
 * @export
 * @interface WalletTransactionRelation
 */
export interface WalletTransactionRelation {
    /**
     * The ID of the related transaction.
     * @type {string}
     * @memberof WalletTransactionRelation
     */
    id?: string;
    /**
     * The type of the transaction.
     * @type {string}
     * @memberof WalletTransactionRelation
     */
    type?: WalletTransactionRelationTypeEnum;
}
/**
    * @export
    * @enum {string}
    */
export declare enum WalletTransactionRelationTypeEnum {
    Payout = "PAYOUT",
    Return = "RETURN",
    Refund = "REFUND",
    FundsSweep = "FUNDS_SWEEP"
}
/**
 * The status of the transaction.  `AUTHORISING`: The transaction is being processed for validation and compliance.  `INITIATED`: The transaction has been initiated and is currently being processed.  `EXECUTED`: The transaction has been successfully executed and is considered complete. This is only applicable for debit transactions.  `SETTLED`: The transaction has settled and funds are available for use. This is only applicable for credit transactions. A transaction will typically settle within seconds to several days, depending on which payment rail is used.  `FAILED`: The transaction failed to process successfully. This is a terminal status.  `BLOCKED`: The transaction has been blocked for violating compliance rules. This is a terminal status.
 * @export
 * @enum {string}
 */
export declare enum WalletTransactionStatus {
    Authorising = "AUTHORISING",
    Initiated = "INITIATED",
    Executed = "EXECUTED",
    Settled = "SETTLED",
    Blocked = "BLOCKED",
    Failed = "FAILED"
}
/**
 * Fired when the status of a wallet transaction has changed.
 * @export
 * @interface WalletTransactionStatusUpdateWebhook
 */
export interface WalletTransactionStatusUpdateWebhook {
    /**
     * `WALLET`
     * @type {string}
     * @memberof WalletTransactionStatusUpdateWebhook
     */
    webhook_type: string;
    /**
     * `WALLET_TRANSACTION_STATUS_UPDATE`
     * @type {string}
     * @memberof WalletTransactionStatusUpdateWebhook
     */
    webhook_code: string;
    /**
     * The `transaction_id` for the wallet transaction being updated
     * @type {string}
     * @memberof WalletTransactionStatusUpdateWebhook
     */
    transaction_id: string;
    /**
     * The `payment_id` associated with the transaction. This will be present in case of `REFUND` and `PIS_PAY_IN`.
     * @type {string}
     * @memberof WalletTransactionStatusUpdateWebhook
     */
    payment_id?: string | null;
    /**
     * The EMI (E-Money Institution) wallet that this payment is associated with. This wallet is used as an intermediary account to enable Plaid to reconcile the settlement of funds for Payment Initiation requests.
     * @type {string}
     * @memberof WalletTransactionStatusUpdateWebhook
     */
    wallet_id?: string;
    /**
     *
     * @type {WalletTransactionStatus}
     * @memberof WalletTransactionStatusUpdateWebhook
     */
    new_status: WalletTransactionStatus;
    /**
     *
     * @type {WalletTransactionStatus}
     * @memberof WalletTransactionStatusUpdateWebhook
     */
    old_status: WalletTransactionStatus;
    /**
     * The timestamp of the update, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`
     * @type {string}
     * @memberof WalletTransactionStatusUpdateWebhook
     */
    timestamp: string;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof WalletTransactionStatusUpdateWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * WalletTransactionListRequest defines the request schema for `/wallet/transaction/list`
 * @export
 * @interface WalletTransactionsListRequest
 */
export interface WalletTransactionsListRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WalletTransactionsListRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WalletTransactionsListRequest
     */
    secret?: string;
    /**
     * The ID of the e-wallet to fetch transactions from
     * @type {string}
     * @memberof WalletTransactionsListRequest
     */
    wallet_id: string;
    /**
     * A base64 value representing the latest transaction that has already been requested. Set this to `next_cursor` received from the previous `/wallet/transaction/list` request. If provided, the response will only contain transactions created before that transaction. If omitted, the response will contain transactions starting from the most recent, and in descending order by the `created_at` time.
     * @type {string}
     * @memberof WalletTransactionsListRequest
     */
    cursor?: string;
    /**
     * The number of transactions to fetch
     * @type {number}
     * @memberof WalletTransactionsListRequest
     */
    count?: number;
    /**
     *
     * @type {WalletTransactionListRequestOptions}
     * @memberof WalletTransactionsListRequest
     */
    options?: WalletTransactionListRequestOptions | null;
}
/**
 * It is possible for an Asset Report to be returned with missing account owner information. In such cases, the Asset Report will contain warning data in the response, indicating why obtaining the owner information failed.
 * @export
 * @interface Warning
 */
export interface Warning {
    /**
     * The warning type, which will always be `ASSET_REPORT_WARNING`
     * @type {string}
     * @memberof Warning
     */
    warning_type: string;
    /**
     * The warning code identifies a specific kind of warning. `OWNERS_UNAVAILABLE` indicates that account-owner information is not available.`INVESTMENTS_UNAVAILABLE` indicates that Investments specific information is not available. `TRANSACTIONS_UNAVAILABLE` indicates that transactions information associated with Credit and Depository accounts are unavailable.
     * @type {string}
     * @memberof Warning
     */
    warning_code: WarningWarningCodeEnum;
    /**
     *
     * @type {Cause}
     * @memberof Warning
     */
    cause: Cause | null;
}
/**
    * @export
    * @enum {string}
    */
export declare enum WarningWarningCodeEnum {
    OwnersUnavailable = "OWNERS_UNAVAILABLE",
    InvestmentsUnavailable = "INVESTMENTS_UNAVAILABLE",
    TransactionsUnavailable = "TRANSACTIONS_UNAVAILABLE"
}
/**
 * Information about the last change made to the parent object specifying what caused the change as well as when it occurred.
 * @export
 * @interface WatchlistScreeningAuditTrail
 */
export interface WatchlistScreeningAuditTrail {
    /**
     *
     * @type {Source}
     * @memberof WatchlistScreeningAuditTrail
     */
    source: Source;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningAuditTrail
     */
    dashboard_user_id: string | null;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof WatchlistScreeningAuditTrail
     */
    timestamp: string;
}
/**
 * An official document, usually issued by a governing body or institution, with an associated identifier.
 * @export
 * @interface WatchlistScreeningDocument
 */
export interface WatchlistScreeningDocument {
    /**
     *
     * @type {WatchlistScreeningDocumentType}
     * @memberof WatchlistScreeningDocument
     */
    type: WatchlistScreeningDocumentType;
    /**
     * The numeric or alphanumeric identifier associated with this document. Must be between 4 and 32 characters long, and cannot have leading or trailing spaces.
     * @type {string}
     * @memberof WatchlistScreeningDocument
     */
    number: string;
}
/**
 * The kind of official document represented by this object.  `birth_certificate` - A certificate of birth  `drivers_license` - A license to operate a motor vehicle  `immigration_number` - Immigration or residence documents  `military_id` - Identification issued by a military group  `other` - Any document not covered by other categories  `passport` - An official passport issue by a government  `personal_identification` - Any generic personal identification that is not covered by other categories  `ration_card` - Identification that entitles the holder to rations  `ssn` - United States Social Security Number  `student_id` - Identification issued by an educational institution  `tax_id` - Identification issued for the purpose of collecting taxes  `travel_document` - Visas, entry permits, refugee documents, etc.  `voter_id` - Identification issued for the purpose of voting
 * @export
 * @enum {string}
 */
export declare enum WatchlistScreeningDocumentType {
    BirthCertificate = "birth_certificate",
    DriversLicense = "drivers_license",
    ImmigrationNumber = "immigration_number",
    MilitaryId = "military_id",
    Other = "other",
    Passport = "passport",
    PersonalIdentification = "personal_identification",
    RationCard = "ration_card",
    Ssn = "ssn",
    StudentId = "student_id",
    TaxId = "tax_id",
    TravelDocument = "travel_document",
    VoterId = "voter_id"
}
/**
 * Request input for creating an entity screening review
 * @export
 * @interface WatchlistScreeningEntityCreateRequest
 */
export interface WatchlistScreeningEntityCreateRequest {
    /**
     *
     * @type {EntityWatchlistSearchTerms}
     * @memberof WatchlistScreeningEntityCreateRequest
     */
    search_terms: EntityWatchlistSearchTerms;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningEntityCreateRequest
     */
    client_user_id?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityCreateRequest
     */
    secret?: string;
}
/**
 * The entity screening object allows you to represent an entity in your system, update its profile, and search for it on various watchlists. Note: Rejected entity screenings will not receive new hits, regardless of entity program configuration.
 * @export
 * @interface WatchlistScreeningEntityCreateResponse
 */
export interface WatchlistScreeningEntityCreateResponse {
    /**
     * ID of the associated entity screening.
     * @type {string}
     * @memberof WatchlistScreeningEntityCreateResponse
     */
    id: string;
    /**
     *
     * @type {EntityWatchlistScreeningSearchTerms}
     * @memberof WatchlistScreeningEntityCreateResponse
     */
    search_terms: EntityWatchlistScreeningSearchTerms;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningEntityCreateResponse
     */
    assignee: string | null;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof WatchlistScreeningEntityCreateResponse
     */
    status: WatchlistScreeningStatus;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningEntityCreateResponse
     */
    client_user_id: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningEntityCreateResponse
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningEntityCreateResponse
     */
    request_id: string;
}
/**
 * Request input for fetching an entity watchlist screening
 * @export
 * @interface WatchlistScreeningEntityGetRequest
 */
export interface WatchlistScreeningEntityGetRequest {
    /**
     * ID of the associated entity screening.
     * @type {string}
     * @memberof WatchlistScreeningEntityGetRequest
     */
    entity_watchlist_screening_id: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityGetRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityGetRequest
     */
    client_id?: string;
}
/**
 * The entity screening object allows you to represent an entity in your system, update its profile, and search for it on various watchlists. Note: Rejected entity screenings will not receive new hits, regardless of entity program configuration.
 * @export
 * @interface WatchlistScreeningEntityGetResponse
 */
export interface WatchlistScreeningEntityGetResponse {
    /**
     * ID of the associated entity screening.
     * @type {string}
     * @memberof WatchlistScreeningEntityGetResponse
     */
    id: string;
    /**
     *
     * @type {EntityWatchlistScreeningSearchTerms}
     * @memberof WatchlistScreeningEntityGetResponse
     */
    search_terms: EntityWatchlistScreeningSearchTerms;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningEntityGetResponse
     */
    assignee: string | null;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof WatchlistScreeningEntityGetResponse
     */
    status: WatchlistScreeningStatus;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningEntityGetResponse
     */
    client_user_id: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningEntityGetResponse
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningEntityGetResponse
     */
    request_id: string;
}
/**
 * Request input for listing changes to entity watchlist screenings
 * @export
 * @interface WatchlistScreeningEntityHistoryListRequest
 */
export interface WatchlistScreeningEntityHistoryListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityHistoryListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityHistoryListRequest
     */
    client_id?: string;
    /**
     * ID of the associated entity screening.
     * @type {string}
     * @memberof WatchlistScreeningEntityHistoryListRequest
     */
    entity_watchlist_screening_id: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningEntityHistoryListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of entity watchlist screenings
 * @export
 * @interface WatchlistScreeningEntityHistoryListResponse
 */
export interface WatchlistScreeningEntityHistoryListResponse {
    /**
     * List of entity watchlist screening
     * @type {Array<EntityWatchlistScreening>}
     * @memberof WatchlistScreeningEntityHistoryListResponse
     */
    entity_watchlist_screenings: Array<EntityWatchlistScreening>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningEntityHistoryListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningEntityHistoryListResponse
     */
    request_id: string;
}
/**
 * Request input for listing hits for an entity watchlist screening
 * @export
 * @interface WatchlistScreeningEntityHitListRequest
 */
export interface WatchlistScreeningEntityHitListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityHitListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityHitListRequest
     */
    client_id?: string;
    /**
     * ID of the associated entity screening.
     * @type {string}
     * @memberof WatchlistScreeningEntityHitListRequest
     */
    entity_watchlist_screening_id: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningEntityHitListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of entity watchlist screening hits
 * @export
 * @interface WatchlistScreeningEntityHitListResponse
 */
export interface WatchlistScreeningEntityHitListResponse {
    /**
     * List of entity watchlist screening hits
     * @type {Array<EntityWatchlistScreeningHit>}
     * @memberof WatchlistScreeningEntityHitListResponse
     */
    entity_watchlist_screening_hits: Array<EntityWatchlistScreeningHit>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningEntityHitListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningEntityHitListResponse
     */
    request_id: string;
}
/**
 * Request input for listing entity watchlist screenings
 * @export
 * @interface WatchlistScreeningEntityListRequest
 */
export interface WatchlistScreeningEntityListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityListRequest
     */
    client_id?: string;
    /**
     * ID of the associated entity program.
     * @type {string}
     * @memberof WatchlistScreeningEntityListRequest
     */
    entity_watchlist_program_id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningEntityListRequest
     */
    client_user_id?: string;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof WatchlistScreeningEntityListRequest
     */
    status?: WatchlistScreeningStatus;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningEntityListRequest
     */
    assignee?: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningEntityListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of entity watchlist screenings
 * @export
 * @interface WatchlistScreeningEntityListResponse
 */
export interface WatchlistScreeningEntityListResponse {
    /**
     * List of entity watchlist screening
     * @type {Array<EntityWatchlistScreening>}
     * @memberof WatchlistScreeningEntityListResponse
     */
    entity_watchlist_screenings: Array<EntityWatchlistScreening>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningEntityListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningEntityListResponse
     */
    request_id: string;
}
/**
 * Request input for fetching an entity watchlist program
 * @export
 * @interface WatchlistScreeningEntityProgramGetRequest
 */
export interface WatchlistScreeningEntityProgramGetRequest {
    /**
     * ID of the associated entity program.
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramGetRequest
     */
    entity_watchlist_program_id: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramGetRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramGetRequest
     */
    client_id?: string;
}
/**
 * A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of entities.
 * @export
 * @interface WatchlistScreeningEntityProgramGetResponse
 */
export interface WatchlistScreeningEntityProgramGetResponse {
    /**
     * ID of the associated entity program.
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramGetResponse
     */
    id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramGetResponse
     */
    created_at: string;
    /**
     * Indicator specifying whether the program is enabled and will perform daily rescans.
     * @type {boolean}
     * @memberof WatchlistScreeningEntityProgramGetResponse
     */
    is_rescanning_enabled: boolean;
    /**
     * Watchlists enabled for the associated program
     * @type {Set<EntityWatchlistCode>}
     * @memberof WatchlistScreeningEntityProgramGetResponse
     */
    lists_enabled: Set<EntityWatchlistCode>;
    /**
     * A name for the entity program to define its purpose. For example, \"High Risk Organizations\" or \"Applicants\".
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramGetResponse
     */
    name: string;
    /**
     *
     * @type {ProgramNameSensitivity}
     * @memberof WatchlistScreeningEntityProgramGetResponse
     */
    name_sensitivity: ProgramNameSensitivity;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningEntityProgramGetResponse
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * Archived programs are read-only and cannot screen new customers nor participate in ongoing monitoring.
     * @type {boolean}
     * @memberof WatchlistScreeningEntityProgramGetResponse
     */
    is_archived: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramGetResponse
     */
    request_id: string;
}
/**
 * Request input for listing entity watchlist screening programs
 * @export
 * @interface WatchlistScreeningEntityProgramListRequest
 */
export interface WatchlistScreeningEntityProgramListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramListRequest
     */
    client_id?: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of entity watchlist screening programs
 * @export
 * @interface WatchlistScreeningEntityProgramListResponse
 */
export interface WatchlistScreeningEntityProgramListResponse {
    /**
     * List of entity watchlist screening programs
     * @type {Array<EntityWatchlistProgram>}
     * @memberof WatchlistScreeningEntityProgramListResponse
     */
    entity_watchlist_programs: Array<EntityWatchlistProgram>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningEntityProgramListResponse
     */
    request_id: string;
}
/**
 * Request input for creating a review for an entity screening
 * @export
 * @interface WatchlistScreeningEntityReviewCreateRequest
 */
export interface WatchlistScreeningEntityReviewCreateRequest {
    /**
     * Hits to mark as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
     * @type {Array<string>}
     * @memberof WatchlistScreeningEntityReviewCreateRequest
     */
    confirmed_hits: Array<string>;
    /**
     * Hits to mark as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
     * @type {Array<string>}
     * @memberof WatchlistScreeningEntityReviewCreateRequest
     */
    dismissed_hits: Array<string>;
    /**
     * A comment submitted by a team member as part of reviewing a watchlist screening.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewCreateRequest
     */
    comment?: string | null;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewCreateRequest
     */
    secret?: string;
    /**
     * ID of the associated entity screening.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewCreateRequest
     */
    entity_watchlist_screening_id: string;
}
/**
 * A review submitted by a team member for an entity watchlist screening. A review can be either a comment on the current screening state, actions taken against hits attached to the watchlist screening, or both.
 * @export
 * @interface WatchlistScreeningEntityReviewCreateResponse
 */
export interface WatchlistScreeningEntityReviewCreateResponse {
    /**
     * ID of the associated entity review.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewCreateResponse
     */
    id: string;
    /**
     * Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
     * @type {Array<string>}
     * @memberof WatchlistScreeningEntityReviewCreateResponse
     */
    confirmed_hits: Array<string>;
    /**
     * Hits marked as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
     * @type {Array<string>}
     * @memberof WatchlistScreeningEntityReviewCreateResponse
     */
    dismissed_hits: Array<string>;
    /**
     * A comment submitted by a team member as part of reviewing a watchlist screening.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewCreateResponse
     */
    comment: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningEntityReviewCreateResponse
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewCreateResponse
     */
    request_id: string;
}
/**
 * Request input for listing reviews for an entity watchlist screening
 * @export
 * @interface WatchlistScreeningEntityReviewListRequest
 */
export interface WatchlistScreeningEntityReviewListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewListRequest
     */
    client_id?: string;
    /**
     * ID of the associated entity screening.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewListRequest
     */
    entity_watchlist_screening_id: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of entity watchlist screening reviews
 * @export
 * @interface WatchlistScreeningEntityReviewListResponse
 */
export interface WatchlistScreeningEntityReviewListResponse {
    /**
     * List of entity watchlist screening reviews
     * @type {Array<EntityWatchlistScreeningReview>}
     * @memberof WatchlistScreeningEntityReviewListResponse
     */
    entity_watchlist_screening_reviews: Array<EntityWatchlistScreeningReview>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningEntityReviewListResponse
     */
    request_id: string;
}
/**
 * Request input for editing an entity watchlist screening
 * @export
 * @interface WatchlistScreeningEntityUpdateRequest
 */
export interface WatchlistScreeningEntityUpdateRequest {
    /**
     * ID of the associated entity screening.
     * @type {string}
     * @memberof WatchlistScreeningEntityUpdateRequest
     */
    entity_watchlist_screening_id: string;
    /**
     *
     * @type {UpdateEntityScreeningRequestSearchTerms}
     * @memberof WatchlistScreeningEntityUpdateRequest
     */
    search_terms?: UpdateEntityScreeningRequestSearchTerms | null;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningEntityUpdateRequest
     */
    assignee?: string;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof WatchlistScreeningEntityUpdateRequest
     */
    status?: WatchlistScreeningStatus;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningEntityUpdateRequest
     */
    client_user_id?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningEntityUpdateRequest
     */
    secret?: string;
    /**
     * A list of fields to reset back to null
     * @type {Array<WatchlistScreeningEntityUpdateRequestResettableField>}
     * @memberof WatchlistScreeningEntityUpdateRequest
     */
    reset_fields?: Array<WatchlistScreeningEntityUpdateRequestResettableField> | null;
}
/**
 * The name of a field that can be reset back to null
 * @export
 * @enum {string}
 */
export declare enum WatchlistScreeningEntityUpdateRequestResettableField {
    Assignee = "assignee"
}
/**
 * The entity screening object allows you to represent an entity in your system, update its profile, and search for it on various watchlists. Note: Rejected entity screenings will not receive new hits, regardless of entity program configuration.
 * @export
 * @interface WatchlistScreeningEntityUpdateResponse
 */
export interface WatchlistScreeningEntityUpdateResponse {
    /**
     * ID of the associated entity screening.
     * @type {string}
     * @memberof WatchlistScreeningEntityUpdateResponse
     */
    id: string;
    /**
     *
     * @type {EntityWatchlistScreeningSearchTerms}
     * @memberof WatchlistScreeningEntityUpdateResponse
     */
    search_terms: EntityWatchlistScreeningSearchTerms;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningEntityUpdateResponse
     */
    assignee: string | null;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof WatchlistScreeningEntityUpdateResponse
     */
    status: WatchlistScreeningStatus;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningEntityUpdateResponse
     */
    client_user_id: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningEntityUpdateResponse
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningEntityUpdateResponse
     */
    request_id: string;
}
/**
 * Data from a government watchlist or PEP list that has been attached to the screening.
 * @export
 * @interface WatchlistScreeningHit
 */
export interface WatchlistScreeningHit {
    /**
     * ID of the associated screening hit.
     * @type {string}
     * @memberof WatchlistScreeningHit
     */
    id: string;
    /**
     *
     * @type {WatchlistScreeningHitStatus}
     * @memberof WatchlistScreeningHit
     */
    review_status: WatchlistScreeningHitStatus;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof WatchlistScreeningHit
     */
    first_active: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof WatchlistScreeningHit
     */
    inactive_since: string | null;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof WatchlistScreeningHit
     */
    historical_since: string | null;
    /**
     *
     * @type {IndividualWatchlistCode}
     * @memberof WatchlistScreeningHit
     */
    list_code: IndividualWatchlistCode;
    /**
     * A universal identifier for a watchlist individual that is stable across searches and updates.
     * @type {string}
     * @memberof WatchlistScreeningHit
     */
    plaid_uid: string;
    /**
     * The identifier provided by the source sanction or watchlist. When one is not provided by the source, this is `null`.
     * @type {string}
     * @memberof WatchlistScreeningHit
     */
    source_uid: string | null;
    /**
     *
     * @type {ScreeningHitAnalysis}
     * @memberof WatchlistScreeningHit
     */
    analysis?: ScreeningHitAnalysis;
    /**
     *
     * @type {ScreeningHitData}
     * @memberof WatchlistScreeningHit
     */
    data?: ScreeningHitData;
}
/**
 * Location information for the associated individual watchlist hit
 * @export
 * @interface WatchlistScreeningHitLocations
 */
export interface WatchlistScreeningHitLocations {
    /**
     * The full location string, potentially including elements like street, city, postal codes and country codes. Note that this is not necessarily a complete or well-formatted address.
     * @type {string}
     * @memberof WatchlistScreeningHitLocations
     */
    full: string;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof WatchlistScreeningHitLocations
     */
    country: string;
}
/**
 * The current state of review. All watchlist screening hits begin in a `pending_review` state but can be changed by creating a review. When a hit is in the `pending_review` state, it will always show the latest version of the watchlist data Plaid has available and be compared against the latest customer information saved in the watchlist screening. Once a hit has been marked as `confirmed` or `dismissed` it will no longer be updated so that the state is as it was when the review was first conducted.
 * @export
 * @enum {string}
 */
export declare enum WatchlistScreeningHitStatus {
    Confirmed = "confirmed",
    PendingReview = "pending_review",
    Dismissed = "dismissed"
}
/**
 * The screening object allows you to represent a customer in your system, update their profile, and search for them on various watchlists. Note: Rejected customers will not receive new hits, regardless of program configuration.
 * @export
 * @interface WatchlistScreeningIndividual
 */
export interface WatchlistScreeningIndividual {
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividual
     */
    id: string;
    /**
     *
     * @type {WatchlistScreeningSearchTerms}
     * @memberof WatchlistScreeningIndividual
     */
    search_terms: WatchlistScreeningSearchTerms;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningIndividual
     */
    assignee: string | null;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof WatchlistScreeningIndividual
     */
    status: WatchlistScreeningStatus;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningIndividual
     */
    client_user_id: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningIndividual
     */
    audit_trail: WatchlistScreeningAuditTrail;
}
/**
 * Request input for creating an individual watchlist screening
 * @export
 * @interface WatchlistScreeningIndividualCreateRequest
 */
export interface WatchlistScreeningIndividualCreateRequest {
    /**
     *
     * @type {WatchlistScreeningRequestSearchTerms}
     * @memberof WatchlistScreeningIndividualCreateRequest
     */
    search_terms: WatchlistScreeningRequestSearchTerms;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningIndividualCreateRequest
     */
    client_user_id?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualCreateRequest
     */
    secret?: string;
}
/**
 * The screening object allows you to represent a customer in your system, update their profile, and search for them on various watchlists. Note: Rejected customers will not receive new hits, regardless of program configuration.
 * @export
 * @interface WatchlistScreeningIndividualCreateResponse
 */
export interface WatchlistScreeningIndividualCreateResponse {
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividualCreateResponse
     */
    id: string;
    /**
     *
     * @type {WatchlistScreeningSearchTerms}
     * @memberof WatchlistScreeningIndividualCreateResponse
     */
    search_terms: WatchlistScreeningSearchTerms;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningIndividualCreateResponse
     */
    assignee: string | null;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof WatchlistScreeningIndividualCreateResponse
     */
    status: WatchlistScreeningStatus;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningIndividualCreateResponse
     */
    client_user_id: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningIndividualCreateResponse
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualCreateResponse
     */
    request_id: string;
}
/**
 * Request input for fetching an individual watchlist screening
 * @export
 * @interface WatchlistScreeningIndividualGetRequest
 */
export interface WatchlistScreeningIndividualGetRequest {
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividualGetRequest
     */
    watchlist_screening_id: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualGetRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualGetRequest
     */
    client_id?: string;
}
/**
 * The screening object allows you to represent a customer in your system, update their profile, and search for them on various watchlists. Note: Rejected customers will not receive new hits, regardless of program configuration.
 * @export
 * @interface WatchlistScreeningIndividualGetResponse
 */
export interface WatchlistScreeningIndividualGetResponse {
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividualGetResponse
     */
    id: string;
    /**
     *
     * @type {WatchlistScreeningSearchTerms}
     * @memberof WatchlistScreeningIndividualGetResponse
     */
    search_terms: WatchlistScreeningSearchTerms;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningIndividualGetResponse
     */
    assignee: string | null;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof WatchlistScreeningIndividualGetResponse
     */
    status: WatchlistScreeningStatus;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningIndividualGetResponse
     */
    client_user_id: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningIndividualGetResponse
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualGetResponse
     */
    request_id: string;
}
/**
 * Request input for listing changes to watchlist screenings for individuals
 * @export
 * @interface WatchlistScreeningIndividualHistoryListRequest
 */
export interface WatchlistScreeningIndividualHistoryListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHistoryListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHistoryListRequest
     */
    client_id?: string;
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHistoryListRequest
     */
    watchlist_screening_id: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHistoryListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of individual watchlist screenings.
 * @export
 * @interface WatchlistScreeningIndividualHistoryListResponse
 */
export interface WatchlistScreeningIndividualHistoryListResponse {
    /**
     * List of individual watchlist screenings
     * @type {Array<WatchlistScreeningIndividual>}
     * @memberof WatchlistScreeningIndividualHistoryListResponse
     */
    watchlist_screenings: Array<WatchlistScreeningIndividual>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHistoryListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHistoryListResponse
     */
    request_id: string;
}
/**
 * Request input for listing hits for an individual watchlist screening
 * @export
 * @interface WatchlistScreeningIndividualHitListRequest
 */
export interface WatchlistScreeningIndividualHitListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHitListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHitListRequest
     */
    client_id?: string;
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHitListRequest
     */
    watchlist_screening_id: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHitListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of individual watchlist screening hits
 * @export
 * @interface WatchlistScreeningIndividualHitListResponse
 */
export interface WatchlistScreeningIndividualHitListResponse {
    /**
     * List of individual watchlist screening hits
     * @type {Array<WatchlistScreeningHit>}
     * @memberof WatchlistScreeningIndividualHitListResponse
     */
    watchlist_screening_hits: Array<WatchlistScreeningHit>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHitListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualHitListResponse
     */
    request_id: string;
}
/**
 * Request input for listinging watchlist screenings for individuals
 * @export
 * @interface WatchlistScreeningIndividualListRequest
 */
export interface WatchlistScreeningIndividualListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualListRequest
     */
    client_id?: string;
    /**
     * ID of the associated program.
     * @type {string}
     * @memberof WatchlistScreeningIndividualListRequest
     */
    watchlist_program_id: string;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningIndividualListRequest
     */
    client_user_id?: string;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof WatchlistScreeningIndividualListRequest
     */
    status?: WatchlistScreeningStatus;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningIndividualListRequest
     */
    assignee?: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of individual watchlist screenings.
 * @export
 * @interface WatchlistScreeningIndividualListResponse
 */
export interface WatchlistScreeningIndividualListResponse {
    /**
     * List of individual watchlist screenings
     * @type {Array<WatchlistScreeningIndividual>}
     * @memberof WatchlistScreeningIndividualListResponse
     */
    watchlist_screenings: Array<WatchlistScreeningIndividual>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualListResponse
     */
    request_id: string;
}
/**
 * Request input for fetching an individual watchlist program
 * @export
 * @interface WatchlistScreeningIndividualProgramGetRequest
 */
export interface WatchlistScreeningIndividualProgramGetRequest {
    /**
     * ID of the associated program.
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramGetRequest
     */
    watchlist_program_id: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramGetRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramGetRequest
     */
    client_id?: string;
}
/**
 * A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of individuals.
 * @export
 * @interface WatchlistScreeningIndividualProgramGetResponse
 */
export interface WatchlistScreeningIndividualProgramGetResponse {
    /**
     * ID of the associated program.
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramGetResponse
     */
    id: string;
    /**
     * An ISO8601 formatted timestamp.
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramGetResponse
     */
    created_at: string;
    /**
     * Indicator specifying whether the program is enabled and will perform daily rescans.
     * @type {boolean}
     * @memberof WatchlistScreeningIndividualProgramGetResponse
     */
    is_rescanning_enabled: boolean;
    /**
     * Watchlists enabled for the associated program
     * @type {Set<IndividualWatchlistCode>}
     * @memberof WatchlistScreeningIndividualProgramGetResponse
     */
    lists_enabled: Set<IndividualWatchlistCode>;
    /**
     * A name for the program to define its purpose. For example, \"High Risk Individuals\", \"US Cardholders\", or \"Applicants\".
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramGetResponse
     */
    name: string;
    /**
     *
     * @type {ProgramNameSensitivity}
     * @memberof WatchlistScreeningIndividualProgramGetResponse
     */
    name_sensitivity: ProgramNameSensitivity;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningIndividualProgramGetResponse
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * Archived programs are read-only and cannot screen new customers nor participate in ongoing monitoring.
     * @type {boolean}
     * @memberof WatchlistScreeningIndividualProgramGetResponse
     */
    is_archived: boolean;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramGetResponse
     */
    request_id: string;
}
/**
 * Request input for listing watchlist screening programs for individuals
 * @export
 * @interface WatchlistScreeningIndividualProgramListRequest
 */
export interface WatchlistScreeningIndividualProgramListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramListRequest
     */
    client_id?: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of individual watchlist screening programs
 * @export
 * @interface WatchlistScreeningIndividualProgramListResponse
 */
export interface WatchlistScreeningIndividualProgramListResponse {
    /**
     * List of individual watchlist screening programs
     * @type {Array<IndividualWatchlistProgram>}
     * @memberof WatchlistScreeningIndividualProgramListResponse
     */
    watchlist_programs: Array<IndividualWatchlistProgram>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualProgramListResponse
     */
    request_id: string;
}
/**
 * Request input for creating a screening review
 * @export
 * @interface WatchlistScreeningIndividualReviewCreateRequest
 */
export interface WatchlistScreeningIndividualReviewCreateRequest {
    /**
     * Hits to mark as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
     * @type {Array<string>}
     * @memberof WatchlistScreeningIndividualReviewCreateRequest
     */
    confirmed_hits: Array<string>;
    /**
     * Hits to mark as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
     * @type {Array<string>}
     * @memberof WatchlistScreeningIndividualReviewCreateRequest
     */
    dismissed_hits: Array<string>;
    /**
     * A comment submitted by a team member as part of reviewing a watchlist screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewCreateRequest
     */
    comment?: string | null;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewCreateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewCreateRequest
     */
    secret?: string;
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewCreateRequest
     */
    watchlist_screening_id: string;
}
/**
 * A review submitted by a team member for an individual watchlist screening. A review can be either a comment on the current screening state, actions taken against hits attached to the watchlist screening, or both.
 * @export
 * @interface WatchlistScreeningIndividualReviewCreateResponse
 */
export interface WatchlistScreeningIndividualReviewCreateResponse {
    /**
     * ID of the associated review.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewCreateResponse
     */
    id: string;
    /**
     * Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
     * @type {Array<string>}
     * @memberof WatchlistScreeningIndividualReviewCreateResponse
     */
    confirmed_hits: Array<string>;
    /**
     * Hits marked as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
     * @type {Array<string>}
     * @memberof WatchlistScreeningIndividualReviewCreateResponse
     */
    dismissed_hits: Array<string>;
    /**
     * A comment submitted by a team member as part of reviewing a watchlist screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewCreateResponse
     */
    comment: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningIndividualReviewCreateResponse
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewCreateResponse
     */
    request_id: string;
}
/**
 * Request input for listing reviews for an individual watchlist screening
 * @export
 * @interface WatchlistScreeningIndividualReviewListRequest
 */
export interface WatchlistScreeningIndividualReviewListRequest {
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewListRequest
     */
    secret?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewListRequest
     */
    client_id?: string;
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewListRequest
     */
    watchlist_screening_id: string;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewListRequest
     */
    cursor?: string | null;
}
/**
 * Paginated list of screening reviews
 * @export
 * @interface WatchlistScreeningIndividualReviewListResponse
 */
export interface WatchlistScreeningIndividualReviewListResponse {
    /**
     * List of screening reviews
     * @type {Array<WatchlistScreeningReview>}
     * @memberof WatchlistScreeningIndividualReviewListResponse
     */
    watchlist_screening_reviews: Array<WatchlistScreeningReview>;
    /**
     * An identifier that determines which page of results you receive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewListResponse
     */
    next_cursor: string | null;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualReviewListResponse
     */
    request_id: string;
}
/**
 * Request input for editing an individual watchlist screening
 * @export
 * @interface WatchlistScreeningIndividualUpdateRequest
 */
export interface WatchlistScreeningIndividualUpdateRequest {
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividualUpdateRequest
     */
    watchlist_screening_id: string;
    /**
     *
     * @type {UpdateIndividualScreeningRequestSearchTerms}
     * @memberof WatchlistScreeningIndividualUpdateRequest
     */
    search_terms?: UpdateIndividualScreeningRequestSearchTerms | null;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningIndividualUpdateRequest
     */
    assignee?: string;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof WatchlistScreeningIndividualUpdateRequest
     */
    status?: WatchlistScreeningStatus;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningIndividualUpdateRequest
     */
    client_user_id?: string;
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualUpdateRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WatchlistScreeningIndividualUpdateRequest
     */
    secret?: string;
    /**
     * A list of fields to reset back to null
     * @type {Array<WatchlistScreeningIndividualUpdateRequestResettableField>}
     * @memberof WatchlistScreeningIndividualUpdateRequest
     */
    reset_fields?: Array<WatchlistScreeningIndividualUpdateRequestResettableField> | null;
}
/**
 * The name of a field that can be reset back to null
 * @export
 * @enum {string}
 */
export declare enum WatchlistScreeningIndividualUpdateRequestResettableField {
    Assignee = "assignee"
}
/**
 * The screening object allows you to represent a customer in your system, update their profile, and search for them on various watchlists. Note: Rejected customers will not receive new hits, regardless of program configuration.
 * @export
 * @interface WatchlistScreeningIndividualUpdateResponse
 */
export interface WatchlistScreeningIndividualUpdateResponse {
    /**
     * ID of the associated screening.
     * @type {string}
     * @memberof WatchlistScreeningIndividualUpdateResponse
     */
    id: string;
    /**
     *
     * @type {WatchlistScreeningSearchTerms}
     * @memberof WatchlistScreeningIndividualUpdateResponse
     */
    search_terms: WatchlistScreeningSearchTerms;
    /**
     * ID of the associated user. To retrieve the email address or other details of the person corresponding to this id, use `/dashboard_user/get`.
     * @type {string}
     * @memberof WatchlistScreeningIndividualUpdateResponse
     */
    assignee: string | null;
    /**
     *
     * @type {WatchlistScreeningStatus}
     * @memberof WatchlistScreeningIndividualUpdateResponse
     */
    status: WatchlistScreeningStatus;
    /**
     * A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
     * @type {string}
     * @memberof WatchlistScreeningIndividualUpdateResponse
     */
    client_user_id: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningIndividualUpdateResponse
     */
    audit_trail: WatchlistScreeningAuditTrail;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WatchlistScreeningIndividualUpdateResponse
     */
    request_id: string;
}
/**
 * Search inputs for creating a watchlist screening
 * @export
 * @interface WatchlistScreeningRequestSearchTerms
 */
export interface WatchlistScreeningRequestSearchTerms {
    /**
     * ID of the associated program.
     * @type {string}
     * @memberof WatchlistScreeningRequestSearchTerms
     */
    watchlist_program_id: string;
    /**
     * The legal name of the individual being screened. Must have at least one alphabetical character, have a maximum length of 100 characters, and not include leading or trailing spaces.
     * @type {string}
     * @memberof WatchlistScreeningRequestSearchTerms
     */
    legal_name: string;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof WatchlistScreeningRequestSearchTerms
     */
    date_of_birth?: string;
    /**
     * The numeric or alphanumeric identifier associated with this document. Must be between 4 and 32 characters long, and cannot have leading or trailing spaces.
     * @type {string}
     * @memberof WatchlistScreeningRequestSearchTerms
     */
    document_number?: string;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof WatchlistScreeningRequestSearchTerms
     */
    country?: string;
}
/**
 * A review submitted by a team member for an individual watchlist screening. A review can be either a comment on the current screening state, actions taken against hits attached to the watchlist screening, or both.
 * @export
 * @interface WatchlistScreeningReview
 */
export interface WatchlistScreeningReview {
    /**
     * ID of the associated review.
     * @type {string}
     * @memberof WatchlistScreeningReview
     */
    id: string;
    /**
     * Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
     * @type {Array<string>}
     * @memberof WatchlistScreeningReview
     */
    confirmed_hits: Array<string>;
    /**
     * Hits marked as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
     * @type {Array<string>}
     * @memberof WatchlistScreeningReview
     */
    dismissed_hits: Array<string>;
    /**
     * A comment submitted by a team member as part of reviewing a watchlist screening.
     * @type {string}
     * @memberof WatchlistScreeningReview
     */
    comment: string | null;
    /**
     *
     * @type {WatchlistScreeningAuditTrail}
     * @memberof WatchlistScreeningReview
     */
    audit_trail: WatchlistScreeningAuditTrail;
}
/**
 * Search terms for creating an individual watchlist screening
 * @export
 * @interface WatchlistScreeningSearchTerms
 */
export interface WatchlistScreeningSearchTerms {
    /**
     * ID of the associated program.
     * @type {string}
     * @memberof WatchlistScreeningSearchTerms
     */
    watchlist_program_id: string;
    /**
     * The legal name of the individual being screened. Must have at least one alphabetical character, have a maximum length of 100 characters, and not include leading or trailing spaces.
     * @type {string}
     * @memberof WatchlistScreeningSearchTerms
     */
    legal_name: string;
    /**
     * A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
     * @type {string}
     * @memberof WatchlistScreeningSearchTerms
     */
    date_of_birth: string | null;
    /**
     * The numeric or alphanumeric identifier associated with this document. Must be between 4 and 32 characters long, and cannot have leading or trailing spaces.
     * @type {string}
     * @memberof WatchlistScreeningSearchTerms
     */
    document_number: string | null;
    /**
     * Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
     * @type {string}
     * @memberof WatchlistScreeningSearchTerms
     */
    country: string | null;
    /**
     * The current version of the search terms. Starts at `1` and increments with each edit to `search_terms`.
     * @type {number}
     * @memberof WatchlistScreeningSearchTerms
     */
    version: number;
}
/**
 * A status enum indicating whether a screening is still pending review, has been rejected, or has been cleared.
 * @export
 * @enum {string}
 */
export declare enum WatchlistScreeningStatus {
    Rejected = "rejected",
    PendingReview = "pending_review",
    Cleared = "cleared"
}
/**
 * Names that are explicitly marked as low quality either by their `source` list, or by `plaid` by a series of additional checks done by Plaid. Plaid does not ever surface a hit as a result of a weak name alone. If a name has no quality issues, this value will be `none`.
 * @export
 * @enum {string}
 */
export declare enum WeakAliasDetermination {
    None = "none",
    Source = "source",
    Plaid = "plaid"
}
/**
 * The Plaid environment the webhook was sent from
 * @export
 * @enum {string}
 */
export declare enum WebhookEnvironmentValues {
    Sandbox = "sandbox",
    Production = "production"
}
/**
 * The webhook types that can be fired by this test endpoint.
 * @export
 * @enum {string}
 */
export declare enum WebhookType {
    Auth = "AUTH",
    Holdings = "HOLDINGS",
    InvestmentsTransactions = "INVESTMENTS_TRANSACTIONS",
    Item = "ITEM",
    Liabilities = "LIABILITIES",
    Transactions = "TRANSACTIONS",
    Assets = "ASSETS"
}
/**
 * Fired when an Item\'s webhook is updated. This will be sent to the newly specified webhook.
 * @export
 * @interface WebhookUpdateAcknowledgedWebhook
 */
export interface WebhookUpdateAcknowledgedWebhook {
    /**
     * `ITEM`
     * @type {string}
     * @memberof WebhookUpdateAcknowledgedWebhook
     */
    webhook_type: string;
    /**
     * `WEBHOOK_UPDATE_ACKNOWLEDGED`
     * @type {string}
     * @memberof WebhookUpdateAcknowledgedWebhook
     */
    webhook_code: string;
    /**
     * The `item_id` of the Item associated with this webhook, warning, or error
     * @type {string}
     * @memberof WebhookUpdateAcknowledgedWebhook
     */
    item_id: string;
    /**
     * The new webhook URL
     * @type {string}
     * @memberof WebhookUpdateAcknowledgedWebhook
     */
    new_webhook_url: string;
    /**
     *
     * @type {PlaidError}
     * @memberof WebhookUpdateAcknowledgedWebhook
     */
    error?: PlaidError | null;
    /**
     *
     * @type {WebhookEnvironmentValues}
     * @memberof WebhookUpdateAcknowledgedWebhook
     */
    environment: WebhookEnvironmentValues;
}
/**
 * WebhookVerificationKeyGetRequest defines the request schema for `/webhook_verification_key/get`
 * @export
 * @interface WebhookVerificationKeyGetRequest
 */
export interface WebhookVerificationKeyGetRequest {
    /**
     * Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
     * @type {string}
     * @memberof WebhookVerificationKeyGetRequest
     */
    client_id?: string;
    /**
     * Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
     * @type {string}
     * @memberof WebhookVerificationKeyGetRequest
     */
    secret?: string;
    /**
     * The key ID ( `kid` ) from the JWT header.
     * @type {string}
     * @memberof WebhookVerificationKeyGetRequest
     */
    key_id: string;
}
/**
 * WebhookVerificationKeyGetResponse defines the response schema for `/webhook_verification_key/get`
 * @export
 * @interface WebhookVerificationKeyGetResponse
 */
export interface WebhookVerificationKeyGetResponse {
    /**
     *
     * @type {JWKPublicKey}
     * @memberof WebhookVerificationKeyGetResponse
     */
    key: JWKPublicKey;
    /**
     * A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
     * @type {string}
     * @memberof WebhookVerificationKeyGetResponse
     */
    request_id: string;
}
/**
 * Year-to-date pre-tax earnings, as reported on the paystub.
 * @export
 * @interface YTDGrossIncomeSummaryFieldNumber
 */
export interface YTDGrossIncomeSummaryFieldNumber {
    /**
     * The value of the field.
     * @type {number}
     * @memberof YTDGrossIncomeSummaryFieldNumber
     */
    value: number;
    /**
     *
     * @type {VerificationStatus}
     * @memberof YTDGrossIncomeSummaryFieldNumber
     */
    verification_status: VerificationStatus;
}
/**
 * Year-to-date earnings after any tax withholdings, benefit payments or deductions, as reported on the paystub.
 * @export
 * @interface YTDNetIncomeSummaryFieldNumber
 */
export interface YTDNetIncomeSummaryFieldNumber {
    /**
     * The value of the field.
     * @type {number}
     * @memberof YTDNetIncomeSummaryFieldNumber
     */
    value: number;
    /**
     *
     * @type {VerificationStatus}
     * @memberof YTDNetIncomeSummaryFieldNumber
     */
    verification_status: VerificationStatus;
}
/**
 * Details about a fixed income security\'s expected rate of return.
 * @export
 * @interface YieldRate
 */
export interface YieldRate {
    /**
     * The fixed income security\'s expected rate of return.
     * @type {number}
     * @memberof YieldRate
     */
    percentage: number;
    /**
     *
     * @type {YieldRateType}
     * @memberof YieldRate
     */
    type: YieldRateType | null;
}
/**
 * The type of rate which indicates how the predicted yield was calculated. It is one of:  `coupon`: the annualized interest rate for securities with a one-year term or longer, such as treasury notes and bonds.  `coupon_equivalent`: the calculated equivalent for the annualized interest rate factoring in the discount rate and time to maturity, for shorter term, non-interest-bearing securities such as treasury bills.  `discount`: the rate at which the present value or cost is discounted from the future value upon maturity, also known as the face value.  `yield`: the total predicted rate of return factoring in both the discount rate and the coupon rate, applicable to securities such as exchange-traded bonds which can both be interest-bearing as well as sold at a discount off its face value.
 * @export
 * @enum {string}
 */
export declare enum YieldRateType {
    Coupon = "coupon",
    CouponEquivalent = "coupon_equivalent",
    Discount = "discount",
    Yield = "yield",
    Null = "null"
}
/**
 * PlaidApi - axios parameter creator
 * @export
 */
export declare const PlaidApiAxiosParamCreator: (configuration?: Configuration | undefined) => {
    /**
     * The `/accounts/balance/get` endpoint returns the real-time balance for each of an Item\'s accounts. While other endpoints, such as `/accounts/get`, return a balance object, only `/accounts/balance/get` forces the available and current balance fields to be refreshed rather than cached. This endpoint can be used for existing Items that were added via any of Plaid’s other products. This endpoint can be used as long as Link has been initialized with any other product, `balance` itself is not a product that can be used to initialize Link. As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.
     * @summary Retrieve real-time balance data
     * @param {AccountsBalanceGetRequest} accountsBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    accountsBalanceGet: (accountsBalanceGetRequest: AccountsBalanceGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/accounts/get` endpoint can be used to retrieve a list of accounts associated with any linked Item. Plaid will only return active bank accounts — that is, accounts that are not closed and are capable of carrying a balance. To return new accounts that were created after the user linked their Item, you can listen for the [`NEW_ACCOUNTS_AVAILABLE`](https://plaid.com/docs/api/items/#new_accounts_available) webhook and then use Link\'s [update mode](https://plaid.com/docs/link/update-mode/) to request that the user share this new account with you.  `/accounts/get` is free to use and retrieves cached information, rather than extracting fresh information from the institution. The balance returned will reflect the balance at the time of the last successful Item update. If the Item is enabled for a regularly updating product, such as Transactions, Investments, or Liabilities, the balance will typically update about once a day, as long as the Item is healthy. If the Item is enabled only for products that do not frequently update, such as Auth or Identity, balance data may be much older.  For realtime balance information, use the paid endpoint `/accounts/balance/get` instead.
     * @summary Retrieve accounts
     * @param {AccountsGetRequest} accountsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    accountsGet: (accountsGetRequest: AccountsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Allows financial institutions to retrieve information about Plaid clients for the purpose of building control-tower experiences
     * @summary Retrieve information about a Plaid application
     * @param {ApplicationGetRequest} applicationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    applicationGet: (applicationGetRequest: ApplicationGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Plaid can provide an Audit Copy of any Asset Report directly to a participating third party on your behalf. For example, Plaid can supply an Audit Copy directly to Fannie Mae on your behalf if you participate in the Day 1 Certainty™ program. An Audit Copy contains the same underlying data as the Asset Report.  To grant access to an Audit Copy, use the `/asset_report/audit_copy/create` endpoint to create an `audit_copy_token` and then pass that token to the third party who needs access. Each third party has its own `auditor_id`, for example `fannie_mae`. You’ll need to create a separate Audit Copy for each third party to whom you want to grant access to the Report.
     * @summary Create Asset Report Audit Copy
     * @param {AssetReportAuditCopyCreateRequest} assetReportAuditCopyCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportAuditCopyCreate: (assetReportAuditCopyCreateRequest: AssetReportAuditCopyCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/asset_report/audit_copy/get` allows auditors to get a copy of an Asset Report that was previously shared via the `/asset_report/audit_copy/create` endpoint.  The caller of `/asset_report/audit_copy/create` must provide the `audit_copy_token` to the auditor.  This token can then be used to call `/asset_report/audit_copy/create`.
     * @summary Retrieve an Asset Report Audit Copy
     * @param {AssetReportAuditCopyGetRequest} assetReportAuditCopyGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportAuditCopyGet: (assetReportAuditCopyGetRequest: AssetReportAuditCopyGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/asset_report/audit_copy/remove` endpoint allows you to remove an Audit Copy. Removing an Audit Copy invalidates the `audit_copy_token` associated with it, meaning both you and any third parties holding the token will no longer be able to use it to access Report data. Items associated with the Asset Report, the Asset Report itself and other Audit Copies of it are not affected and will remain accessible after removing the given Audit Copy.
     * @summary Remove Asset Report Audit Copy
     * @param {AssetReportAuditCopyRemoveRequest} assetReportAuditCopyRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportAuditCopyRemove: (assetReportAuditCopyRemoveRequest: AssetReportAuditCopyRemoveRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/asset_report/create` endpoint initiates the process of creating an Asset Report, which can then be retrieved by passing the `asset_report_token` return value to the `/asset_report/get` or `/asset_report/pdf/get` endpoints.  The Asset Report takes some time to be created and is not available immediately after calling `/asset_report/create`. The exact amount of time to create the report will vary depending on how many days of history are requested and will typically range from a few seconds to about one minute. When the Asset Report is ready to be retrieved using `/asset_report/get` or `/asset_report/pdf/get`, Plaid will fire a `PRODUCT_READY` webhook. For full details of the webhook schema, see [Asset Report webhooks](https://plaid.com/docs/api/products/assets/#webhooks).  The `/asset_report/create` endpoint creates an Asset Report at a moment in time. Asset Reports are immutable. To get an updated Asset Report, use the `/asset_report/refresh` endpoint.
     * @summary Create an Asset Report
     * @param {AssetReportCreateRequest} assetReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportCreate: (assetReportCreateRequest: AssetReportCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * By default, an Asset Report will contain all of the accounts on a given Item. In some cases, you may not want the Asset Report to contain all accounts. For example, you might have the end user choose which accounts are relevant in Link using the Account Select view, which you can enable in the dashboard. Or, you might always exclude certain account types or subtypes, which you can identify by using the `/accounts/get` endpoint. To narrow an Asset Report to only a subset of accounts, use the `/asset_report/filter` endpoint.  To exclude certain Accounts from an Asset Report, first use the `/asset_report/create` endpoint to create the report, then send the `asset_report_token` along with a list of `account_ids` to exclude to the `/asset_report/filter` endpoint, to create a new Asset Report which contains only a subset of the original Asset Report\'s data.  Because Asset Reports are immutable, calling `/asset_report/filter` does not alter the original Asset Report in any way; rather, `/asset_report/filter` creates a new Asset Report with a new token and id. Asset Reports created via `/asset_report/filter` do not contain new Asset data, and are not billed.  Plaid will fire a [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook once generation of the filtered Asset Report has completed.
     * @summary Filter Asset Report
     * @param {AssetReportFilterRequest} assetReportFilterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportFilter: (assetReportFilterRequest: AssetReportFilterRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/asset_report/get` endpoint retrieves the Asset Report in JSON format. Before calling `/asset_report/get`, you must first create the Asset Report using `/asset_report/create` (or filter an Asset Report using `/asset_report/filter`) and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  By default, an Asset Report includes transaction descriptions as returned by the bank, as opposed to parsed and categorized by Plaid. You can also receive cleaned and categorized transactions, as well as additional insights like merchant name or location information. We call this an Asset Report with Insights. An Asset Report with Insights provides transaction category, location, and merchant information in addition to the transaction strings provided in a standard Asset Report. To retrieve an Asset Report with Insights, call `/asset_report/get` endpoint with `include_insights` set to `true`.  For latency-sensitive applications, you can optionally call `/asset_report/create` with `options.add_ons` set to `[\"fast_assets\"]`. This will cause Plaid to create two versions of the Asset Report: one with only current and available balance and identity information, and then later on the complete Asset Report. You will receive separate webhooks for each version of the Asset Report.
     * @summary Retrieve an Asset Report
     * @param {AssetReportGetRequest} assetReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportGet: (assetReportGetRequest: AssetReportGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/asset_report/pdf/get` endpoint retrieves the Asset Report in PDF format. Before calling `/asset_report/pdf/get`, you must first create the Asset Report using `/asset_report/create` (or filter an Asset Report using `/asset_report/filter`) and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  The response to `/asset_report/pdf/get` is the PDF binary data. The `request_id`  is returned in the `Plaid-Request-ID` header.  [View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf).
     * @summary Retrieve a PDF Asset Report
     * @param {AssetReportPDFGetRequest} assetReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportPdfGet: (assetReportPDFGetRequest: AssetReportPDFGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * An Asset Report is an immutable snapshot of a user\'s assets. In order to \"refresh\" an Asset Report you created previously, you can use the `/asset_report/refresh` endpoint to create a new Asset Report based on the old one, but with the most recent data available.  The new Asset Report will contain the same Items as the original Report, as well as the same filters applied by any call to `/asset_report/filter`. By default, the new Asset Report will also use the same parameters you submitted with your original `/asset_report/create` request, but the original `days_requested` value and the values of any parameters in the `options` object can be overridden with new values. To change these arguments, simply supply new values for them in your request to `/asset_report/refresh`. Submit an empty string (\"\") for any previously-populated fields you would like set as empty.
     * @summary Refresh an Asset Report
     * @param {AssetReportRefreshRequest} assetReportRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportRefresh: (assetReportRefreshRequest: AssetReportRefreshRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/item/remove` endpoint allows you to invalidate an `access_token`, meaning you will not be able to create new Asset Reports with it. Removing an Item does not affect any Asset Reports or Audit Copies you have already created, which will remain accessible until you remove them specifically.  The `/asset_report/remove` endpoint allows you to remove access to an Asset Report. Removing an Asset Report invalidates its `asset_report_token`, meaning you will no longer be able to use it to access Report data or create new Audit Copies. Removing an Asset Report does not affect the underlying Items, but does invalidate any `audit_copy_tokens` associated with the Asset Report.
     * @summary Delete an Asset Report
     * @param {AssetReportRemoveRequest} assetReportRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportRemove: (assetReportRemoveRequest: AssetReportRemoveRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/auth/get` endpoint returns the bank account and bank identification numbers (such as routing numbers, for US accounts) associated with an Item\'s checking, savings, and cash management accounts, along with high-level account data and balances when available.  Versioning note: In API version 2017-03-08, the schema of the `numbers` object returned by this endpoint is substantially different. For details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2018-05-22).
     * @summary Retrieve auth data
     * @param {AuthGetRequest} authGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    authGet: (authGetRequest: AuthGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/bank_transfer/balance/get` endpoint to see the available balance in your bank transfer account. Debit transfers increase this balance once their status is posted. Credit transfers decrease this balance when they are created.  The transactable balance shows the amount in your account that you are able to use for transfers, and is essentially your available balance minus your minimum balance.  Note that this endpoint can only be used with FBO accounts, when using Bank Transfers in the Full Service configuration. It cannot be used on your own account when using Bank Transfers in the BTS Platform configuration.
     * @summary Get balance of your Bank Transfer account
     * @param {BankTransferBalanceGetRequest} bankTransferBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferBalanceGet: (bankTransferBalanceGetRequest: BankTransferBalanceGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/bank_transfer/cancel` endpoint to cancel a bank transfer.  A transfer is eligible for cancelation if the `cancellable` property returned by `/bank_transfer/get` is `true`.
     * @summary Cancel a bank transfer
     * @param {BankTransferCancelRequest} bankTransferCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferCancel: (bankTransferCancelRequest: BankTransferCancelRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/bank_transfer/create` endpoint to initiate a new bank transfer.
     * @summary Create a bank transfer
     * @param {BankTransferCreateRequest} bankTransferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferCreate: (bankTransferCreateRequest: BankTransferCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/bank_transfer/event/list` endpoint to get a list of Plaid-initiated ACH or bank transfer events based on specified filter criteria. When using Auth with micro-deposit verification enabled, this endpoint can be used to fetch status updates on ACH micro-deposits. For more details, see [micro-deposit events](https://plaid.com/docs/auth/coverage/microdeposit-events/).
     * @summary List bank transfer events
     * @param {BankTransferEventListRequest} bankTransferEventListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferEventList: (bankTransferEventListRequest: BankTransferEventListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/bank_transfer/event/sync` allows you to request up to the next 25 Plaid-initiated bank transfer events that happened after a specific `event_id`. When using Auth with micro-deposit verification enabled, this endpoint can be used to fetch status updates on ACH micro-deposits. For more details, see [micro-deposit events](https://www.plaid.com/docs/auth/coverage/microdeposit-events/).
     * @summary Sync bank transfer events
     * @param {BankTransferEventSyncRequest} bankTransferEventSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferEventSync: (bankTransferEventSyncRequest: BankTransferEventSyncRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/bank_transfer/get` fetches information about the bank transfer corresponding to the given `bank_transfer_id`.
     * @summary Retrieve a bank transfer
     * @param {BankTransferGetRequest} bankTransferGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferGet: (bankTransferGetRequest: BankTransferGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/bank_transfer/list` endpoint to see a list of all your bank transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired bank transfers.
     * @summary List bank transfers
     * @param {BankTransferListRequest} bankTransferListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferList: (bankTransferListRequest: BankTransferListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * As an alternative to adding Items via Link, you can also use the `/bank_transfer/migrate_account` endpoint to migrate known account and routing numbers to Plaid Items.  Note that Items created in this way are not compatible with endpoints for other products, such as `/accounts/balance/get`, and can only be used with Bank Transfer endpoints.  If you require access to other endpoints, create the Item through Link instead.  Access to `/bank_transfer/migrate_account` is not enabled by default; to obtain access, contact your Plaid Account Manager.
     * @summary Migrate account into Bank Transfers
     * @param {BankTransferMigrateAccountRequest} bankTransferMigrateAccountRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferMigrateAccount: (bankTransferMigrateAccountRequest: BankTransferMigrateAccountRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/bank_transfer/sweep/get` endpoint fetches information about the sweep corresponding to the given `sweep_id`.
     * @summary Retrieve a sweep
     * @param {BankTransferSweepGetRequest} bankTransferSweepGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferSweepGet: (bankTransferSweepGetRequest: BankTransferSweepGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/bank_transfer/sweep/list` endpoint fetches information about the sweeps matching the given filters.
     * @summary List sweeps
     * @param {BankTransferSweepListRequest} bankTransferSweepListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferSweepList: (bankTransferSweepListRequest: BankTransferSweepListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use `/beacon/account_risk/v1/evaluate` to get risk insights for a linked account.
     * @summary Evaluate risk of a bank account
     * @param {BeaconAccountRiskEvaluateRequest} beaconAccountRiskEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconAccountRiskEvaluate: (beaconAccountRiskEvaluateRequest: BeaconAccountRiskEvaluateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Returns a Beacon Duplicate for a given Beacon Duplicate id.  A Beacon Duplicate represents a pair of similar Beacon Users within your organization.  Two Beacon User revisions are returned for each Duplicate record in either the `beacon_user1` or `beacon_user2` response fields.  The `analysis` field in the response indicates which fields matched between `beacon_user1` and `beacon_user2`.
     * @summary Get a Beacon Duplicate
     * @param {BeaconDuplicateGetRequest} beaconDuplicateGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconDuplicateGet: (beaconDuplicateGetRequest: BeaconDuplicateGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Create a fraud report for a given Beacon User.
     * @summary Create a Beacon Report
     * @param {BeaconReportCreateRequest} beaconReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportCreate: (beaconReportCreateRequest: BeaconReportCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Returns a Beacon report for a given Beacon report id.
     * @summary Get a Beacon Report
     * @param {BeaconReportGetRequest} beaconReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportGet: (beaconReportGetRequest: BeaconReportGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/beacon/report/list` endpoint to view all Beacon Reports you created for a specific Beacon User. The reports returned by this endpoint are exclusively reports you created for a specific user. A Beacon User can only have one active report at a time, but a new report can be created if a previous report has been deleted. The results from this endpoint are paginated; the `next_cursor` field will be populated if there is another page of results that can be retrieved. To fetch the next page, pass the `next_cursor` value as the `cursor` parameter in the next request.
     * @summary List Beacon Reports for a Beacon User
     * @param {BeaconReportListRequest} beaconReportListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportList: (beaconReportListRequest: BeaconReportListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Returns a Beacon Report Syndication for a given Beacon Report Syndication id.
     * @summary Get a Beacon Report Syndication
     * @param {BeaconReportSyndicationGetRequest} beaconReportSyndicationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportSyndicationGet: (beaconReportSyndicationGetRequest: BeaconReportSyndicationGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/beacon/report_syndication/list` endpoint to view all Beacon Reports that have been syndicated to a specific Beacon User. This endpoint returns Beacon Report Syndications which are references to Beacon Reports created either by you, or another Beacon customer, that matched the specified Beacon User. A Beacon User can have multiple active Beacon Report Syndications at once. The results from this endpoint are paginated; the `next_cursor` field will be populated if there is another page of results that can be retrieved. To fetch the next page, pass the `next_cursor` value as the `cursor` parameter in the next request.
     * @summary List Beacon Report Syndications for a Beacon User
     * @param {BeaconReportSyndicationListRequest} beaconReportSyndicationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportSyndicationList: (beaconReportSyndicationListRequest: BeaconReportSyndicationListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Get Account Insights for all Accounts linked to this Beacon User. The insights for each account are computed based on the information that was last retrieved from the financial institution.
     * @summary Get Account Insights for a Beacon User
     * @param {BeaconUserAccountInsightsGetRequest} beaconUserAccountInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserAccountInsightsGet: (beaconUserAccountInsightsGetRequest: BeaconUserAccountInsightsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Create and scan a Beacon User against your Beacon Program, according to your program\'s settings.  When you submit a new user to `/beacon/user/create`, several checks are performed immediately:    - The user\'s PII (provided within the `user` object) is searched against all other users within the Beacon Program you specified. If a match is found that violates your program\'s \"Duplicate Information Filtering\" settings, the user will be returned with a status of `pending_review`.    - The user\'s PII is also searched against all fraud reports created by your organization across all of your Beacon Programs. If the user\'s data matches a fraud report that your team created, the user will be returned with a status of `rejected`.    - Finally, the user\'s PII is searched against all fraud report shared with the Beacon Network by other companies. If a matching fraud report is found, the user will be returned with a `pending_review` status if your program has enabled automatic flagging based on network fraud.
     * @summary Create a Beacon User
     * @param {BeaconUserCreateRequest} beaconUserCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserCreate: (beaconUserCreateRequest: BeaconUserCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Fetch a Beacon User.  The Beacon User is returned with all of their associated information and a `status` based on the Beacon Network duplicate record and fraud checks.
     * @summary Get a Beacon User
     * @param {BeaconUserGetRequest} beaconUserGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserGet: (beaconUserGetRequest: BeaconUserGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List all changes to the Beacon User in reverse-chronological order.
     * @summary List a Beacon User\'s history
     * @param {BeaconUserHistoryListRequest} beaconUserHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserHistoryList: (beaconUserHistoryListRequest: BeaconUserHistoryListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Update the status of a Beacon User.  When updating a Beacon User\'s status via this endpoint, Plaid validates that the status change is consistent with the related state for this Beacon User. Specifically, we will check:  1. Whether there are any associated Beacon Reports connected to the Beacon User, and 2. Whether there are any confirmed Beacon Report Syndications connected to the Beacon User.  When updating a Beacon User\'s status to \"rejected\", we enforce that either a Beacon Report has been created for the Beacon User or a Beacon Report Syndication has been confirmed. When updating a Beacon User\'s status to \"cleared\", we enforce that there are no active Beacon Reports or confirmed Beacon Report Syndications associated with the user. If you previously created a Beacon Report for this user, you must delete it before updating the Beacon User\'s status to \"cleared\". There are no restrictions on updating a Beacon User\'s status to \"pending_review\".  If these conditions are not met, the request will be rejected with an error explaining the issue.
     * @summary Review a Beacon User
     * @param {BeaconUserReviewRequest} beaconUserReviewRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserReview: (beaconUserReviewRequest: BeaconUserReviewRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Update the identity data for a Beacon User in your Beacon Program or add new accounts to the Beacon User.  Similar to `/beacon/user/create`, several checks are performed immediately when you submit an identity data change to `/beacon/user/update`:    - The user\'s updated PII is searched against all other users within the Beacon Program you specified. If a match is found that violates your program\'s \"Duplicate Information Filtering\" settings, the user will be returned with a status of `pending_review`.    - The user\'s updated PII is also searched against all fraud reports created by your organization across all of your Beacon Programs. If the user\'s data matches a fraud report that your team created, the user will be returned with a status of `rejected`.    - Finally, the user\'s PII is searched against all fraud report shared with the Beacon Network by other companies. If a matching fraud report is found, the user will be returned with a `pending_review` status if your program has enabled automatic flagging based on network fraud.  Plaid maintains a version history for each Beacon User, so the Beacon User\'s identity data before and after the update is retained as separate versions.
     * @summary Update the identity data of a Beacon User
     * @param {BeaconUserUpdateRequest} beaconUserUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserUpdate: (beaconUserUpdateRequest: BeaconUserUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Send a request to the `/categories/get` endpoint to get detailed information on categories returned by Plaid. This endpoint does not require authentication.  All implementations are recommended to use the newer `personal_finance_category` taxonomy instead of the older `category` taxonomy supported by this endpoint. The [`personal_finance_category taxonomy` CSV file](https://plaid.com/documents/transactions-personal-finance-category-taxonomy.csv) is available for download and is not accessible via API.
     * @summary Get categories
     * @param {object} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    categoriesGet: (body: object, options?: any) => Promise<RequestArgs>;
    /**
     * List a historical log of Item consent events. Consent logs are only available for events occurring on or after November 7, 2024. Up to three years of consent logs will be available via the endpoint.
     * @summary List a historical log of item consent events
     * @param {ConsentEventsGetRequest} consentEventsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    consentEventsGet: (consentEventsGetRequest: ConsentEventsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Retrieves all existing CRB Bank Income and Base reports for the consumer in PDF format.  Response is PDF binary data. The `request_id` is returned in the `Plaid-Request-ID` header.
     * @summary Retrieve a PDF Reports
     * @param {ConsumerReportPDFGetRequest} consumerReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    consumerReportPdfGet: (consumerReportPDFGetRequest: ConsumerReportPDFGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/cra/bank_income/create` creates a CRA report for income verification
     * @summary Create a CRA report for income verification
     * @param {CraBankIncomeCreateRequest} craBankIncomeCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craBankIncomeCreate: (craBankIncomeCreateRequest: CraBankIncomeCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/cra/bank_income/get` returns the bank income report(s) for a specified user.
     * @summary Retrieve information from the bank accounts used for income verification
     * @param {CraBankIncomeGetRequest} craBankIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craBankIncomeGet: (craBankIncomeGetRequest: CraBankIncomeGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint allows you to retrieve the Base Report for your user, allowing you to receive comprehensive bank account and cash flow data. You should call this endpoint after you\'ve received a `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn\'t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.
     * @summary Retrieve a Base Report
     * @param {CraCheckReportBaseReportGetRequest} craCheckReportBaseReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportBaseReportGet: (craCheckReportBaseReportGetRequest: CraCheckReportBaseReportGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint allows you to retrieve the Cashflow Insights report for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the insights, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `cra_cashflow_insights` product or have generated a report using `/cra/check_report/create`, we will generate the insights when you call this endpoint. In this case, you may optionally provide parameters under `options` to configure which insights you want to receive.
     * @summary Retrieve cash flow insights from your user\'s banking data
     * @param {CraCheckReportCashflowInsightsGetRequest} craCheckReportCashflowInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportCashflowInsightsGet: (craCheckReportCashflowInsightsGetRequest: CraCheckReportCashflowInsightsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/cra/check_report/create` creates a Consumer Report powered by Plaid Check. You can call this endpoint to create a new report if `consumer_report_permissible_purpose` was omitted during Link token creation. If you did provide a `consumer_report_permissible_purpose` during Link token creation, then Plaid Check will automatically begin creating a Consumer Report once the user completes the Link process, and it is not necessary to call `/cra/check_report/create` before retrieving the report.   `/cra/check_report/create` can also be used to refresh data in an existing report. A Consumer Report will last for 24 hours before expiring; you should call any `/get` endpoints on the report before it expires. If a report expires, you can call `/cra/check_report/create` again to re-generate it. Note that refreshing or regenerating a report is a billable event.
     * @summary Create a Consumer Report
     * @param {CraCheckReportCreateRequest} craCheckReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportCreate: (craCheckReportCreateRequest: CraCheckReportCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint allows you to retrieve the Income Insights report for your user.  You should call this endpoint after you\'ve received a `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.
     * @summary Retrieve cash flow information from your user\'s banks
     * @param {CraCheckReportIncomeInsightsGetRequest} craCheckReportIncomeInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportIncomeInsightsGet: (craCheckReportIncomeInsightsGetRequest: CraCheckReportIncomeInsightsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint allows you to retrieve the Network Insights product for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `cra_network_attributes` product or have generated a report using `/cra/check_report/create`, we will generate the attributes when you call this endpoint.
     * @summary Retrieve network attributes for the user
     * @param {CraCheckReportNetworkInsightsGetRequest} craCheckReportNetworkInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportNetworkInsightsGet: (craCheckReportNetworkInsightsGetRequest: CraCheckReportNetworkInsightsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint allows you to retrieve the Partner Insights report for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `credit_partner_insights` product or have generated a report using `/cra/check_report/create`, we will call our partners to generate the insights when you call this endpoint. In this case, you may optionally provide parameters under `options` to configure which insights you want to receive.
     * @summary Retrieve cash flow insights from partners
     * @param {CraCheckReportPartnerInsightsGetRequest} craCheckReportPartnerInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportPartnerInsightsGet: (craCheckReportPartnerInsightsGetRequest: CraCheckReportPartnerInsightsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/cra/check_report/pdf/get` retrieves the most recent Consumer Report in PDF format. By default, the most recent Base Report (if it exists) for the user will be returned. To request that the most recent Income Insights report be included in the PDF as well, use the `add-ons` field.
     * @summary Retrieve Consumer Reports as a PDF
     * @param {CraCheckReportPDFGetRequest} craCheckReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportPdfGet: (craCheckReportPDFGetRequest: CraCheckReportPDFGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/cra/loans/applications/register` registers loan applications and decisions.
     * @summary Register loan applications and decisions.
     * @param {CraLoansApplicationsRegisterRequest} craLoansApplicationsRegisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansApplicationsRegister: (craLoansApplicationsRegisterRequest: CraLoansApplicationsRegisterRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/cra/loans/register` registers a list of loans to their applicants.
     * @summary Register a list of loans to their applicants.
     * @param {CRALoansRegisterRequest} cRALoansRegisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansRegister: (cRALoansRegisterRequest: CRALoansRegisterRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/cra/loans/unregister` indicates the loans have reached a final status and no further updates are expected.
     * @summary Unregister a list of loans.
     * @param {CraLoansUnregisterRequest} craLoansUnregisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansUnregister: (craLoansUnregisterRequest: CraLoansUnregisterRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/cra/loans/update` updates loan information such as the status and payment history.
     * @summary Updates loan data.
     * @param {CraLoansUpdateRequest} craLoansUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansUpdate: (craLoansUpdateRequest: CraLoansUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint allows you to retrieve a Monitoring Insights report by passing in the `user_token` referred to in the webhook you received.
     * @summary Retrieve a Monitoring Insights Report
     * @param {CraMonitoringInsightsGetRequest} craMonitoringInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craMonitoringInsightsGet: (craMonitoringInsightsGetRequest: CraMonitoringInsightsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint allows you to subscribe to insights for a user\'s linked CRA items, which are updated every day (best-effort).
     * @summary Subscribe to Monitoring Insights
     * @param {CraMonitoringInsightsSubscribeRequest} craMonitoringInsightsSubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craMonitoringInsightsSubscribe: (craMonitoringInsightsSubscribeRequest: CraMonitoringInsightsSubscribeRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint allows you to unsubscribe from previously subscribed Monitoring Insights.
     * @summary Unsubscribe from Monitoring Insights
     * @param {CraMonitoringInsightsUnsubscribeRequest} craMonitoringInsightsUnsubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craMonitoringInsightsUnsubscribe: (craMonitoringInsightsUnsubscribeRequest: CraMonitoringInsightsUnsubscribeRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/cra/partner_insights/get` returns cash flow insights for a specified user.
     * @summary Retrieve cash flow insights from the bank accounts used for income verification
     * @param {CraPartnerInsightsGetRequest} craPartnerInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craPartnerInsightsGet: (craPartnerInsightsGetRequest: CraPartnerInsightsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/payment_initiation/payment/token/create` endpoint has been deprecated. New Plaid customers will be unable to use this endpoint, and existing customers are encouraged to migrate to the newer, `link_token`-based flow. The recommended flow is to provide the `payment_id` to `/link/token/create`, which returns a `link_token` used to initialize Link.  The `/payment_initiation/payment/token/create` is used to create a `payment_token`, which can then be used in Link initialization to enter a payment initiation flow. You can only use a `payment_token` once. If this attempt fails, the end user aborts the flow, or the token expires, you will need to create a new payment token. Creating a new payment token does not require end user input.
     * @summary Create payment token
     * @param {PaymentInitiationPaymentTokenCreateRequest} paymentInitiationPaymentTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createPaymentToken: (paymentInitiationPaymentTokenCreateRequest: PaymentInitiationPaymentTokenCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `credit/asset_report/freddie_mac/get` endpoint retrieves the Asset Report in Freddie Mac\'s JSON format.
     * @summary Retrieve an Asset Report with Freddie Mac format. Only Freddie Mac can use this endpoint.
     * @param {{ [key: string]: object; }} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditAssetReportFreddieMacGet: (requestBody: {
        [key: string]: object;
    }, options?: any) => Promise<RequestArgs>;
    /**
     * Plaid can create an Audit Copy token of an Asset Report and/or Income Report to share with participating Government Sponsored Entity (GSE). If you participate in the Day 1 Certainty™ program, Plaid can supply an Audit Copy token directly to Fannie Mae on your behalf. An Audit Copy token contains the same underlying data as the Asset Report and/or Income Report (result of /credit/payroll_income/get).  Use the `/credit/audit_copy_token/create` endpoint to create an `audit_copy_token` and then pass that token to the GSE who needs access.
     * @summary Create Asset or Income Report Audit Copy Token
     * @param {CreditAuditCopyTokenCreateRequest} creditAuditCopyTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditAuditCopyTokenCreate: (creditAuditCopyTokenCreateRequest: CreditAuditCopyTokenCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/credit/audit_copy_token/update` endpoint updates an existing  Audit Copy Token by adding the report tokens in the `report_tokens` field to the `audit_copy_token`. If the Audit Copy Token already contains a report of a certain type, it will be replaced with the token provided in the `report_tokens` field.
     * @summary Update an Audit Copy Token
     * @param {CreditAuditCopyTokenUpdateRequest} creditAuditCopyTokenUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditAuditCopyTokenUpdate: (creditAuditCopyTokenUpdateRequest: CreditAuditCopyTokenUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/bank_employment/get` returns the employment report(s) derived from bank transaction data for a specified user.
     * @summary Retrieve information from the bank accounts used for employment verification
     * @param {CreditBankEmploymentGetRequest} creditBankEmploymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankEmploymentGet: (creditBankEmploymentGetRequest: CreditBankEmploymentGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/bank_income/get` returns the bank income report(s) for a specified user. A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use [Multi-Item Link](https://plaid.com/docs/link/multi-item-link). To return older reports, use the `options.count` field.
     * @summary Retrieve information from the bank accounts used for income verification
     * @param {CreditBankIncomeGetRequest} creditBankIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomeGet: (creditBankIncomeGetRequest: CreditBankIncomeGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/bank_income/pdf/get` returns the most recent bank income report for a specified user in PDF format.  A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use [Multi-Item Link](https://plaid.com/docs/link/multi-item-link).
     * @summary Retrieve information from the bank accounts used for income verification in PDF format
     * @param {CreditBankIncomePDFGetRequest} creditBankIncomePDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomePdfGet: (creditBankIncomePDFGetRequest: CreditBankIncomePDFGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/bank_income/refresh` refreshes the most recent bank income report data for a specific user. If the most recent bank income report is no longer valid (i.e. deleted), the endpoint will refresh the most recent valid report instead.
     * @summary Refresh a user\'s bank income information
     * @param {CreditBankIncomeRefreshRequest} creditBankIncomeRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomeRefresh: (creditBankIncomeRefreshRequest: CreditBankIncomeRefreshRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/bank_income/webhook/update` allows you to subscribe or unsubscribe a user for income webhook notifications. By default, all users start out unsubscribed.  If a user is subscribed, on significant changes to the user\'s income profile, you will receive a `BANK_INCOME_REFRESH_UPDATE` webhook, prompting you to refresh bank income data for the user.
     * @summary Subscribe and unsubscribe to proactive notifications for a user\'s income profile
     * @param {CreditBankIncomeWebhookUpdateRequest} creditBankIncomeWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomeWebhookUpdate: (creditBankIncomeWebhookUpdateRequest: CreditBankIncomeWebhookUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/bank_statements/uploads/get` returns parsed data from bank statements uploaded by users as part of the Document Income flow. If your account is not enabled for Document Parsing, contact your account manager to request access.
     * @summary Retrieve data for a user\'s uploaded bank statements
     * @param {CreditBankStatementsUploadsGetRequest} creditBankStatementsUploadsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankStatementsUploadsGet: (creditBankStatementsUploadsGetRequest: CreditBankStatementsUploadsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/employment/get` returns a list of items with employment information from a user\'s payroll provider that was verified by an end user.
     * @summary Retrieve a summary of an individual\'s employment information
     * @param {CreditEmploymentGetRequest} creditEmploymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditEmploymentGet: (creditEmploymentGetRequest: CreditEmploymentGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `credit/asset_report/freddie_mac/get` endpoint retrieves the Verification of Assets and Verification of Employment reports.
     * @summary Retrieve an Asset Report with Freddie Mac format (aka VOA - Verification Of Assets), and a Verification Of Employment (VOE) report if this one is available. Only Freddie Mac can use this endpoint.
     * @param {CreditFreddieMacReportsGetRequest} creditFreddieMacReportsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditFreddieMacReportsGet: (creditFreddieMacReportsGetRequest: CreditFreddieMacReportsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint gets payroll income information for a specific user, either as a result of the user connecting to their payroll provider or uploading a pay related document.
     * @summary Retrieve a user\'s payroll information
     * @param {CreditPayrollIncomeGetRequest} creditPayrollIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeGet: (creditPayrollIncomeGetRequest: CreditPayrollIncomeGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/payroll_income/parsing_config/update` updates the parsing configuration for a document income verification.
     * @summary Update the parsing configuration for a document income verification
     * @param {{ [key: string]: object; }} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeParsingConfigUpdate: (requestBody: {
        [key: string]: object;
    }, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/payroll_income/precheck` is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification. If the user is eligible for digital verification, that information will be associated with the user token, and in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.  While all request fields are optional, providing `employer` data will increase the chance of receiving a useful result.  When testing in Sandbox, you can control the results by providing special test values in the `employer` and `access_tokens` fields. `employer_good` and `employer_bad` will result in `HIGH` and `LOW` confidence values, respectively. `employer_multi` will result in a `HIGH` confidence with multiple payroll options. Likewise, `access_good` and `access_bad` will result in `HIGH` and `LOW` confidence values, respectively. Any other value for `employer` and `access_tokens` in Sandbox will result in `UNKNOWN` confidence.
     * @summary Check income verification eligibility and optimize conversion
     * @param {CreditPayrollIncomePrecheckRequest} creditPayrollIncomePrecheckRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomePrecheck: (creditPayrollIncomePrecheckRequest: CreditPayrollIncomePrecheckRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/payroll_income/refresh` refreshes a given digital payroll income verification.
     * @summary Refresh a digital payroll income verification
     * @param {CreditPayrollIncomeRefreshRequest} creditPayrollIncomeRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeRefresh: (creditPayrollIncomeRefreshRequest: CreditPayrollIncomeRefreshRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/payroll_income/risk_signals/get` can be used as part of the Document Income flow to assess a user-uploaded document for signs of potential fraud or tampering. It returns a risk score for each uploaded document that indicates the likelihood of the document being fraudulent, in addition to details on the individual risk signals contributing to the score.  To trigger risk signal generation for an Item, call `/link/token/create` with `parsing_config` set to include `risk_signals`, or call `/credit/payroll_income/parsing_config/update`. Once risk signal generation has been triggered, `/credit/payroll_income/risk_signals/get` can be called at any time after the `INCOME_VERIFICATION_RISK_SIGNALS` webhook has been fired.  `/credit/payroll_income/risk_signals/get` is offered as an add-on to Document Income and is billed separately. To request access to this endpoint, submit a product access request or contact your Plaid account manager.
     * @summary Retrieve fraud insights for a user\'s manually uploaded document(s).
     * @param {CreditPayrollIncomeRiskSignalsGetRequest} creditPayrollIncomeRiskSignalsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeRiskSignalsGet: (creditPayrollIncomeRiskSignalsGetRequest: CreditPayrollIncomeRiskSignalsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Plaid can share an Asset Report directly with a participating third party on your behalf. The shared Asset Report is the exact same Asset Report originally created in `/asset_report/create`.  To grant a third party access to an Asset Report, use the `/credit/relay/create` endpoint to create a `relay_token` and then pass that token to your third party. Each third party has its own `secondary_client_id`; for example, `ce5bd328dcd34123456`. You\'ll need to create a separate `relay_token` for each third party that needs access to the report on your behalf.
     * @summary Create a relay token to share an Asset Report with a partner client
     * @param {CreditRelayCreateRequest} creditRelayCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayCreate: (creditRelayCreateRequest: CreditRelayCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/relay/get` allows third parties to receive a report that was shared with them, using a `relay_token` that was created by the report owner.
     * @summary Retrieve the reports associated with a relay token that was shared with you
     * @param {CreditRelayGetRequest} creditRelayGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayGet: (creditRelayGetRequest: CreditRelayGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/credit/relay/pdf/get` allows third parties to receive a pdf report that was shared with them, using a `relay_token` that was created by the report owner.  The `/credit/relay/pdf/get` endpoint retrieves the Asset Report in PDF format. Before calling `/credit/relay/pdf/get`, you must first create the Asset Report using `/credit/relay/create` and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  The response to `/credit/relay/pdf/get` is the PDF binary data. The `request_id` is returned in the `Plaid-Request-ID` header.  [View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf).
     * @summary Retrieve the pdf reports associated with a relay token that was shared with you (beta)
     * @param {CreditRelayPDFGetRequest} creditRelayPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayPdfGet: (creditRelayPDFGetRequest: CreditRelayPDFGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/credit/relay/refresh` endpoint allows third parties to refresh a report that was relayed to them, using a `relay_token` that was created by the report owner. A new report will be created with the original report parameters, but with the most recent data available based on the `days_requested` value of the original report.
     * @summary Refresh a report of a relay token
     * @param {CreditRelayRefreshRequest} creditRelayRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayRefresh: (creditRelayRefreshRequest: CreditRelayRefreshRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/credit/relay/remove` endpoint allows you to invalidate a `relay_token`. The third party holding the token will no longer be able to access or refresh the reports which the `relay_token` gives access to. The original report, associated Items, and other relay tokens that provide access to the same report are not affected and will remain accessible after removing the given `relay_token`.
     * @summary Remove relay token
     * @param {CreditRelayRemoveRequest} creditRelayRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayRemove: (creditRelayRemoveRequest: CreditRelayRemoveRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/credit/audit_copy_token/remove` endpoint allows you to remove an Audit Copy. Removing an Audit Copy invalidates the `audit_copy_token` associated with it, meaning both you and any third parties holding the token will no longer be able to use it to access Report data. Items associated with the Report data and other Audit Copies of it are not affected and will remain accessible after removing the given Audit Copy.
     * @summary Remove an Audit Copy token
     * @param {CreditAuditCopyTokenRemoveRequest} creditAuditCopyTokenRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditReportAuditCopyRemove: (creditAuditCopyTokenRemoveRequest: CreditAuditCopyTokenRemoveRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint can be used for your end users after they complete the Link flow. This endpoint returns a list of Link sessions that your user completed, where each session includes the results from the Link flow.  These results include details about the Item that was created and some product related metadata (showing, for example, whether the user finished the bank income verification step).
     * @summary Retrieve Link sessions for your user
     * @param {CreditSessionsGetRequest} creditSessionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditSessionsGet: (creditSessionsGetRequest: CreditSessionsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/dashboard_user/get` endpoint provides details (such as email address) about a specific Dashboard user based on the `dashboard_user_id` field, which is returned in the `audit_trail` object of certain Monitor and Beacon endpoints. This can be used to identify the specific reviewer who performed a Dashboard action.
     * @summary Retrieve a dashboard user
     * @param {DashboardUserGetRequest} dashboardUserGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    dashboardUserGet: (dashboardUserGetRequest: DashboardUserGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/dashboard_user/list` endpoint provides details (such as email address) all Dashboard users associated with your account. This can use used to audit or track the list of reviewers for Monitor, Beacon, and Identity Verification products.
     * @summary List dashboard users
     * @param {DashboardUserListRequest} dashboardUserListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    dashboardUserList: (dashboardUserListRequest: DashboardUserListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint provides an alternative to `/deposit_switch/create` for customers who have not yet fully integrated with Plaid Exchange. Like `/deposit_switch/create`, it creates a deposit switch entity that will be persisted throughout the lifecycle of the switch.
     * @summary (Deprecated) Create a deposit switch without using Plaid Exchange
     * @param {DepositSwitchAltCreateRequest} depositSwitchAltCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchAltCreate: (depositSwitchAltCreateRequest: DepositSwitchAltCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint creates a deposit switch entity that will be persisted throughout the lifecycle of the switch.
     * @summary (Deprecated) Create a deposit switch
     * @param {DepositSwitchCreateRequest} depositSwitchCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchCreate: (depositSwitchCreateRequest: DepositSwitchCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint returns information related to how the user has configured their payroll allocation and the state of the switch. You can use this information to build logic related to the user\'s direct deposit allocation preferences.
     * @summary (Deprecated) Retrieve a deposit switch
     * @param {DepositSwitchGetRequest} depositSwitchGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchGet: (depositSwitchGetRequest: DepositSwitchGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * In order for the end user to take action, you will need to create a public token representing the deposit switch. This token is used to initialize Link. It can be used one time and expires after 30 minutes.
     * @summary (Deprecated) Create a deposit switch token
     * @param {DepositSwitchTokenCreateRequest} depositSwitchTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchTokenCreate: (depositSwitchTokenCreateRequest: DepositSwitchTokenCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/employers/search` allows you the ability to search Plaid’s database of known employers, for use with Deposit Switch. You can use this endpoint to look up a user\'s employer in order to confirm that they are supported. Users with non-supported employers can then be routed out of the Deposit Switch flow.  The data in the employer database is currently limited. As the Deposit Switch and Income products progress through their respective beta periods, more employers are being regularly added. Because the employer database is frequently updated, we recommend that you do not cache or store data from this endpoint for more than a day.
     * @summary Search employer database
     * @param {EmployersSearchRequest} employersSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    employersSearch: (employersSearchRequest: EmployersSearchRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/employment/verification/get` returns a list of employments through a user payroll that was verified by an end user.  This endpoint has been deprecated; new integrations should use `/credit/employment/get` instead.
     * @summary (Deprecated) Retrieve a summary of an individual\'s employment information
     * @param {EmploymentVerificationGetRequest} employmentVerificationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    employmentVerificationGet: (employmentVerificationGetRequest: EmploymentVerificationGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * A generic webhook receiver endpoint for FDX Event Notifications
     * @summary Webhook receiver for fdx notifications
     * @param {FDXNotification} fDXNotification
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    fdxNotifications: (fDXNotification: FDXNotification, options?: any) => Promise<RequestArgs>;
    /**
     * Get a specific recipient
     * @summary Get Recipient
     * @param {string} recipientId Recipient Identifier. Uniquely identifies the recipient
     * @param {string} [oAUTHSTATEID] The value that is passed into the OAuth URI \&#39;state\&#39; query parameter.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRecipient: (recipientId: string, oAUTHSTATEID?: string | undefined, options?: any) => Promise<RequestArgs>;
    /**
     * Returns a list of Recipients
     * @summary Get Recipients
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRecipients: (options?: any) => Promise<RequestArgs>;
    /**
     * Use `/identity/documents/uploads/get` to retrieve identity details when using [Identity Document Upload](https://plaid.com/docs/identity/identity-document-upload/).
     * @summary Returns uploaded document identity
     * @param {IdentityDocumentsUploadsGetRequest} identityDocumentsUploadsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityDocumentsUploadsGet: (identityDocumentsUploadsGetRequest: IdentityDocumentsUploadsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/identity/get` endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses. Only name data is guaranteed to be returned; other fields will be empty arrays if not provided by the institution.  Note: In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29).
     * @summary Retrieve identity data
     * @param {IdentityGetRequest} identityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityGet: (identityGetRequest: IdentityGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/identity/match` endpoint generates a match score, which indicates how well the provided identity data matches the identity information on file with the account holder\'s financial institution.  Fields within the `balances` object will always be null when retrieved by `/identity/match`. Instead, use the free `/accounts/get` endpoint to request balance cached data, or `/accounts/balance/get` for real-time data.
     * @summary Retrieve identity match score
     * @param {IdentityMatchRequest} identityMatchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityMatch: (identityMatchRequest: IdentityMatchRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/identity/refresh` is an optional endpoint for users of the Identity product. It initiates an on-demand extraction to fetch the most up to date Identity information from the Financial Institution. This on-demand extraction takes place in addition to the periodic extractions that automatically occur for any Identity-enabled Item. If changes to Identity are discovered after calling `/identity/refresh`, Plaid will fire a webhook [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/identity/#default_update).  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/identity/refresh` is offered as an add-on to Identity and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh identity data
     * @param {IdentityRefreshRequest} identityRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityRefresh: (identityRefreshRequest: IdentityRefreshRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Try to autofill an Identity Verification based of the provided phone number, date of birth and country of residence.
     * @summary Create autofill for an Identity Verification
     * @param {IdentityVerificationAutofillCreateRequest} identityVerificationAutofillCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationAutofillCreate: (identityVerificationAutofillCreateRequest: IdentityVerificationAutofillCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Create a new Identity Verification for the user specified by the `client_user_id` field. The requirements and behavior of the verification are determined by the `template_id` provided. If you don\'t know whether the associated user already has an active Identity Verification, you can specify `\"is_idempotent\": true` in the request body. With idempotency enabled, a new Identity Verification will only be created if one does not already exist for the associated `client_user_id` and `template_id`. If an Identity Verification is found, it will be returned unmodified with an `200 OK` HTTP status code.  You can also use this endpoint to supply information you already have collected about the user; if any of these fields are specified, the screens prompting the user to enter them will be skipped during the Link flow.
     * @summary Create a new Identity Verification
     * @param {IdentityVerificationCreateRequest} identityVerificationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationCreate: (identityVerificationCreateRequest: IdentityVerificationCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Retrieve a previously created Identity Verification.
     * @summary Retrieve Identity Verification
     * @param {IdentityVerificationGetRequest} identityVerificationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationGet: (identityVerificationGetRequest: IdentityVerificationGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Filter and list Identity Verifications created by your account
     * @summary List Identity Verifications
     * @param {IdentityVerificationListRequest} identityVerificationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationList: (identityVerificationListRequest: IdentityVerificationListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Allow a customer to retry their Identity Verification
     * @summary Retry an Identity Verification
     * @param {IdentityVerificationRetryRequest} identityVerificationRetryRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationRetry: (identityVerificationRetryRequest: IdentityVerificationRetryRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/income/verification/create` begins the income verification process by returning an `income_verification_id`. You can then provide the `income_verification_id` to `/link/token/create` under the `income_verification` parameter in order to create a Link instance that will prompt the user to go through the income verification flow. Plaid will fire an `INCOME` webhook once the user completes the Payroll Income flow, or when the uploaded documents in the Document Income flow have finished processing.
     * @summary (Deprecated) Create an income verification instance
     * @param {IncomeVerificationCreateRequest} incomeVerificationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationCreate: (incomeVerificationCreateRequest: IncomeVerificationCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/income/verification/documents/download` provides the ability to download the source documents associated with the verification.  If Document Income was used, the documents will be those the user provided in Link. For Payroll Income, the most recent files available for download from the payroll provider will be available from this endpoint.  The response to `/income/verification/documents/download` is a ZIP file in binary data. If a `document_id` is passed, a single document will be contained in this file. If not, the response will contain all documents associated with the verification.  The `request_id` is returned in the `Plaid-Request-ID` header.
     * @summary (Deprecated) Download the original documents used for income verification
     * @param {IncomeVerificationDocumentsDownloadRequest} incomeVerificationDocumentsDownloadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationDocumentsDownload: (incomeVerificationDocumentsDownloadRequest: IncomeVerificationDocumentsDownloadRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/income/verification/paystubs/get` returns the information collected from the paystubs that were used to verify an end user\'s income. It can be called once the status of the verification has been set to `VERIFICATION_STATUS_PROCESSING_COMPLETE`, as reported by the `INCOME: verification_status` webhook. Attempting to call the endpoint before verification has been completed will result in an error.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.
     * @summary (Deprecated) Retrieve information from the paystubs used for income verification
     * @param {IncomeVerificationPaystubsGetRequest} incomeVerificationPaystubsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationPaystubsGet: (incomeVerificationPaystubsGetRequest: IncomeVerificationPaystubsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/income/verification/precheck` is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification and returns a `precheck_id` that can be provided to `/link/token/create`. If the user is eligible for digital verification, providing the `precheck_id` in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the `precheck_id` can still be provided to `/link/token/create` and the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.  While all request fields are optional, providing either `employer` or `transactions_access_tokens` data will increase the chance of receiving a useful result.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/precheck` instead.
     * @summary (Deprecated) Check digital income verification eligibility and optimize conversion
     * @param {IncomeVerificationPrecheckRequest} incomeVerificationPrecheckRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationPrecheck: (incomeVerificationPrecheckRequest: IncomeVerificationPrecheckRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/income/verification/taxforms/get` returns the information collected from forms that were used to verify an end user\'\'s income. It can be called once the status of the verification has been set to `VERIFICATION_STATUS_PROCESSING_COMPLETE`, as reported by the `INCOME: verification_status` webhook. Attempting to call the endpoint before verification has been completed will result in an error.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.
     * @summary (Deprecated) Retrieve information from the tax documents used for income verification
     * @param {IncomeVerificationTaxformsGetRequest} incomeVerificationTaxformsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationTaxformsGet: (incomeVerificationTaxformsGetRequest: IncomeVerificationTaxformsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Returns a JSON response containing details on all financial institutions currently supported by Plaid. Because Plaid supports thousands of institutions, results are paginated.  If there is no overlap between an institution’s enabled products and a client’s enabled products, then the institution will be filtered out from the response. As a result, the number of institutions returned may not match the count specified in the call.
     * @summary Get details of all supported institutions
     * @param {InstitutionsGetRequest} institutionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    institutionsGet: (institutionsGetRequest: InstitutionsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Returns a JSON response containing details on a specified financial institution currently supported by Plaid.  Versioning note: API versions 2019-05-29 and earlier allow use of the `public_key` parameter instead of the `client_id` and `secret` to authenticate to this endpoint. The `public_key` has been deprecated; all customers are encouraged to use `client_id` and `secret` instead.
     * @summary Get details of an institution
     * @param {InstitutionsGetByIdRequest} institutionsGetByIdRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    institutionsGetById: (institutionsGetByIdRequest: InstitutionsGetByIdRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Returns a JSON response containing details for institutions that match the query parameters, up to a maximum of ten institutions per query.  Versioning note: API versions 2019-05-29 and earlier allow use of the `public_key` parameter instead of the `client_id` and `secret` parameters to authenticate to this endpoint. The `public_key` parameter has since been deprecated; all customers are encouraged to use `client_id` and `secret` instead.
     * @summary Search institutions
     * @param {InstitutionsSearchRequest} institutionsSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    institutionsSearch: (institutionsSearchRequest: InstitutionsSearchRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/investments/auth/get` endpoint allows developers to receive user-authorized data to facilitate the transfer of holdings
     * @summary Get data needed to authorize an investments transfer
     * @param {InvestmentsAuthGetRequest} investmentsAuthGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsAuthGet: (investmentsAuthGetRequest: InvestmentsAuthGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/investments/holdings/get` endpoint allows developers to receive user-authorized stock position data for `investment`-type accounts.
     * @summary Get Investment holdings
     * @param {InvestmentsHoldingsGetRequest} investmentsHoldingsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsHoldingsGet: (investmentsHoldingsGetRequest: InvestmentsHoldingsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/investments/refresh` is an optional endpoint for users of the Investments product. It initiates an on-demand extraction to fetch the newest investment holdings and transactions for an Item. This on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Investments-enabled Item. If changes to investments are discovered after calling `/investments/refresh`, Plaid will fire webhooks: [`HOLDINGS: DEFAULT_UPDATE`](https://plaid.com/docs/api/products/investments/#holdings-default_update) if any new holdings are detected, and [`INVESTMENTS_TRANSACTIONS: DEFAULT_UPDATE`](https://plaid.com/docs/api/products/investments/#investments_transactions-default_update) if any new investment transactions are detected. This webhook will typically not fire in the Sandbox environment, due to the lack of dynamic investment transactions and holdings data. To test this webhook in Sandbox, call `/sandbox/item/fire_webhook`. Updated holdings and investment transactions can be fetched by calling `/investments/holdings/get` and `/investments/transactions/get`. Note that the `/investments/refresh` endpoint is not supported by all institutions. If called on an Item from an institution that does not support this functionality, it will return a `PRODUCT_NOT_SUPPORTED` error.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/investments/refresh` is offered as an add-on to Investments and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh investment data
     * @param {InvestmentsRefreshRequest} investmentsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsRefresh: (investmentsRefreshRequest: InvestmentsRefreshRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/investments/transactions/get` endpoint allows developers to retrieve up to 24 months of user-authorized transaction data for investment accounts.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Due to the potentially large number of investment transactions associated with an Item, results are paginated. Manipulate the count and offset parameters in conjunction with the `total_investment_transactions` response body field to fetch all available investment transactions.  Note that Investments does not have a webhook to indicate when initial transaction data has loaded (unless you use the `async_update` option). Instead, if transactions data is not ready when `/investments/transactions/get` is first called, Plaid will wait for the data. For this reason, calling `/investments/transactions/get` immediately after Link may take up to one to two minutes to return.  Data returned by the asynchronous investments extraction flow (when `async_update` is set to true) may not be immediately available to `/investments/transactions/get`. To be alerted when the data is ready to be fetched, listen for the `HISTORICAL_UPDATE` webhook. If no investments history is ready when `/investments/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.
     * @summary Get investment transactions
     * @param {InvestmentsTransactionsGetRequest} investmentsTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsTransactionsGet: (investmentsTransactionsGetRequest: InvestmentsTransactionsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Retrieve detailed information about a specific `Issue`. This endpoint returns a single `Issue` object.
     * @summary Get an Issue
     * @param {IssuesGetRequest} issuesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    issuesGet: (issuesGetRequest: IssuesGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Search for an issue associated with one of the following identifiers:  `item_id`, `link_session_id` or Link session `request_id`.  This endpoint returns a list of `Issue` objects, with an empty list indicating that no issues are associated with the provided identifier. At least one of the identifiers must be provided to perform the search.
     * @summary Search for an Issue
     * @param {IssuesSearchRequest} issuesSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    issuesSearch: (issuesSearchRequest: IssuesSearchRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Allows a user to subscribe to updates on a specific `Issue` using a POST method. Subscribers will receive webhook notifications when the issue status changes, particularly when resolved.
     * @summary Subscribe to an Issue
     * @param {IssuesSubscribeRequest} issuesSubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    issuesSubscribe: (issuesSubscribeRequest: IssuesSubscribeRequest, options?: any) => Promise<RequestArgs>;
    /**
     * By default, the `access_token` associated with an Item does not expire and should be stored in a persistent, secure manner.  You can use the `/item/access_token/invalidate` endpoint to rotate the `access_token` associated with an Item. The endpoint returns a new `access_token` and immediately invalidates the previous `access_token`.
     * @summary Invalidate access_token
     * @param {ItemAccessTokenInvalidateRequest} itemAccessTokenInvalidateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemAccessTokenInvalidate: (itemAccessTokenInvalidateRequest: ItemAccessTokenInvalidateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List a historical log of user consent events
     * @summary List a historical log of user consent events
     * @param {ItemActivityListRequest} itemActivityListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemActivityList: (itemActivityListRequest: ItemActivityListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List a user’s connected applications
     * @summary List a user’s connected applications
     * @param {ItemApplicationListRequest} itemApplicationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemApplicationList: (itemApplicationListRequest: ItemApplicationListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Enable consumers to update product access on selected accounts for an application.
     * @summary Update the scopes of access for a particular application
     * @param {ItemApplicationScopesUpdateRequest} itemApplicationScopesUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemApplicationScopesUpdate: (itemApplicationScopesUpdateRequest: ItemApplicationScopesUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Unlink a user’s connected application. On an unlink request, Plaid will immediately revoke the Application’s access to the User’s data.  The User will have to redo the OAuth authentication process in order to restore functionality.  This endpoint only removes ongoing data access permissions, therefore the User will need to reach out to the Application itself in order to disable and delete their account and delete any data that the Application already received (if the Application does not do so by default).  This endpoint should be called in real time as the User is unlinking an Application, and should not be batched in order to ensure that the change is reflected as soon as possible.
     * @summary Unlink a user’s connected application
     * @param {ItemApplicationUnlinkRequest} itemApplicationUnlinkRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemApplicationUnlink: (itemApplicationUnlinkRequest: ItemApplicationUnlinkRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Note: As of July 2020, the `/item/public_token/create` endpoint is deprecated. Instead, use `/link/token/create` with an `access_token` to create a Link token for use with [update mode](https://plaid.com/docs/link/update-mode).  If you need your user to take action to restore or resolve an error associated with an Item, generate a public token with the `/item/public_token/create` endpoint and then initialize Link with that `public_token`.  A `public_token` is one-time use and expires after 30 minutes. You use a `public_token` to initialize Link in [update mode](https://plaid.com/docs/link/update-mode) for a particular Item. You can generate a `public_token` for an Item even if you did not use Link to create the Item originally.  The `/item/public_token/create` endpoint is **not** used to create your initial `public_token`. If you have not already received an `access_token` for a specific Item, use Link to obtain your `public_token` instead. See the [Quickstart](https://plaid.com/docs/quickstart) for more information.
     * @summary Create public token
     * @param {ItemPublicTokenCreateRequest} itemPublicTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemCreatePublicToken: (itemPublicTokenCreateRequest: ItemPublicTokenCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Returns information about the status of an Item.
     * @summary Retrieve an Item
     * @param {ItemGetRequest} itemGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemGet: (itemGetRequest: ItemGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/item/import` creates an Item via your Plaid Exchange Integration and returns an `access_token`. As part of an `/item/import` request, you will include a User ID (`user_auth.user_id`) and Authentication Token (`user_auth.auth_token`) that enable data aggregation through your Plaid Exchange API endpoints. These authentication principals are to be chosen by you.  Upon creating an Item via `/item/import`, Plaid will automatically begin an extraction of that Item through the Plaid Exchange infrastructure you have already integrated.
     * @summary Import Item
     * @param {ItemImportRequest} itemImportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemImport: (itemImportRequest: ItemImportRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Exchange a Link `public_token` for an API `access_token`. Link hands off the `public_token` client-side via the `onSuccess` callback once a user has successfully created an Item. The `public_token` is ephemeral and expires after 30 minutes. An `access_token` does not expire, but can be revoked by calling `/item/remove`.  The response also includes an `item_id` that should be stored with the `access_token`. The `item_id` is used to identify an Item in a webhook. The `item_id` can also be retrieved by making an `/item/get` request.
     * @summary Exchange public token for an access token
     * @param {ItemPublicTokenExchangeRequest} itemPublicTokenExchangeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemPublicTokenExchange: (itemPublicTokenExchangeRequest: ItemPublicTokenExchangeRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/item/remove` endpoint allows you to remove an Item. Once removed, the `access_token`, as well as any processor tokens or bank account tokens associated with the Item, is no longer valid and cannot be used to access any data that was associated with the Item.   Calling `/item/remove` is a recommended best practice when offboarding users or if a user chooses to disconnect an account linked via Plaid. For subscription products, such as Transactions, Liabilities, and Investments, calling `/item/remove` is required to end subscription billing for the Item. For money movement products such as Auth and Transfer, if the Item is at an institution that uses Tokenized Account Numbers (TANs), such as Chase or PNC, calling `/item/remove` will invalidate the TAN, and subsequent ACH transfer attempts using that TAN will be returned.  In Limited Production, calling `/item/remove` does not impact the number of remaining Limited Production Items you have available.  Removing an Item does not affect any Asset Reports or Audit Copies you have already created, which will remain accessible until you remove access to them specifically using the `/asset_report/remove` endpoint.  Also note that for certain OAuth-based institutions, an Item removed via `/item/remove` may still show as an active connection in the institution\'s OAuth permission manager.  API versions 2019-05-29 and earlier return a `removed` boolean as part of the response.
     * @summary Remove an Item
     * @param {ItemRemoveRequest} itemRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemRemove: (itemRemoveRequest: ItemRemoveRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The POST `/item/webhook/update` allows you to update the webhook URL associated with an Item. This request triggers a [`WEBHOOK_UPDATE_ACKNOWLEDGED`](https://plaid.com/docs/api/items/#webhook_update_acknowledged) webhook to the newly specified webhook URL.
     * @summary Update Webhook URL
     * @param {ItemWebhookUpdateRequest} itemWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemWebhookUpdate: (itemWebhookUpdateRequest: ItemWebhookUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/liabilities/get` endpoint returns various details about an Item with loan or credit accounts. Liabilities data is available primarily for US financial institutions, with some limited coverage of Canadian institutions. Currently supported account types are account type `credit` with account subtype `credit card` or `paypal`, and account type `loan` with account subtype `student` or `mortgage`. To limit accounts listed in Link to types and subtypes supported by Liabilities, you can use the `account_filters` parameter when [creating a Link token](https://plaid.com/docs/api/link/#linktokencreate).  The types of information returned by Liabilities can include balances and due dates, loan terms, and account details such as original loan amount and guarantor. Data is refreshed approximately once per day; the latest data can be retrieved by calling `/liabilities/get`.
     * @summary Retrieve Liabilities data
     * @param {LiabilitiesGetRequest} liabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    liabilitiesGet: (liabilitiesGetRequest: LiabilitiesGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/link_delivery/create` endpoint to create a Hosted Link session.
     * @summary Create Hosted Link session
     * @param {LinkDeliveryCreateRequest} linkDeliveryCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkDeliveryCreate: (linkDeliveryCreateRequest: LinkDeliveryCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/link_delivery/get` endpoint to get the status of a Hosted Link session.
     * @summary Get Hosted Link session
     * @param {LinkDeliveryGetRequest} linkDeliveryGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkDeliveryGet: (linkDeliveryGetRequest: LinkDeliveryGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Exchange an OAuth `link_correlation_id` for the corresponding `link_token`. The `link_correlation_id` is only available for \'payment_initiation\' products and is provided to the client via the OAuth `redirect_uri` as a query parameter. The `link_correlation_id` is ephemeral and expires in a brief period, after which it can no longer be exchanged for the \'link_token\'.
     * @summary Exchange the Link Correlation Id for a Link Token
     * @param {LinkOAuthCorrelationIdExchangeRequest} linkOAuthCorrelationIdExchangeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkOauthCorrelationIdExchange: (linkOAuthCorrelationIdExchangeRequest: LinkOAuthCorrelationIdExchangeRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/link/token/create` endpoint creates a `link_token`, which is required as a parameter when initializing Link. Once Link has been initialized, it returns a `public_token`. For most Plaid products, the `public_token` is saved and exchanged for an `access_token` via `/item/public_token/exchange` as part of the main Link flow. For more details, see the [Link flow overview](https://plaid.com/docs/link/#link-flow-overview).  A `link_token` generated by `/link/token/create` is also used to initialize other Link flows, such as the [update mode](https://plaid.com/docs/link/update-mode) flow for tokens with expired credentials, or the Identity Verification flow.
     * @summary Create Link Token
     * @param {LinkTokenCreateRequest} linkTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkTokenCreate: (linkTokenCreateRequest: LinkTokenCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/link/token/get` endpoint gets information about a Link session, including all callbacks fired during the session along with their metadata, including the public token. This endpoint is used with Link flows that don\'t provide a public token via frontend callbacks, such as the [Hosted Link flow](https://plaid.com/docs/link/hosted-link/) and the [Multi-Item Link flow](https://plaid.com/docs/link/multi-item-link/). It also can be useful for debugging purposes.
     * @summary Get Link Token
     * @param {LinkTokenGetRequest} linkTokenGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkTokenGet: (linkTokenGetRequest: LinkTokenGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint allows you to retrieve the Network Insights from a list of `access_tokens`.
     * @summary Retrieve network insights for the provided `access_tokens`
     * @param {NetworkInsightsReportGetRequest} networkInsightsReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    networkInsightsReportGet: (networkInsightsReportGetRequest: NetworkInsightsReportGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/network/status/get` endpoint can be used to check whether Plaid has a matching profile for the user. This is useful for determining if a user is eligible for a streamlined experience, such as Layer.  Note: it is strongly recommended to check for Layer eligibility in the frontend. `/network/status/get` should only be used for checking Layer eligibility if a frontend check is not possible for your use case. For instructions on performing a frontend eligibility check, see the [Layer documentation](https://plaid.com/docs/layer/#integration-overview).
     * @summary Check a user\'s Plaid Network status
     * @param {NetworkStatusGetRequest} networkStatusGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    networkStatusGet: (networkStatusGetRequest: NetworkStatusGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/partner/customer/create` endpoint is used by reseller partners to create end customers. To create end customers, it should be called in the Production environment only, even when creating Sandbox API keys. If called in the Sandbox environment, it will return a sample response, but no customer will be created and the API keys will not be valid.
     * @summary Creates a new end customer for a Plaid reseller.
     * @param {PartnerCustomerCreateRequest} partnerCustomerCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerCreate: (partnerCustomerCreateRequest: PartnerCustomerCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/partner/customer/enable` endpoint is used by reseller partners to enable an end customer in the full Production environment.
     * @summary Enables a Plaid reseller\'s end customer in the Production environment.
     * @param {PartnerCustomerEnableRequest} partnerCustomerEnableRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerEnable: (partnerCustomerEnableRequest: PartnerCustomerEnableRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/partner/customer/get` endpoint is used by reseller partners to retrieve data about a single end customer.
     * @summary Returns a Plaid reseller\'s end customer.
     * @param {PartnerCustomerGetRequest} partnerCustomerGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerGet: (partnerCustomerGetRequest: PartnerCustomerGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/partner/customer/oauth_institutions/get` endpoint is used by reseller partners to retrieve OAuth-institution registration information about a single end customer. To learn how to set up a webhook to listen to status update events, visit the [reseller documentation](https://plaid.com/docs/account/resellers/#enabling-end-customers).
     * @summary Returns OAuth-institution registration information for a given end customer.
     * @param {PartnerCustomerOAuthInstitutionsGetRequest} partnerCustomerOAuthInstitutionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerOauthInstitutionsGet: (partnerCustomerOAuthInstitutionsGetRequest: PartnerCustomerOAuthInstitutionsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/partner/customer/remove` endpoint is used by reseller partners to remove an end customer. Removing an end customer will remove it from view in the Plaid Dashboard and deactivate its API keys. This endpoint can only be used to remove an end customer that has not yet been enabled in full Production.
     * @summary Removes a Plaid reseller\'s end customer.
     * @param {PartnerCustomerRemoveRequest} partnerCustomerRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerRemove: (partnerCustomerRemoveRequest: PartnerCustomerRemoveRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/payment_initiation/consent/create` endpoint is used to create a payment consent, which can be used to initiate payments on behalf of the user. Payment consents are created with `UNAUTHORISED` status by default and must be authorised by the user before payments can be initiated.  Consents can be limited in time and scope, and have constraints that describe limitations for payments.
     * @summary Create payment consent
     * @param {PaymentInitiationConsentCreateRequest} paymentInitiationConsentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentCreate: (paymentInitiationConsentCreateRequest: PaymentInitiationConsentCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/payment_initiation/consent/get` endpoint can be used to check the status of a payment consent, as well as to receive basic information such as recipient and constraints.
     * @summary Get payment consent
     * @param {PaymentInitiationConsentGetRequest} paymentInitiationConsentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentGet: (paymentInitiationConsentGetRequest: PaymentInitiationConsentGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/payment_initiation/consent/payment/execute` endpoint can be used to execute payments using payment consent.
     * @summary Execute a single payment using consent
     * @param {PaymentInitiationConsentPaymentExecuteRequest} paymentInitiationConsentPaymentExecuteRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentPaymentExecute: (paymentInitiationConsentPaymentExecuteRequest: PaymentInitiationConsentPaymentExecuteRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/payment_initiation/consent/revoke` endpoint can be used to revoke the payment consent. Once the consent is revoked, it is not possible to initiate payments using it.
     * @summary Revoke payment consent
     * @param {PaymentInitiationConsentRevokeRequest} paymentInitiationConsentRevokeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentRevoke: (paymentInitiationConsentRevokeRequest: PaymentInitiationConsentRevokeRequest, options?: any) => Promise<RequestArgs>;
    /**
     * After creating a payment recipient, you can use the `/payment_initiation/payment/create` endpoint to create a payment to that recipient.  Payments can be one-time or standing order (recurring) and can be denominated in either EUR, GBP or other chosen [currency](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-create-request-amount-currency).  If making domestic GBP-denominated payments, your recipient must have been created with BACS numbers. In general, EUR-denominated payments will be sent via SEPA Credit Transfer, GBP-denominated payments will be sent via the Faster Payments network and for non-Eurozone markets typically via the local payment scheme, but the payment network used will be determined by the institution. Payments sent via Faster Payments will typically arrive immediately, while payments sent via SEPA Credit Transfer or other local payment schemes will typically arrive in one business day.  Standing orders (recurring payments) must be denominated in GBP and can only be sent to recipients in the UK. Once created, standing order payments cannot be modified or canceled via the API. An end user can cancel or modify a standing order directly on their banking application or website, or by contacting the bank. Standing orders will follow the payment rules of the underlying rails (Faster Payments in UK). Payments can be sent Monday to Friday, excluding bank holidays. If the pre-arranged date falls on a weekend or bank holiday, the payment is made on the next working day. It is not possible to guarantee the exact time the payment will reach the recipient’s account, although at least 90% of standing order payments are sent by 6am.  In Limited Production, payments must be below 5 GBP or other chosen [currency](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-create-request-amount-currency), and standing orders, variable recurring payments, and Virtual Accounts are not supported.
     * @summary Create a payment
     * @param {PaymentInitiationPaymentCreateRequest} paymentInitiationPaymentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentCreate: (paymentInitiationPaymentCreateRequest: PaymentInitiationPaymentCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/payment_initiation/payment/get` endpoint can be used to check the status of a payment, as well as to receive basic information such as recipient and payment amount. In the case of standing orders, the `/payment_initiation/payment/get` endpoint will provide information about the status of the overall standing order itself; the API cannot be used to retrieve payment status for individual payments within a standing order.
     * @summary Get payment details
     * @param {PaymentInitiationPaymentGetRequest} paymentInitiationPaymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentGet: (paymentInitiationPaymentGetRequest: PaymentInitiationPaymentGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/payment_initiation/payment/list` endpoint can be used to retrieve all created payments. By default, the 10 most recent payments are returned. You can request more payments and paginate through the results using the optional `count` and `cursor` parameters.
     * @summary List payments
     * @param {PaymentInitiationPaymentListRequest} paymentInitiationPaymentListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentList: (paymentInitiationPaymentListRequest: PaymentInitiationPaymentListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Reverse a settled payment from a Plaid virtual account.  The original payment must be in a settled state to be refunded. To refund partially, specify the amount as part of the request. If the amount is not specified, the refund amount will be equal to all of the remaining payment amount that has not been refunded yet.  The refund will go back to the source account that initiated the payment. The original payment must have been initiated to a Plaid virtual account so that this account can be used to initiate the refund.  Providing counterparty information such as date of birth and address increases  the likelihood of refund being successful without human intervention.
     * @summary Reverse an existing payment
     * @param {PaymentInitiationPaymentReverseRequest} paymentInitiationPaymentReverseRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentReverse: (paymentInitiationPaymentReverseRequest: PaymentInitiationPaymentReverseRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Create a payment recipient for payment initiation.  The recipient must be in Europe, within a country that is a member of the Single Euro Payment Area (SEPA) or a non-Eurozone country [supported](https://plaid.com/global) by Plaid. For a standing order (recurring) payment, the recipient must be in the UK.  It is recommended to use `bacs` in the UK and `iban` in EU.  The endpoint is idempotent: if a developer has already made a request with the same payment details, Plaid will return the same `recipient_id`.
     * @summary Create payment recipient
     * @param {PaymentInitiationRecipientCreateRequest} paymentInitiationRecipientCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationRecipientCreate: (paymentInitiationRecipientCreateRequest: PaymentInitiationRecipientCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Get details about a payment recipient you have previously created.
     * @summary Get payment recipient
     * @param {PaymentInitiationRecipientGetRequest} paymentInitiationRecipientGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationRecipientGet: (paymentInitiationRecipientGetRequest: PaymentInitiationRecipientGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/payment_initiation/recipient/list` endpoint list the payment recipients that you have previously created.
     * @summary List payment recipients
     * @param {PaymentInitiationRecipientListRequest} paymentInitiationRecipientListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationRecipientList: (paymentInitiationRecipientListRequest: PaymentInitiationRecipientListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use `/payment_profile/create` endpoint to create a new payment profile. To initiate the account linking experience, call `/link/token/create` and provide the `payment_profile_token` in the `transfer.payment_profile_token` field. You can then use the `payment_profile_token` when creating transfers using `/transfer/authorization/create` and `/transfer/create`.
     * @summary Create payment profile
     * @param {PaymentProfileCreateRequest} paymentProfileCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentProfileCreate: (paymentProfileCreateRequest: PaymentProfileCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use `/payment_profile/get` endpoint to get the status of a given Payment Profile.
     * @summary Get payment profile
     * @param {PaymentProfileGetRequest} paymentProfileGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentProfileGet: (paymentProfileGetRequest: PaymentProfileGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/payment_profile/remove` endpoint to remove a given Payment Profile. Once it’s removed, it can no longer be used to create transfers.
     * @summary Remove payment profile
     * @param {PaymentProfileRemoveRequest} paymentProfileRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentProfileRemove: (paymentProfileRemoveRequest: PaymentProfileRemoveRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint returns the account associated with a given processor token.  This endpoint retrieves cached information, rather than extracting fresh information from the institution. As a result, the account balance returned may not be up-to-date; for realtime balance information, use `/processor/balance/get` instead. Note that some information is nullable.
     * @summary Retrieve the account associated with a processor token
     * @param {ProcessorAccountGetRequest} processorAccountGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorAccountGet: (processorAccountGetRequest: ProcessorAccountGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Used to create a token suitable for sending to Apex to enable Plaid-Apex integrations.
     * @summary Create Apex bank account token
     * @param {ProcessorApexProcessorTokenCreateRequest} processorApexProcessorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorApexProcessorTokenCreate: (processorApexProcessorTokenCreateRequest: ProcessorApexProcessorTokenCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/processor/auth/get` endpoint returns the bank account and bank identification number (such as the routing number, for US accounts), for a checking, savings, or cash management account that\'\'s associated with a given `processor_token`. The endpoint also returns high-level account data and balances when available.  Versioning note: API versions 2019-05-29 and earlier use a different schema for the `numbers` object returned by this endpoint. For details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2020-09-14).
     * @summary Retrieve Auth data
     * @param {ProcessorAuthGetRequest} processorAuthGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorAuthGet: (processorAuthGetRequest: ProcessorAuthGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/processor/balance/get` endpoint returns the real-time balance for each of an Item\'s accounts. While other endpoints may return a balance object, only `/processor/balance/get` forces the available and current balance fields to be refreshed rather than cached.
     * @summary Retrieve Balance data
     * @param {ProcessorBalanceGetRequest} processorBalanceGetRequest The &#x60;/processor/balance/get&#x60; endpoint returns the real-time balance for the account associated with a given &#x60;processor_token&#x60;.  The current balance is the total amount of funds in the account. The available balance is the current balance less any outstanding holds or debits that have not yet posted to the account.  Note that not all institutions calculate the available balance. In the event that available balance is unavailable from the institution, Plaid will return an available balance value of &#x60;null&#x60;.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorBalanceGet: (processorBalanceGetRequest: ProcessorBalanceGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/processor/bank_transfer/create` endpoint to initiate a new bank transfer as a processor
     * @summary Create a bank transfer as a processor
     * @param {ProcessorBankTransferCreateRequest} processorBankTransferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorBankTransferCreate: (processorBankTransferCreateRequest: ProcessorBankTransferCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/processor/identity/get` endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses.
     * @summary Retrieve Identity data
     * @param {ProcessorIdentityGetRequest} processorIdentityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorIdentityGet: (processorIdentityGetRequest: ProcessorIdentityGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/processor/identity/match` endpoint generates a match score, which indicates how well the provided identity data matches the identity information on file with the account holder\'s financial institution.  Fields within the `balances` object will always be null when retrieved by `/identity/match`. Instead, use the free `/accounts/get` endpoint to request balance cached data, or `/accounts/balance/get` for real-time data.
     * @summary Retrieve identity match score
     * @param {ProcessorIdentityMatchRequest} processorIdentityMatchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorIdentityMatch: (processorIdentityMatchRequest: ProcessorIdentityMatchRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint returns the stock position data of the account associated with a given processor token.
     * @summary Retrieve Investment Holdings
     * @param {ProcessorInvestmentsHoldingsGetRequest} processorInvestmentsHoldingsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorInvestmentsHoldingsGet: (processorInvestmentsHoldingsGetRequest: ProcessorInvestmentsHoldingsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/processor/investments/transactions/get` endpoint allows developers to retrieve up to 24 months of user-authorized transaction data for the investment account associated with the processor token.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Due to the potentially large number of investment transactions associated with the account, results are paginated. Manipulate the count and offset parameters in conjunction with the `total_investment_transactions` response body field to fetch all available investment transactions.  Note that Investments does not have a webhook to indicate when initial transaction data has loaded (unless you use the `async_update` option). Instead, if transactions data is not ready when `/processor/investments/transactions/get` is first called, Plaid will wait for the data. For this reason, calling `/processor/investments/transactions/get` immediately after Link may take up to one to two minutes to return.  Data returned by the asynchronous investments extraction flow (when `async_update` is set to true) may not be immediately available to `/processor/investments/transactions/get`. To be alerted when the data is ready to be fetched, listen for the `HISTORICAL_UPDATE` webhook. If no investments history is ready when `/processor/investments/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.  To receive Investments Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get investment transactions data
     * @param {ProcessorInvestmentsTransactionsGetRequest} processorInvestmentsTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorInvestmentsTransactionsGet: (processorInvestmentsTransactionsGetRequest: ProcessorInvestmentsTransactionsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/processor/liabilities/get` endpoint returns various details about a loan or credit account. Liabilities data is available primarily for US financial institutions, with some limited coverage of Canadian institutions. Currently supported account types are account type `credit` with account subtype `credit card` or `paypal`, and account type `loan` with account subtype `student` or `mortgage`.  The types of information returned by Liabilities can include balances and due dates, loan terms, and account details such as original loan amount and guarantor. Data is refreshed approximately once per day; the latest data can be retrieved by calling `/processor/liabilities/get`.  Note: This request may take some time to complete if `liabilities` was not specified as an initial product when creating the processor token. This is because Plaid must communicate directly with the institution to retrieve the additional data.
     * @summary Retrieve Liabilities data
     * @param {ProcessorLiabilitiesGetRequest} processorLiabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorLiabilitiesGet: (processorLiabilitiesGetRequest: ProcessorLiabilitiesGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * After calling `/processor/signal/evaluate`, call `/processor/signal/decision/report` to report whether the transaction was initiated.  If you are using the [Plaid Transfer product](https://www.plaid.com/docs/transfer) to create transfers, it is not necessary to use this endpoint, as Plaid already knows whether the transfer was initiated.
     * @summary Report whether you initiated an ACH transaction
     * @param {ProcessorSignalDecisionReportRequest} processorSignalDecisionReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalDecisionReport: (processorSignalDecisionReportRequest: ProcessorSignalDecisionReportRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use `/processor/signal/evaluate` to evaluate a planned ACH transaction as a processor to get a return risk assessment (such as a risk score and risk tier) and additional risk signals.  In order to obtain a valid score for an ACH transaction, Plaid must have an access token for the account, and the Item must be healthy (receiving product updates) or have recently been in a healthy state. If the transaction does not meet eligibility requirements, an error will be returned corresponding to the underlying cause. If `/processor/signal/evaluate` is called on the same transaction multiple times within a 24-hour period, cached results may be returned. For more information please refer to our error documentation on [item errors](/docs/errors/item/) and [Link in Update Mode](/docs/link/update-mode/).  Note: This request may take some time to complete if Signal is being added to an existing Item. This is because Plaid must communicate directly with the institution when retrieving the data for the first time. To reduce this latency, you can call `/signal/prepare` on the Item before you need to request Signal data.
     * @summary Evaluate a planned ACH transaction
     * @param {ProcessorSignalEvaluateRequest} processorSignalEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalEvaluate: (processorSignalEvaluateRequest: ProcessorSignalEvaluateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * When a processor token is not initialized with Signal, call `/processor/signal/prepare` to opt-in that processor token to the Signal data collection process, which will improve the accuracy of the Signal score.  If this endpoint is called with a processor token that is already initialized with Signal, it will return a 200 response and will not modify the processor token.
     * @summary Opt-in a processor token to Signal
     * @param {ProcessorSignalPrepareRequest} processorSignalPrepareRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalPrepare: (processorSignalPrepareRequest: ProcessorSignalPrepareRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Call the `/processor/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/processor/signal/evaluate` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio.  If you are using the [Plaid Transfer product](https://www.plaid.com/docs/transfer) to create transfers, it is not necessary to use this endpoint, as Plaid already knows whether the transfer was returned.
     * @summary Report a return for an ACH transaction
     * @param {ProcessorSignalReturnReportRequest} processorSignalReturnReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalReturnReport: (processorSignalReturnReportRequest: ProcessorSignalReturnReportRequest, options?: any) => Promise<RequestArgs>;
    /**
     *  Used to create a token suitable for sending to Stripe to enable Plaid-Stripe integrations. For a detailed guide on integrating Stripe, see [Add Stripe to your app](https://plaid.com/docs/auth/partnerships/stripe/).  Note that the Stripe bank account token is a one-time use token. To store bank account information for later use, you can use a Stripe customer object and create an associated bank account from the token, or you can use a Stripe Custom account and create an associated external bank account from the token. This bank account information should work indefinitely, unless the user\'s bank account information changes or they revoke Plaid\'s permissions to access their account. Stripe bank account information cannot be modified once the bank account token has been created. If you ever need to change the bank account details used by Stripe for a specific customer, have the user go through Link again and create a new bank account token from the new `access_token`.  To revoke a bank account token, the entire underlying access token must be revoked using `/item/remove`.
     * @summary Create Stripe bank account token
     * @param {ProcessorStripeBankAccountTokenCreateRequest} processorStripeBankAccountTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorStripeBankAccountTokenCreate: (processorStripeBankAccountTokenCreateRequest: ProcessorStripeBankAccountTokenCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Used to create a token suitable for sending to one of Plaid\'s partners to enable integrations. Note that Stripe partnerships use bank account tokens instead; see `/processor/stripe/bank_account_token/create` for creating tokens for use with Stripe integrations. If using multiple processors, multiple different processor tokens can be created for a single access token. Once created, a processor token for a given Item cannot be modified or updated. To revoke the processor\'s access, the entire Item must be deleted by calling `/item/remove`.
     * @summary Create processor token
     * @param {ProcessorTokenCreateRequest} processorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenCreate: (processorTokenCreateRequest: ProcessorTokenCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Used to get a processor token\'s product permissions. The `products` field will be an empty list if the processor can access all available products.
     * @summary Get a processor token\'s product permissions
     * @param {ProcessorTokenPermissionsGetRequest} processorTokenPermissionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenPermissionsGet: (processorTokenPermissionsGetRequest: ProcessorTokenPermissionsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Used to control a processor\'s access to products on the given processor token. By default, a processor will have access to all available products on the corresponding item. To restrict access to a particular set of products, call this endpoint with the desired products. To restore access to all available products, call this endpoint with an empty list. This endpoint can be called multiple times as your needs and your processor\'s needs change.
     * @summary Control a processor\'s access to products
     * @param {ProcessorTokenPermissionsSetRequest} processorTokenPermissionsSetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenPermissionsSet: (processorTokenPermissionsSetRequest: ProcessorTokenPermissionsSetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint allows you, the processor, to update the webhook URL associated with a processor token. This request triggers a `WEBHOOK_UPDATE_ACKNOWLEDGED` webhook to the newly specified webhook URL.
     * @summary Update a processor token\'s webhook URL
     * @param {ProcessorTokenWebhookUpdateRequest} processorTokenWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenWebhookUpdate: (processorTokenWebhookUpdateRequest: ProcessorTokenWebhookUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/processor/transactions/get` endpoint allows developers to receive user-authorized transaction data for credit, depository, and some loan-type accounts (only those with account subtype `student`; coverage may be limited). Transaction data is standardized across financial institutions, and in many cases transactions are linked to a clean name, entity type, location, and category. Similarly, account data is standardized and returned with a clean name, number, balance, and other meta information where available.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Transactions are not immutable and can also be removed altogether by the institution; a removed transaction will no longer appear in `/processor/transactions/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).  Due to the potentially large number of transactions associated with a processor token, results are paginated. Manipulate the `count` and `offset` parameters in conjunction with the `total_transactions` response body field to fetch all available transactions.  Data returned by `/processor/transactions/get` will be the data available for the processor token as of the most recent successful check for new transactions. Plaid typically checks for new data multiple times a day, but these checks may occur less frequently, such as once a day, depending on the institution. To force Plaid to check for new transactions, you can use the `/processor/transactions/refresh` endpoint.  Note that data may not be immediately available to `/processor/transactions/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `transactions`, or upon the first call to `/processor/transactions/get`, if it wasn\'t. If no transaction history is ready when `/processor/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get transaction data
     * @param {ProcessorTransactionsGetRequest} processorTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsGet: (processorTransactionsGetRequest: ProcessorTransactionsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/processor/transactions/recurring/get` endpoint allows developers to receive a summary of the recurring outflow and inflow streams (expenses and deposits) from a user’s checking, savings or credit card accounts. Additionally, Plaid provides key insights about each recurring stream including the category, merchant, last amount, and more. Developers can use these insights to build tools and experiences that help their users better manage cash flow, monitor subscriptions, reduce spend, and stay on track with bill payments.  This endpoint is offered as an add-on to Transactions. To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.  This endpoint can only be called on a processor token that has already been initialized with Transactions (either during Link, by specifying it in `/link/token/create`; or after Link, by calling `/processor/transactions/get` or `/processor/transactions/sync`). Once all historical transactions have been fetched, call `/processor/transactions/recurring/get` to receive the Recurring Transactions streams and subscribe to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook. To know when historical transactions have been fetched, if you are using `/processor/transactions/sync` listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#SyncUpdatesAvailableWebhook-historical-update-complete) webhook and check that the `historical_update_complete` field in the payload is `true`. If using `/processor/transactions/get`, listen for the [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhook.  After the initial call, you can call `/processor/transactions/recurring/get` endpoint at any point in the future to retrieve the latest summary of recurring streams. Listen to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook to be notified when new updates are available.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Fetch recurring transaction streams
     * @param {ProcessorTransactionsRecurringGetRequest} processorTransactionsRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsRecurringGet: (processorTransactionsRecurringGetRequest: ProcessorTransactionsRecurringGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/processor/transactions/refresh` is an optional endpoint for users of the Transactions product. It initiates an on-demand extraction to fetch the newest transactions for a processor token. This on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Transactions-enabled processor token. If changes to transactions are discovered after calling `/processor/transactions/refresh`, Plaid will fire a webhook: for `/transactions/sync` users, [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) will be fired if there are any transactions updated, added, or removed. For users of both `/processor/transactions/sync` and `/processor/transactions/get`, [`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/products/transactions/#transactions_removed) will be fired if any removed transactions are detected, and [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/transactions/#default_update) will be fired if any new transactions are detected. New transactions can be fetched by calling `/processor/transactions/get` or `/processor/transactions/sync`. Note that the `/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) non-depository accounts and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item that contains only non-depository accounts from that institution.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/processor/transactions/refresh` is offered as an add-on to Transactions and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh transaction data
     * @param {ProcessorTransactionsRefreshRequest} processorTransactionsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsRefresh: (processorTransactionsRefreshRequest: ProcessorTransactionsRefreshRequest, options?: any) => Promise<RequestArgs>;
    /**
     *  The `/processor/transactions/sync` endpoint retrieves transactions associated with an Item and can fetch updates using a cursor to track which updates have already been seen.  For important instructions on integrating with `/processor/transactions/sync`, see the [Transactions integration overview](https://plaid.com/docs/transactions/#integration-overview). If you are migrating from an existing integration using `/processor/transactions/get`, see the [Transactions Sync migration guide](https://plaid.com/docs/transactions/sync-migration/).  This endpoint supports `credit`, `depository`, and some `loan`-type accounts (only those with account subtype `student`). For `investments` accounts, use `/investments/transactions/get` instead.  When retrieving paginated updates, track both the `next_cursor` from the latest response and the original cursor from the first call in which `has_more` was `true`; if a call to `/processor/transactions/sync` fails when retrieving a paginated update (e.g due to the [`TRANSACTIONS_SYNC_MUTATION_DURING_PAGINATION`](https://plaid.com/docs/errors/transactions/#transactions_sync_mutation_during_pagination) error), the entire pagination request loop must be restarted beginning with the cursor for the first page of the update, rather than retrying only the single request that failed.  If transactions data is not yet available for the Item, which can happen if the Item was not initialized with transactions during the `/link/token/create` call or if `/processor/transactions/sync` was called within a few seconds of Item creation, `/processor/transactions/sync` will return empty transactions arrays.   Plaid typically checks for new transactions data between one and four times per day, depending on the institution. To find out when transactions were last updated for an Item, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, use the `/processor/transactions/refresh` endpoint.  To be alerted when new transactions are available, listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) webhook.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get incremental transaction updates on a processor token
     * @param {ProcessorTransactionsSyncRequest} processorTransactionsSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsSync: (processorTransactionsSyncRequest: ProcessorTransactionsSyncRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/profile/network_status/get` endpoint can be used to check whether Plaid has a matching profile for the user.
     * @summary Check a user\'s Plaid Network status
     * @param {ProfileNetworkStatusGetRequest} profileNetworkStatusGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    profileNetworkStatusGet: (profileNetworkStatusGetRequest: ProfileNetworkStatusGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/bank_income/fire_webhook` endpoint to manually trigger a Bank Income webhook in the Sandbox environment.
     * @summary Manually fire a bank income webhook in sandbox
     * @param {SandboxBankIncomeFireWebhookRequest} sandboxBankIncomeFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxBankIncomeFireWebhook: (sandboxBankIncomeFireWebhookRequest: SandboxBankIncomeFireWebhookRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/bank_transfer/fire_webhook` endpoint to manually trigger a Bank Transfers webhook in the Sandbox environment.
     * @summary Manually fire a Bank Transfer webhook
     * @param {SandboxBankTransferFireWebhookRequest} sandboxBankTransferFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxBankTransferFireWebhook: (sandboxBankTransferFireWebhookRequest: SandboxBankTransferFireWebhookRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/bank_transfer/simulate` endpoint to simulate a bank transfer event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/bank_transfer/event/sync` or `/bank_transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a bank transfer event in Sandbox
     * @param {SandboxBankTransferSimulateRequest} sandboxBankTransferSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxBankTransferSimulate: (sandboxBankTransferSimulateRequest: SandboxBankTransferSimulateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/cra/cashflow_updates/update` endpoint to manually trigger an update for cashflow updates (Monitoring) in the Sandbox environment.
     * @summary Trigger an update for Cashflow Updates
     * @param {SandboxCraCashflowUpdatesUpdateRequest} sandboxCraCashflowUpdatesUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxCraCashflowUpdatesUpdate: (sandboxCraCashflowUpdatesUpdateRequest: SandboxCraCashflowUpdatesUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/income/fire_webhook` endpoint to manually trigger a Payroll or Document Income webhook in the Sandbox environment.
     * @summary Manually fire an Income webhook
     * @param {SandboxIncomeFireWebhookRequest} sandboxIncomeFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxIncomeFireWebhook: (sandboxIncomeFireWebhookRequest: SandboxIncomeFireWebhookRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/sandbox/item/fire_webhook` endpoint is used to test that code correctly handles webhooks. This endpoint can trigger the following webhooks:  `DEFAULT_UPDATE`: Webhook to be fired for a given Sandbox Item simulating a default update event for the respective product as specified with the `webhook_type` in the request body. Valid Sandbox `DEFAULT_UPDATE` webhook types include: `AUTH`, `IDENTITY`, `TRANSACTIONS`, `INVESTMENTS_TRANSACTIONS`, `LIABILITIES`, `HOLDINGS`. If the Item does not support the product, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `NEW_ACCOUNTS_AVAILABLE`: Fired to indicate that a new account is available on the Item and you can launch update mode to request access to it.  `SMS_MICRODEPOSITS_VERIFICATION`: Fired when a given same day micro-deposit item is verified via SMS verification.  `LOGIN_REPAIRED`: Fired when an Item recovers from the `ITEM_LOGIN_REQUIRED` without the user going through update mode in your app.  `PENDING_DISCONNECT`: Fired when an Item will stop working in the near future (e.g. due to a planned bank migration) and must be sent through update mode to continue working.   `RECURRING_TRANSACTIONS_UPDATE`: Recurring Transactions webhook to be fired for a given Sandbox Item. If the Item does not support Recurring Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `SYNC_UPDATES_AVAILABLE`: Transactions webhook to be fired for a given Sandbox Item.  If the Item does not support Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `PRODUCT_READY`: Assets webhook to be fired when a given asset report has been successfully generated. If the Item does not support Assets, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `ERROR`: Assets webhook to be fired when asset report generation has failed. If the Item does not support Assets, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `USER_PERMISSION_REVOKED`: Indicates an end user has revoked the permission that they previously granted to access an Item. May not always fire upon revocation, as some institutions’ consent portals do not trigger this webhook. Upon receiving this webhook, it is recommended to delete any stored data from Plaid associated with the account or Item.  `USER_ACCOUNT_REVOKED`: Fired when an end user has revoked access to their account on the Data Provider\'s portal. This webhook is currently sent only for Chase and PNC Items, but may be sent in the future for other financial institutions. Upon receiving this webhook, it is recommended to delete any stored data from Plaid associated with the account or Item.  Note that this endpoint is provided for developer ease-of-use and is not required for testing webhooks; webhooks will also fire in Sandbox under the same conditions that they would in Production (except for webhooks of type `TRANSFER`).
     * @summary Fire a test webhook
     * @param {SandboxItemFireWebhookRequest} sandboxItemFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxItemFireWebhook: (sandboxItemFireWebhookRequest: SandboxItemFireWebhookRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/sandbox/item/reset_login/` forces an Item into an `ITEM_LOGIN_REQUIRED` state in order to simulate an Item whose login is no longer valid. This makes it easy to test Link\'s [update mode](https://plaid.com/docs/link/update-mode) flow in the Sandbox environment.  After calling `/sandbox/item/reset_login`, You can then use Plaid Link update mode to restore the Item to a good state. An `ITEM_LOGIN_REQUIRED` webhook will also be fired after a call to this endpoint, if one is associated with the Item.   In the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error state automatically after 30 days, even if this endpoint is not called.
     * @summary Force a Sandbox Item into an error state
     * @param {SandboxItemResetLoginRequest} sandboxItemResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxItemResetLogin: (sandboxItemResetLoginRequest: SandboxItemResetLoginRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/sandbox/item/set_verification_status` endpoint can be used to change the verification status of an Item in in the Sandbox in order to simulate the Automated Micro-deposit flow.  For more information on testing Automated Micro-deposits in Sandbox, see [Auth full coverage testing](https://plaid.com/docs/auth/coverage/testing#).
     * @summary Set verification status for Sandbox account
     * @param {SandboxItemSetVerificationStatusRequest} sandboxItemSetVerificationStatusRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxItemSetVerificationStatus: (sandboxItemSetVerificationStatusRequest: SandboxItemSetVerificationStatusRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Save the selected accounts when connecting to the Platypus Oauth institution
     * @summary Save the selected accounts when connecting to the Platypus Oauth institution
     * @param {SandboxOauthSelectAccountsRequest} sandboxOauthSelectAccountsRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxOauthSelectAccounts: (sandboxOauthSelectAccountsRequest: SandboxOauthSelectAccountsRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/sandbox/payment_profile/reset_login/` forces a Payment Profile into a state where the login is no longer valid. This makes it easy to test update mode for Payment Profile in the Sandbox environment.   After calling `/sandbox/payment_profile/reset_login`, calls to the `/transfer/authorization/create` with the Payment Profile will result in a `decision_rationale` `PAYMENT_PROFILE_LOGIN_REQUIRED`. You can then use update mode for Payment Profile to restore it into a good state.   In order to invoke this endpoint, you must first [create a Payment Profile](https://plaid.com/docs/transfer/add-to-app/#create-a-payment-profile-optional) and [go through the Link flow](https://plaid.com/docs/transfer/add-to-app/#create-a-link-token).
     * @summary Reset the login of a Payment Profile
     * @param {SandboxPaymentProfileResetLoginRequest} sandboxPaymentProfileResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxPaymentProfileResetLogin: (sandboxPaymentProfileResetLoginRequest: SandboxPaymentProfileResetLoginRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/payment/simulate` endpoint to simulate various payment events in the Sandbox environment. This endpoint will trigger the corresponding payment status webhook.
     * @summary Simulate a payment event in Sandbox
     * @param {SandboxPaymentSimulateRequest} sandboxPaymentSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxPaymentSimulate: (sandboxPaymentSimulateRequest: SandboxPaymentSimulateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/processor_token/create` endpoint to create a valid `processor_token` for an arbitrary institution ID and test credentials. The created `processor_token` corresponds to a new Sandbox Item. You can then use this `processor_token` with the `/processor/` API endpoints in Sandbox. You can also use `/sandbox/processor_token/create` with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data.
     * @summary Create a test Item and processor token
     * @param {SandboxProcessorTokenCreateRequest} sandboxProcessorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxProcessorTokenCreate: (sandboxProcessorTokenCreateRequest: SandboxProcessorTokenCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/public_token/create` endpoint to create a valid `public_token`  for an arbitrary institution ID, initial products, and test credentials. The created `public_token` maps to a new Sandbox Item. You can then call `/item/public_token/exchange` to exchange the `public_token` for an `access_token` and perform all API actions. `/sandbox/public_token/create` can also be used with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data, or with Plaid\'s [pre-populated Sandbox test accounts](https://plaid.com/docs/sandbox/test-credentials/).
     * @summary Create a test Item
     * @param {SandboxPublicTokenCreateRequest} sandboxPublicTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxPublicTokenCreate: (sandboxPublicTokenCreateRequest: SandboxPublicTokenCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/fire_webhook` endpoint to manually trigger a `TRANSFER_EVENTS_UPDATE` webhook in the Sandbox environment.
     * @summary Manually fire a Transfer webhook
     * @param {SandboxTransferFireWebhookRequest} sandboxTransferFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferFireWebhook: (sandboxTransferFireWebhookRequest: SandboxTransferFireWebhookRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/ledger/deposit/simulate` endpoint to simulate a ledger deposit event in the Sandbox environment.
     * @summary Simulate a ledger deposit event in Sandbox
     * @param {SandboxTransferLedgerDepositSimulateRequest} sandboxTransferLedgerDepositSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferLedgerDepositSimulate: (sandboxTransferLedgerDepositSimulateRequest: SandboxTransferLedgerDepositSimulateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/ledger/simulate_available` endpoint to simulate converting pending balance to available balance for all originators in the Sandbox environment.
     * @summary Simulate converting pending balance to available balance
     * @param {SandboxTransferLedgerSimulateAvailableRequest} sandboxTransferLedgerSimulateAvailableRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferLedgerSimulateAvailable: (sandboxTransferLedgerSimulateAvailableRequest: SandboxTransferLedgerSimulateAvailableRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/ledger/withdraw/simulate` endpoint to simulate a ledger withdraw event in the Sandbox environment.
     * @summary Simulate a ledger withdraw event in Sandbox
     * @param {SandboxTransferLedgerWithdrawSimulateRequest} sandboxTransferLedgerWithdrawSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferLedgerWithdrawSimulate: (sandboxTransferLedgerWithdrawSimulateRequest: SandboxTransferLedgerWithdrawSimulateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/refund/simulate` endpoint to simulate a refund event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/transfer/event/sync` or `/transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a refund event in Sandbox
     * @param {SandboxTransferRefundSimulateRequest} sandboxTransferRefundSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferRefundSimulate: (sandboxTransferRefundSimulateRequest: SandboxTransferRefundSimulateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/repayment/simulate` endpoint to trigger the creation of a repayment. As a side effect of calling this route, a repayment is created that includes all unreimbursed returns of guaranteed transfers. If there are no such returns, an 400 error is returned.
     * @summary Trigger the creation of a repayment
     * @param {SandboxTransferRepaymentSimulateRequest} sandboxTransferRepaymentSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferRepaymentSimulate: (sandboxTransferRepaymentSimulateRequest: SandboxTransferRepaymentSimulateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/simulate` endpoint to simulate a transfer event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/transfer/event/sync` or `/transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a transfer event in Sandbox
     * @param {SandboxTransferSimulateRequest} sandboxTransferSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferSimulate: (sandboxTransferSimulateRequest: SandboxTransferSimulateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/sweep/simulate` endpoint to create a sweep and associated events in the Sandbox environment. Upon calling this endpoint, all transfers with a sweep status of `swept` will become `swept_settled`, all `posted` or `pending` transfers with a sweep status of `unswept` will become `swept`, and all `returned` transfers with a sweep status of `swept` will become `return_swept`.
     * @summary Simulate creating a sweep
     * @param {SandboxTransferSweepSimulateRequest} sandboxTransferSweepSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferSweepSimulate: (sandboxTransferSweepSimulateRequest: SandboxTransferSweepSimulateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/test_clock/advance` endpoint to advance a `test_clock` in the Sandbox environment.  A test clock object represents an independent timeline and has a `virtual_time` field indicating the current timestamp of the timeline. A test clock can be advanced by incrementing `virtual_time`, but may never go back to a lower `virtual_time`.  If a test clock is advanced, we will simulate the changes that ought to occur during the time that elapsed.  For example, a client creates a weekly recurring transfer with a test clock set at t. When the client advances the test clock by setting `virtual_time` = t + 15 days, 2 new originations should be created, along with the webhook events.  The advancement of the test clock from its current `virtual_time` should be limited such that there are no more than 20 originations resulting from the advance operation on each `recurring_transfer` associated with the `test_clock`.  For example, if the recurring transfer associated with this test clock originates once every 4 weeks, you can advance the `virtual_time` up to 80 weeks on each API call.
     * @summary Advance a test clock
     * @param {SandboxTransferTestClockAdvanceRequest} sandboxTransferTestClockAdvanceRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockAdvance: (sandboxTransferTestClockAdvanceRequest: SandboxTransferTestClockAdvanceRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/test_clock/create` endpoint to create a `test_clock` in the Sandbox environment.  A test clock object represents an independent timeline and has a `virtual_time` field indicating the current timestamp of the timeline. Test clocks are used for testing recurring transfers in Sandbox.  A test clock can be associated with up to 5 recurring transfers.
     * @summary Create a test clock
     * @param {SandboxTransferTestClockCreateRequest} sandboxTransferTestClockCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockCreate: (sandboxTransferTestClockCreateRequest: SandboxTransferTestClockCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/test_clock/get` endpoint to get a `test_clock` in the Sandbox environment.
     * @summary Get a test clock
     * @param {SandboxTransferTestClockGetRequest} sandboxTransferTestClockGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockGet: (sandboxTransferTestClockGetRequest: SandboxTransferTestClockGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/sandbox/transfer/test_clock/list` endpoint to see a list of all your test clocks in the Sandbox environment, by ascending `virtual_time`. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired test clocks.
     * @summary List test clocks
     * @param {SandboxTransferTestClockListRequest} sandboxTransferTestClockListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockList: (sandboxTransferTestClockListRequest: SandboxTransferTestClockListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/sandbox/user/reset_login/` functions the same as `/sandbox/item/reset_login`, but will modify Items related to a User. This endpoint forces each Item into an `ITEM_LOGIN_REQUIRED` state in order to simulate an Item whose login is no longer valid. This makes it easy to test Link\'s [update mode](https://plaid.com/docs/link/update-mode) flow in the Sandbox environment.  After calling `/sandbox/user/reset_login`, You can then use Plaid Link update mode to restore Items associated with the User to a good state. An `ITEM_LOGIN_REQUIRED` webhook will also be fired after a call to this endpoint, if one is associated with the Item.   In the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error state automatically after 30 days, even if this endpoint is not called.
     * @summary Force item(s) for a Sandbox User into an error state
     * @param {SandboxUserResetLoginRequest} sandboxUserResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxUserResetLogin: (sandboxUserResetLoginRequest: SandboxUserResetLoginRequest, options?: any) => Promise<RequestArgs>;
    /**
     * After calling `/signal/evaluate`, call `/signal/decision/report` to report whether the transaction was initiated.
     * @summary Report whether you initiated an ACH transaction
     * @param {SignalDecisionReportRequest} signalDecisionReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalDecisionReport: (signalDecisionReportRequest: SignalDecisionReportRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use `/signal/evaluate` to evaluate a planned ACH transaction to get a return risk assessment (such as a risk score and risk tier) and additional risk signals.  In order to obtain a valid score for an ACH transaction, Plaid must have an access token for the account, and the Item must be healthy (receiving product updates) or have recently been in a healthy state. If the transaction does not meet eligibility requirements, an error will be returned corresponding to the underlying cause. If `/signal/evaluate` is called on the same transaction multiple times within a 24-hour period, cached results may be returned. For more information please refer to the error documentation on [Item errors](/docs/errors/item/) and [Link in Update Mode](/docs/link/update-mode/).  Note: This request may take some time to complete if Signal is being added to an existing Item. This is because Plaid must communicate directly with the institution when retrieving the data for the first time.
     * @summary Evaluate a planned ACH transaction
     * @param {SignalEvaluateRequest} signalEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalEvaluate: (signalEvaluateRequest: SignalEvaluateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * When an Item is not initialized with Signal, call `/signal/prepare` to opt-in that Item to the Signal data collection process, developing a Signal score. This should be done on Items where Signal was added in the `additional_consented_products` array but not in the `products`, `optional_products`, or `required_if_supported_products` array. If `/signal/prepare` is skipped on an Item that is not initialized with Signal, the initial call to `/signal/evaluate` on that Item will be less accurate, because Signal will have access to less data for computing the Signal score.  If run on an Item that is already initialized with Signal, this endpoint will return a 200 response and will not modify the Item.
     * @summary Opt-in an Item to Signal
     * @param {SignalPrepareRequest} signalPrepareRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalPrepare: (signalPrepareRequest: SignalPrepareRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Call the `/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/signal/evaluate` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio.
     * @summary Report a return for an ACH transaction
     * @param {SignalReturnReportRequest} signalReturnReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalReturnReport: (signalReturnReportRequest: SignalReturnReportRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use `/signal/schedule` to schedule a planned ACH transaction.
     * @summary Schedule a planned ACH transaction
     * @param {SignalScheduleRequest} signalScheduleRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalSchedule: (signalScheduleRequest: SignalScheduleRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/statements/download` endpoint retrieves a single statement PDF in binary format.  The response will contain a `Plaid-Content-Hash` header containing a SHA 256 checksum of the statement. This can be used to verify that the file being sent by Plaid is the same file that was downloaded to your system.
     * @summary Retrieve a single statement.
     * @param {StatementsDownloadRequest} statementsDownloadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    statementsDownload: (statementsDownloadRequest: StatementsDownloadRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/statements/list` endpoint retrieves a list of all statements associated with an item.
     * @summary Retrieve a list of all statements associated with an item.
     * @param {StatementsListRequest} statementsListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    statementsList: (statementsListRequest: StatementsListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/statements/refresh` initiates an on-demand extraction to fetch the statements for the provided dates.
     * @summary Refresh statements data.
     * @param {StatementsRefreshRequest} statementsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    statementsRefresh: (statementsRefreshRequest: StatementsRefreshRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/beta/transactions/v1/enhance` endpoint enriches raw transaction data provided directly by clients.  The product is currently in beta.
     * @summary enhance locally-held transaction data
     * @param {TransactionsEnhanceGetRequest} transactionsEnhanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsEnhance: (transactionsEnhanceGetRequest: TransactionsEnhanceGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transactions/enrich` endpoint enriches raw transaction data generated by your own banking products or retrieved from other non-Plaid sources.
     * @summary Enrich locally-held transaction data
     * @param {TransactionsEnrichRequest} transactionsEnrichRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsEnrich: (transactionsEnrichRequest: TransactionsEnrichRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Note: All new implementations are encouraged to use `/transactions/sync` rather than `/transactions/get`. `/transactions/sync` provides the same functionality as `/transactions/get` and improves developer ease-of-use for handling transactions updates.  The `/transactions/get` endpoint allows developers to receive user-authorized transaction data for credit, depository, and some loan-type accounts (only those with account subtype `student`; coverage may be limited). For transaction history from investments accounts, use the [Investments endpoint](https://plaid.com/docs/api/products/investments/) instead. Transaction data is standardized across financial institutions, and in many cases transactions are linked to a clean name, entity type, location, and category. Similarly, account data is standardized and returned with a clean name, number, balance, and other meta information where available.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Transactions are not immutable and can also be removed altogether by the institution; a removed transaction will no longer appear in `/transactions/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).  Due to the potentially large number of transactions associated with an Item, results are paginated. Manipulate the `count` and `offset` parameters in conjunction with the `total_transactions` response body field to fetch all available transactions.  Data returned by `/transactions/get` will be the data available for the Item as of the most recent successful check for new transactions. Plaid typically checks for new data multiple times a day, but these checks may occur less frequently, such as once a day, depending on the institution. To find out when the Item was last updated, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, you can use the `/transactions/refresh` endpoint.  Note that data may not be immediately available to `/transactions/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `transactions`, or upon the first call to `/transactions/get`, if it wasn\'t. To be alerted when transaction data is ready to be fetched, listen for the [`INITIAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#initial_update) and [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhooks. If no transaction history is ready when `/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.
     * @summary Get transaction data
     * @param {TransactionsGetRequest} transactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsGet: (transactionsGetRequest: TransactionsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transactions/recurring/get` endpoint allows developers to receive a summary of the recurring outflow and inflow streams (expenses and deposits) from a user’s checking, savings or credit card accounts. Additionally, Plaid provides key insights about each recurring stream including the category, merchant, last amount, and more. Developers can use these insights to build tools and experiences that help their users better manage cash flow, monitor subscriptions, reduce spend, and stay on track with bill payments.  This endpoint is offered as an add-on to Transactions. To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.  This endpoint can only be called on an Item that has already been initialized with Transactions (either during Link, by specifying it in `/link/token/create`; or after Link, by calling `/transactions/get` or `/transactions/sync`).   When using Recurring Transactions, for best results, make sure to use the [`days_requested`](https://plaid.com/docs/api/link/#link-token-create-request-transactions-days-requested) parameter to request at least 180 days of history when initializing Items with Transactions. Once all historical transactions have been fetched, call `/transactions/recurring/get` to receive the Recurring Transactions streams and subscribe to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook. To know when historical transactions have been fetched, if you are using `/transactions/sync` listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#SyncUpdatesAvailableWebhook-historical-update-complete) webhook and check that the `historical_update_complete` field in the payload is `true`. If using `/transactions/get`, listen for the [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhook.  After the initial call, you can call `/transactions/recurring/get` endpoint at any point in the future to retrieve the latest summary of recurring streams. Listen to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook to be notified when new updates are available.
     * @summary Fetch recurring transaction streams
     * @param {TransactionsRecurringGetRequest} transactionsRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRecurringGet: (transactionsRecurringGetRequest: TransactionsRecurringGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/transactions/refresh` is an optional endpoint that initiates an on-demand extraction to fetch the newest transactions for an Item. The on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Transactions-enabled Item. The Item must already have Transactions added as a product in order to call `/transactions/refresh`.  If changes to transactions are discovered after calling `/transactions/refresh`, Plaid will fire a webhook: for `/transactions/sync` users, [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) will be fired if there are any transactions updated, added, or removed. For users of both `/transactions/sync` and `/transactions/get`, [`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/products/transactions/#transactions_removed) will be fired if any removed transactions are detected, and [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/transactions/#default_update) will be fired if any new transactions are detected. New transactions can be fetched by calling `/transactions/get` or `/transactions/sync`.  Note that the `/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) non-depository accounts and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item that contains only non-depository accounts from that institution.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/transactions/refresh` is offered as an optional add-on to Transactions and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh transaction data
     * @param {TransactionsRefreshRequest} transactionsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRefresh: (transactionsRefreshRequest: TransactionsRefreshRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transactions/rules/v1/create` endpoint creates transaction categorization rules.  Rules will be applied on the Item\'s transactions returned in `/transactions/get` response.  The product is currently in beta. To request access, contact transactions-feedback@plaid.com.
     * @summary Create transaction category rule
     * @param {TransactionsRulesCreateRequest} transactionsRulesCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRulesCreate: (transactionsRulesCreateRequest: TransactionsRulesCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transactions/rules/v1/list` returns a list of transaction rules created for the Item associated with the access token.
     * @summary Return a list of rules created for the Item associated with the access token.
     * @param {TransactionsRulesListRequest} transactionsRulesListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRulesList: (transactionsRulesListRequest: TransactionsRulesListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transactions/rules/v1/remove` endpoint is used to remove a transaction rule.
     * @summary Remove transaction rule
     * @param {TransactionsRulesRemoveRequest} transactionsRulesRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRulesRemove: (transactionsRulesRemoveRequest: TransactionsRulesRemoveRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transactions/sync` endpoint retrieves transactions associated with an Item and can fetch updates using a cursor to track which updates have already been seen.  For important instructions on integrating with `/transactions/sync`, see the [Transactions integration overview](https://plaid.com/docs/transactions/#integration-overview). If you are migrating from an existing integration using `/transactions/get`, see the [Transactions Sync migration guide](https://plaid.com/docs/transactions/sync-migration/).  This endpoint supports `credit`, `depository`, and some `loan`-type accounts (only those with account subtype `student`). For `investments` accounts, use `/investments/transactions/get` instead.   When retrieving paginated updates, track both the `next_cursor` from the latest response and the original cursor from the first call in which `has_more` was `true`; if a call to `/transactions/sync` fails when retrieving a paginated update (e.g due to the [`TRANSACTIONS_SYNC_MUTATION_DURING_PAGINATION`](https://plaid.com/docs/errors/transactions/#transactions_sync_mutation_during_pagination) error), the entire pagination request loop must be restarted beginning with the cursor for the first page of the update, rather than retrying only the single request that failed.  If transactions data is not yet available for the Item, which can happen if the Item was not initialized with transactions during the `/link/token/create` call or if `/transactions/sync` was called within a few seconds of Item creation, `/transactions/sync` will return empty transactions arrays.   Plaid typically checks for new transactions data between one and four times per day, depending on the institution. To find out when transactions were last updated for an Item, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, use the `/transactions/refresh` endpoint.  To be alerted when new transactions are available, listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) webhook.
     * @summary Get incremental transaction updates on an Item
     * @param {TransactionsSyncRequest} transactionsSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsSync: (transactionsSyncRequest: TransactionsSyncRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/beta/transactions/user_insights/v1/get` gets user insights for clients who have enriched data with `/transactions/enrich`.  The product is currently in beta.
     * @summary Obtain user insights based on transactions sent through /transactions/enrich
     * @param {TransactionsUserInsightsGetRequest} transactionsUserInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsUserInsightsGet: (transactionsUserInsightsGetRequest: TransactionsUserInsightsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/authorization/cancel` endpoint to cancel a transfer authorization. A transfer authorization is eligible for cancellation if it has not yet been used to create a transfer.
     * @summary Cancel a transfer authorization
     * @param {TransferAuthorizationCancelRequest} transferAuthorizationCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferAuthorizationCancel: (transferAuthorizationCancelRequest: TransferAuthorizationCancelRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/authorization/create` endpoint to authorize a transfer. This endpoint must be called prior to calling `/transfer/create`. The transfer authorization will expire if not used after one hour. (You can contact your account manager to change the default authorization lifetime.)   There are four possible outcomes to calling this endpoint:     - If the `authorization.decision` in the response is `declined`, the proposed transfer has failed the risk check and you cannot proceed with the transfer.     - If the `authorization.decision` is `user_action_required`, additional user input is needed, usually to fix a broken bank connection, before Plaid can properly assess the risk. You need to launch Link in update mode to complete the required user action. When calling `/link/token/create` to get a new Link token, instead of providing `access_token` in the request, you should set [`transfer.authorization_id`](https://plaid.com/docs/api/link/#link-token-create-request-transfer-authorization-id) as the `authorization.id`. After the Link flow is completed, you may re-attempt the authorization.    - If the `authorization.decision` is `approved`, and the `authorization.rationale_code` is `null`, the transfer has passed the risk check and you can proceed to call `/transfer/create`.      - If the `authorization.decision` is `approved` and the `authorization.rationale_code` is non-`null`, the risk check could not be run: you may proceed with the transfer, but should perform your own risk evaluation. For more details, see the response schema.  In Plaid\'s Sandbox environment the decisions will be returned as follows:    - To approve a transfer with `null` rationale code, make an authorization request with an `amount` less than the available balance in the account.    - To approve a transfer with the rationale code `MANUALLY_VERIFIED_ITEM`, create an Item in Link through the [Same Day Micro-deposits flow](https://plaid.com/docs/auth/coverage/testing/#testing-same-day-micro-deposits).    - To get an authorization decision of `user_action_required`, [reset the login for an Item](https://plaid.com/docs/sandbox/#item_login_required).    - To decline a transfer with the rationale code `NSF`, the available balance on the account must be less than the authorization `amount`. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.    - To decline a transfer with the rationale code `RISK`, the available balance on the account must be exactly $0. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.
     * @summary Create a transfer authorization
     * @param {TransferAuthorizationCreateRequest} transferAuthorizationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferAuthorizationCreate: (transferAuthorizationCreateRequest: TransferAuthorizationCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * (Deprecated) Use the `/transfer/balance/get` endpoint to view a balance held with Plaid.
     * @summary (Deprecated) Retrieve a balance held with Plaid
     * @param {TransferBalanceGetRequest} transferBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferBalanceGet: (transferBalanceGetRequest: TransferBalanceGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/cancel` endpoint to cancel a transfer.  A transfer is eligible for cancellation if the `cancellable` property returned by `/transfer/get` is `true`.
     * @summary Cancel a transfer
     * @param {TransferCancelRequest} transferCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferCancel: (transferCancelRequest: TransferCancelRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/capabilities/get` endpoint to determine the RTP eligibility information of an account to be used with Transfer. This endpoint works on all Transfer-capable Items, including those created by `/transfer/migrate_account`. To simulate RTP eligibility in Sandbox, log in using the username `user_good` and password `pass_good` and use the first two checking and savings accounts in the \"First Platypus Bank\" institution (ending in 0000 or 1111), which will return `true`. Any other account will return `false`.
     * @summary Get RTP eligibility information of a transfer
     * @param {TransferCapabilitiesGetRequest} transferCapabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferCapabilitiesGet: (transferCapabilitiesGetRequest: TransferCapabilitiesGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/configuration/get` endpoint to view your transfer product configurations.
     * @summary Get transfer product configuration
     * @param {TransferConfigurationGetRequest} transferConfigurationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferConfigurationGet: (transferConfigurationGetRequest: TransferConfigurationGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/create` endpoint to initiate a new transfer. This endpoint is retryable and idempotent; if a transfer with the provided `transfer_id` has already been created, it will return the transfer details without creating a new transfer. A transfer may still be created if a 500 error is returned; to detect this scenario, use [Transfer events](https://plaid.com/docs/transfer/reconciling-transfers/).
     * @summary Create a transfer
     * @param {TransferCreateRequest} transferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferCreate: (transferCreateRequest: TransferCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Third-party sender customers can use `/transfer/diligence/document/upload` endpoint to upload a document on behalf of its end customer (i.e. originator) to Plaid. You’ll need to send a request of type multipart/form-data. You must provide the `client_id` in the `PLAID-CLIENT-ID` header and `secret` in the `PLAID-SECRET` header.
     * @summary Upload transfer diligence document on behalf of the originator
     * @param {TransferDiligenceDocumentUploadRequest} transferDiligenceDocumentUploadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferDiligenceDocumentUpload: (transferDiligenceDocumentUploadRequest: TransferDiligenceDocumentUploadRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/diligence/submit` endpoint to submit transfer diligence on behalf of the originator (i.e., the end customer).
     * @summary Submit transfer diligence on behalf of the originator
     * @param {TransferDiligenceSubmitRequest} transferDiligenceSubmitRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferDiligenceSubmit: (transferDiligenceSubmitRequest: TransferDiligenceSubmitRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/event/list` endpoint to get a list of transfer events based on specified filter criteria.
     * @summary List transfer events
     * @param {TransferEventListRequest} transferEventListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferEventList: (transferEventListRequest: TransferEventListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/transfer/event/sync` allows you to request up to the next 25 transfer events that happened after a specific `event_id`. Use the `/transfer/event/sync` endpoint to guarantee you have seen all transfer events.
     * @summary Sync transfer events
     * @param {TransferEventSyncRequest} transferEventSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferEventSync: (transferEventSyncRequest: TransferEventSyncRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/get` endpoint fetches information about the transfer corresponding to the given `transfer_id` or `authorization_id`. One of `transfer_id` or `authorization_id` must be populated but not both.
     * @summary Retrieve a transfer
     * @param {TransferGetRequest} transferGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferGet: (transferGetRequest: TransferGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/intent/create` endpoint to generate a transfer intent object and invoke the Transfer UI.
     * @summary Create a transfer intent object to invoke the Transfer UI
     * @param {TransferIntentCreateRequest} transferIntentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferIntentCreate: (transferIntentCreateRequest: TransferIntentCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/intent/get` endpoint to retrieve more information about a transfer intent.
     * @summary Retrieve more information about a transfer intent
     * @param {TransferIntentGetRequest} transferIntentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferIntentGet: (transferIntentGetRequest: TransferIntentGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/ledger/deposit` endpoint to deposit funds into Plaid Ledger.
     * @summary Deposit funds into a Plaid Ledger balance
     * @param {TransferLedgerDepositRequest} transferLedgerDepositRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerDeposit: (transferLedgerDepositRequest: TransferLedgerDepositRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/ledger/distribute` endpoint to move available balance between the ledgers of the platform and one of its originators.
     * @summary Move available balance between the ledgers of the platform and one of its originators
     * @param {TransferLedgerDistributeRequest} transferLedgerDistributeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerDistribute: (transferLedgerDistributeRequest: TransferLedgerDistributeRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/ledger/get` endpoint to view a balance on the ledger held with Plaid.
     * @summary Retrieve Plaid Ledger balance
     * @param {TransferLedgerGetRequest} transferLedgerGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerGet: (transferLedgerGetRequest: TransferLedgerGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/ledger/withdraw` endpoint to withdraw funds from a Plaid Ledger balance.
     * @summary Withdraw funds from a Plaid Ledger balance
     * @param {TransferLedgerWithdrawRequest} transferLedgerWithdrawRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerWithdraw: (transferLedgerWithdrawRequest: TransferLedgerWithdrawRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/list` endpoint to see a list of all your transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired transfers.
     * @summary List transfers
     * @param {TransferListRequest} transferListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferList: (transferListRequest: TransferListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/metrics/get` endpoint to view your transfer product usage metrics.
     * @summary Get transfer product usage metrics
     * @param {TransferMetricsGetRequest} transferMetricsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferMetricsGet: (transferMetricsGetRequest: TransferMetricsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * As an alternative to adding Items via Link, you can also use the `/transfer/migrate_account` endpoint to migrate known account and routing numbers to Plaid Items. This endpoint is also required when adding an Item for use with wire transfers; if you intend to create wire transfers on this account, you must provide `wire_routing_number`. Note that Items created in this way are not compatible with endpoints for other products, such as `/accounts/balance/get`, and can only be used with Transfer endpoints.  If you require access to other endpoints, create the Item through Link instead.  Access to `/transfer/migrate_account` is not enabled by default; to obtain access, contact your Plaid Account Manager.
     * @summary Migrate account into Transfers
     * @param {TransferMigrateAccountRequest} transferMigrateAccountRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferMigrateAccount: (transferMigrateAccountRequest: TransferMigrateAccountRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/originator/create` endpoint to create a new originator and return an `originator_client_id`.
     * @summary Create a new originator
     * @param {TransferOriginatorCreateRequest} transferOriginatorCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorCreate: (transferOriginatorCreateRequest: TransferOriginatorCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/originator/funding_account/update` endpoint to update the funding account associated with the originator.
     * @summary Update the funding account associated with the originator
     * @param {TransferOriginatorFundingAccountUpdateRequest} transferOriginatorFundingAccountUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorFundingAccountUpdate: (transferOriginatorFundingAccountUpdateRequest: TransferOriginatorFundingAccountUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/originator/get` endpoint gets status updates for an originator\'s onboarding process. This information is also available via the Transfer page on the Plaid dashboard.
     * @summary Get status of an originator\'s onboarding
     * @param {TransferOriginatorGetRequest} transferOriginatorGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorGet: (transferOriginatorGetRequest: TransferOriginatorGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/originator/list` endpoint gets status updates for all of your originators\' onboarding. This information is also available via the Plaid dashboard.
     * @summary Get status of all originators\' onboarding
     * @param {TransferOriginatorListRequest} transferOriginatorListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorList: (transferOriginatorListRequest: TransferOriginatorListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/platform/originator/create` endpoint allows gathering information about the originator specific to the Scaled Platform Transfer offering, including the originator\'s agreement to legal terms required before accepting any further information related to the originator.
     * @summary Create an originator for scaled platform customers
     * @param {TransferPlatformOriginatorCreateRequest} transferPlatformOriginatorCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferPlatformOriginatorCreate: (transferPlatformOriginatorCreateRequest: TransferPlatformOriginatorCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/platform/person/create` endpoint to create a person record associated with an originator and optionally submit person-specific requirements.
     * @summary Create a person associated with an originator
     * @param {TransferPlatformPersonCreateRequest} transferPlatformPersonCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferPlatformPersonCreate: (transferPlatformPersonCreateRequest: TransferPlatformPersonCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/platform/requirement/submit` endpoint allows platforms to submit onboarding requirements for an originator as part of the Scaled Platform Transfer offering.
     * @summary Submit onboarding requirements for Scaled Platform originators
     * @param {TransferPlatformRequirementSubmitRequest} transferPlatformRequirementSubmitRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferPlatformRequirementSubmit: (transferPlatformRequirementSubmitRequest: TransferPlatformRequirementSubmitRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/questionnaire/create` endpoint generates a Plaid-hosted onboarding UI URL. Redirect the originator to this URL to provide their due diligence information and agree to Plaid’s terms for ACH money movement.
     * @summary Generate a Plaid-hosted onboarding UI URL.
     * @param {TransferQuestionnaireCreateRequest} transferQuestionnaireCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferQuestionnaireCreate: (transferQuestionnaireCreateRequest: TransferQuestionnaireCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/recurring/cancel` endpoint to cancel a recurring transfer.  Scheduled transfer that hasn\'t been submitted to bank will be cancelled.
     * @summary Cancel a recurring transfer.
     * @param {TransferRecurringCancelRequest} transferRecurringCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringCancel: (transferRecurringCancelRequest: TransferRecurringCancelRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/recurring/create` endpoint to initiate a new recurring transfer. This capability is not currently supported for Transfer UI or Platform Payments (beta) customers.
     * @summary Create a recurring transfer
     * @param {TransferRecurringCreateRequest} transferRecurringCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringCreate: (transferRecurringCreateRequest: TransferRecurringCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/recurring/get` fetches information about the recurring transfer corresponding to the given `recurring_transfer_id`.
     * @summary Retrieve a recurring transfer
     * @param {TransferRecurringGetRequest} transferRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringGet: (transferRecurringGetRequest: TransferRecurringGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/recurring/list` endpoint to see a list of all your recurring transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired recurring transfers.
     * @summary List recurring transfers
     * @param {TransferRecurringListRequest} transferRecurringListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringList: (transferRecurringListRequest: TransferRecurringListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/refund/cancel` endpoint to cancel a refund.  A refund is eligible for cancellation if it has not yet been submitted to the payment network.
     * @summary Cancel a refund
     * @param {TransferRefundCancelRequest} transferRefundCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRefundCancel: (transferRefundCancelRequest: TransferRefundCancelRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Use the `/transfer/refund/create` endpoint to create a refund for a transfer. A transfer can be refunded if the transfer was initiated in the past 180 days.  Refunds come out of the available balance of the ledger used for the original debit transfer. If there are not enough funds in the available balance to cover the refund amount, the refund will be rejected. You can create a refund at any time. Plaid does not impose any hold time on refunds.
     * @summary Create a refund
     * @param {TransferRefundCreateRequest} transferRefundCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRefundCreate: (transferRefundCreateRequest: TransferRefundCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/refund/get` endpoint fetches information about the refund corresponding to the given `refund_id`.
     * @summary Retrieve a refund
     * @param {TransferRefundGetRequest} transferRefundGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRefundGet: (transferRefundGetRequest: TransferRefundGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/repayment/list` endpoint fetches repayments matching the given filters. Repayments are returned in reverse-chronological order (most recent first) starting at the given `start_time`.
     * @summary Lists historical repayments
     * @param {TransferRepaymentListRequest} transferRepaymentListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRepaymentList: (transferRepaymentListRequest: TransferRepaymentListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/repayment/return/list` endpoint retrieves the set of returns that were batched together into the specified repayment. The sum of amounts of returns retrieved by this request equals the amount of the repayment.
     * @summary List the returns included in a repayment
     * @param {TransferRepaymentReturnListRequest} transferRepaymentReturnListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRepaymentReturnList: (transferRepaymentReturnListRequest: TransferRepaymentReturnListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/sweep/get` endpoint fetches a sweep corresponding to the given `sweep_id`.
     * @summary Retrieve a sweep
     * @param {TransferSweepGetRequest} transferSweepGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferSweepGet: (transferSweepGetRequest: TransferSweepGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * The `/transfer/sweep/list` endpoint fetches sweeps matching the given filters.
     * @summary List sweeps
     * @param {TransferSweepListRequest} transferSweepListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferSweepList: (transferSweepListRequest: TransferSweepListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Returns user permissioned account data including identity and Item access tokens.
     * @summary Retrieve User Account
     * @param {UserAccountSessionGetRequest} userAccountSessionGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userAccountSessionGet: (userAccountSessionGetRequest: UserAccountSessionGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint should be called for each of your end users before they begin a Plaid Check or Income flow, or a Multi-Item Link flow. This provides you a single token to access all data associated with the user. You should only create one per end user.  The `consumer_report_user_identity` object must be present in order to create a Plaid Check Consumer Report for a user. If it is not provided during the `/user/create` call, it can be added later by calling `/user/update`. Plaid Check Consumer Reports can only be created for US-based users; the user\'s address country must be `US`.  If you call the endpoint multiple times with the same `client_user_id`, the first creation call will succeed and the rest will fail with an error message indicating that the user has been created for the given `client_user_id`.  Ensure that you store the `user_token` along with your user\'s identifier in your database, as it is not possible to retrieve a previously created `user_token`.
     * @summary Create user
     * @param {UserCreateRequest} userCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userCreate: (userCreateRequest: UserCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Returns Items associated with a User along with their corresponding statuses.
     * @summary Get Items associated with a User
     * @param {UserItemsGetRequest} userItemsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userItemsGet: (userItemsGetRequest: UserItemsGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * `/user/remove` deletes a user token and and associated information, including any Items associated with the token.  Any subsequent calls to retrieve information using the same user token will result in an error stating the user does not exist.
     * @summary Remove user
     * @param {UserRemoveRequest} userRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userRemove: (userRemoveRequest: UserRemoveRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint is used to create a third-party user token. This token can be shared with and used by a specified third-party client to access data associated with the user through supported endpoints.  Ensure you store the `third_party_user_token` along with the `user_token` and `third_party_client_id`, as it is not possible to retrieve a previously created `third_party_user_token`.
     * @summary Create a third-party user token
     * @param {UserThirdPartyTokenCreateRequest} userThirdPartyTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userThirdPartyTokenCreate: (userThirdPartyTokenCreateRequest: UserThirdPartyTokenCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint is used to delete a third-party user token. Once removed, the token can longer be used to access data associated with the user.   Any subsequent calls to retrieve information using the same third-party user token will result in an error stating the third-party user token does not exist.
     * @summary Remove a third-party user token
     * @param {UserThirdPartyTokenRemoveRequest} userThirdPartyTokenRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userThirdPartyTokenRemove: (userThirdPartyTokenRemoveRequest: UserThirdPartyTokenRemoveRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint is used to update user information associated with an existing `user_token`. It can also be used to enable an existing `user_token` for use with Consumer Reports by Plaid Check, by adding a `consumer_report_user_identity` object to the user. Plaid Check Consumer Reports can only be created for US-based users; the user\'s address country must be `US`.
     * @summary Update user information
     * @param {UserUpdateRequest} userUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userUpdate: (userUpdateRequest: UserUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Create an e-wallet. The response is the newly created e-wallet object.
     * @summary Create an e-wallet
     * @param {WalletCreateRequest} walletCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletCreate: (walletCreateRequest: WalletCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Fetch an e-wallet. The response includes the current balance.
     * @summary Fetch an e-wallet
     * @param {WalletGetRequest} walletGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletGet: (walletGetRequest: WalletGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint lists all e-wallets in descending order of creation.
     * @summary Fetch a list of e-wallets
     * @param {WalletListRequest} walletListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletList: (walletListRequest: WalletListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Execute a transaction using the specified e-wallet. Specify the e-wallet to debit from, the counterparty to credit to, the idempotency key to prevent duplicate transactions, the amount and reference for the transaction. Transactions will settle in seconds to several days, depending on the underlying payment rail.
     * @summary Execute a transaction using an e-wallet
     * @param {WalletTransactionExecuteRequest} walletTransactionExecuteRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletTransactionExecute: (walletTransactionExecuteRequest: WalletTransactionExecuteRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Fetch a specific e-wallet transaction
     * @summary Fetch an e-wallet transaction
     * @param {WalletTransactionGetRequest} walletTransactionGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletTransactionGet: (walletTransactionGetRequest: WalletTransactionGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * This endpoint lists the latest transactions of the specified e-wallet. Transactions are returned in descending order by the `created_at` time.
     * @summary List e-wallet transactions
     * @param {WalletTransactionListRequest} walletTransactionListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletTransactionList: (walletTransactionListRequest: WalletTransactionListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Create a new entity watchlist screening to check your customer against watchlists defined in the associated entity watchlist program. If your associated program has ongoing screening enabled, this is the profile information that will be used to monitor your customer over time.
     * @summary Create a watchlist screening for an entity
     * @param {WatchlistScreeningEntityCreateRequest} watchlistScreeningEntityCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityCreate: (watchlistScreeningEntityCreateRequest: WatchlistScreeningEntityCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Retrieve an entity watchlist screening.
     * @summary Get an entity screening
     * @param {WatchlistScreeningEntityGetRequest} watchlistScreeningEntityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityGet: (watchlistScreeningEntityGetRequest: WatchlistScreeningEntityGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List all changes to the entity watchlist screening in reverse-chronological order. If the watchlist screening has not been edited, no history will be returned.
     * @summary List history for entity watchlist screenings
     * @param {WatchlistScreeningEntityHistoryListRequest} watchlistScreeningEntityHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityHistoryList: (watchlistScreeningEntityHistoryListRequest: WatchlistScreeningEntityHistoryListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List all hits for the entity watchlist screening.
     * @summary List hits for entity watchlist screenings
     * @param {WatchlistScreeningEntityHitListRequest} watchlistScreeningEntityHitListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityHitList: (watchlistScreeningEntityHitListRequest: WatchlistScreeningEntityHitListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List all entity screenings.
     * @summary List entity watchlist screenings
     * @param {WatchlistScreeningEntityListRequest} watchlistScreeningEntityListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityList: (watchlistScreeningEntityListRequest: WatchlistScreeningEntityListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Get an entity watchlist screening program
     * @summary Get entity watchlist screening program
     * @param {WatchlistScreeningEntityProgramGetRequest} watchlistScreeningEntityProgramGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityProgramGet: (watchlistScreeningEntityProgramGetRequest: WatchlistScreeningEntityProgramGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List all entity watchlist screening programs
     * @summary List entity watchlist screening programs
     * @param {WatchlistScreeningEntityProgramListRequest} watchlistScreeningEntityProgramListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityProgramList: (watchlistScreeningEntityProgramListRequest: WatchlistScreeningEntityProgramListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Create a review for an entity watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary Create a review for an entity watchlist screening
     * @param {WatchlistScreeningEntityReviewCreateRequest} watchlistScreeningEntityReviewCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityReviewCreate: (watchlistScreeningEntityReviewCreateRequest: WatchlistScreeningEntityReviewCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List all reviews for a particular entity watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary List reviews for entity watchlist screenings
     * @param {WatchlistScreeningEntityReviewListRequest} watchlistScreeningEntityReviewListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityReviewList: (watchlistScreeningEntityReviewListRequest: WatchlistScreeningEntityReviewListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Update an entity watchlist screening.
     * @summary Update an entity screening
     * @param {WatchlistScreeningEntityUpdateRequest} watchlistScreeningEntityUpdateRequest The entity screening was successfully updated.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityUpdate: (watchlistScreeningEntityUpdateRequest: WatchlistScreeningEntityUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Create a new Watchlist Screening to check your customer against watchlists defined in the associated Watchlist Program. If your associated program has ongoing screening enabled, this is the profile information that will be used to monitor your customer over time.
     * @summary Create a watchlist screening for a person
     * @param {WatchlistScreeningIndividualCreateRequest} watchlistScreeningIndividualCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualCreate: (watchlistScreeningIndividualCreateRequest: WatchlistScreeningIndividualCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Retrieve a previously created individual watchlist screening
     * @summary Retrieve an individual watchlist screening
     * @param {WatchlistScreeningIndividualGetRequest} watchlistScreeningIndividualGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualGet: (watchlistScreeningIndividualGetRequest: WatchlistScreeningIndividualGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List all changes to the individual watchlist screening in reverse-chronological order. If the watchlist screening has not been edited, no history will be returned.
     * @summary List history for individual watchlist screenings
     * @param {WatchlistScreeningIndividualHistoryListRequest} watchlistScreeningIndividualHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualHistoryList: (watchlistScreeningIndividualHistoryListRequest: WatchlistScreeningIndividualHistoryListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List all hits found by Plaid for a particular individual watchlist screening.
     * @summary List hits for individual watchlist screening
     * @param {WatchlistScreeningIndividualHitListRequest} watchlistScreeningIndividualHitListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualHitList: (watchlistScreeningIndividualHitListRequest: WatchlistScreeningIndividualHitListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List previously created watchlist screenings for individuals
     * @summary List Individual Watchlist Screenings
     * @param {WatchlistScreeningIndividualListRequest} watchlistScreeningIndividualListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualList: (watchlistScreeningIndividualListRequest: WatchlistScreeningIndividualListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Get an individual watchlist screening program
     * @summary Get individual watchlist screening program
     * @param {WatchlistScreeningIndividualProgramGetRequest} watchlistScreeningIndividualProgramGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualProgramGet: (watchlistScreeningIndividualProgramGetRequest: WatchlistScreeningIndividualProgramGetRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List all individual watchlist screening programs
     * @summary List individual watchlist screening programs
     * @param {WatchlistScreeningIndividualProgramListRequest} watchlistScreeningIndividualProgramListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualProgramList: (watchlistScreeningIndividualProgramListRequest: WatchlistScreeningIndividualProgramListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Create a review for the individual watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary Create a review for an individual watchlist screening
     * @param {WatchlistScreeningIndividualReviewCreateRequest} watchlistScreeningIndividualReviewCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualReviewCreate: (watchlistScreeningIndividualReviewCreateRequest: WatchlistScreeningIndividualReviewCreateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * List all reviews for the individual watchlist screening.
     * @summary List reviews for individual watchlist screenings
     * @param {WatchlistScreeningIndividualReviewListRequest} watchlistScreeningIndividualReviewListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualReviewList: (watchlistScreeningIndividualReviewListRequest: WatchlistScreeningIndividualReviewListRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Update a specific individual watchlist screening. This endpoint can be used to add additional customer information, correct outdated information, add a reference id, assign the individual to a reviewer, and update which program it is associated with. Please note that you may not update `search_terms` and `status` at the same time since editing `search_terms` may trigger an automatic `status` change.
     * @summary Update individual watchlist screening
     * @param {WatchlistScreeningIndividualUpdateRequest} watchlistScreeningIndividualUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualUpdate: (watchlistScreeningIndividualUpdateRequest: WatchlistScreeningIndividualUpdateRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Plaid signs all outgoing webhooks and provides JSON Web Tokens (JWTs) so that you can verify the authenticity of any incoming webhooks to your application. A message signature is included in the `Plaid-Verification` header.  The `/webhook_verification_key/get` endpoint provides a JSON Web Key (JWK) that can be used to verify a JWT.
     * @summary Get webhook verification key
     * @param {WebhookVerificationKeyGetRequest} webhookVerificationKeyGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    webhookVerificationKeyGet: (webhookVerificationKeyGetRequest: WebhookVerificationKeyGetRequest, options?: any) => Promise<RequestArgs>;
};
/**
 * PlaidApi - functional programming interface
 * @export
 */
export declare const PlaidApiFp: (configuration?: Configuration | undefined) => {
    /**
     * The `/accounts/balance/get` endpoint returns the real-time balance for each of an Item\'s accounts. While other endpoints, such as `/accounts/get`, return a balance object, only `/accounts/balance/get` forces the available and current balance fields to be refreshed rather than cached. This endpoint can be used for existing Items that were added via any of Plaid’s other products. This endpoint can be used as long as Link has been initialized with any other product, `balance` itself is not a product that can be used to initialize Link. As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.
     * @summary Retrieve real-time balance data
     * @param {AccountsBalanceGetRequest} accountsBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    accountsBalanceGet(accountsBalanceGetRequest: AccountsBalanceGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AccountsGetResponse>>;
    /**
     * The `/accounts/get` endpoint can be used to retrieve a list of accounts associated with any linked Item. Plaid will only return active bank accounts — that is, accounts that are not closed and are capable of carrying a balance. To return new accounts that were created after the user linked their Item, you can listen for the [`NEW_ACCOUNTS_AVAILABLE`](https://plaid.com/docs/api/items/#new_accounts_available) webhook and then use Link\'s [update mode](https://plaid.com/docs/link/update-mode/) to request that the user share this new account with you.  `/accounts/get` is free to use and retrieves cached information, rather than extracting fresh information from the institution. The balance returned will reflect the balance at the time of the last successful Item update. If the Item is enabled for a regularly updating product, such as Transactions, Investments, or Liabilities, the balance will typically update about once a day, as long as the Item is healthy. If the Item is enabled only for products that do not frequently update, such as Auth or Identity, balance data may be much older.  For realtime balance information, use the paid endpoint `/accounts/balance/get` instead.
     * @summary Retrieve accounts
     * @param {AccountsGetRequest} accountsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    accountsGet(accountsGetRequest: AccountsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AccountsGetResponse>>;
    /**
     * Allows financial institutions to retrieve information about Plaid clients for the purpose of building control-tower experiences
     * @summary Retrieve information about a Plaid application
     * @param {ApplicationGetRequest} applicationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    applicationGet(applicationGetRequest: ApplicationGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ApplicationGetResponse>>;
    /**
     * Plaid can provide an Audit Copy of any Asset Report directly to a participating third party on your behalf. For example, Plaid can supply an Audit Copy directly to Fannie Mae on your behalf if you participate in the Day 1 Certainty™ program. An Audit Copy contains the same underlying data as the Asset Report.  To grant access to an Audit Copy, use the `/asset_report/audit_copy/create` endpoint to create an `audit_copy_token` and then pass that token to the third party who needs access. Each third party has its own `auditor_id`, for example `fannie_mae`. You’ll need to create a separate Audit Copy for each third party to whom you want to grant access to the Report.
     * @summary Create Asset Report Audit Copy
     * @param {AssetReportAuditCopyCreateRequest} assetReportAuditCopyCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportAuditCopyCreate(assetReportAuditCopyCreateRequest: AssetReportAuditCopyCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AssetReportAuditCopyCreateResponse>>;
    /**
     * `/asset_report/audit_copy/get` allows auditors to get a copy of an Asset Report that was previously shared via the `/asset_report/audit_copy/create` endpoint.  The caller of `/asset_report/audit_copy/create` must provide the `audit_copy_token` to the auditor.  This token can then be used to call `/asset_report/audit_copy/create`.
     * @summary Retrieve an Asset Report Audit Copy
     * @param {AssetReportAuditCopyGetRequest} assetReportAuditCopyGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportAuditCopyGet(assetReportAuditCopyGetRequest: AssetReportAuditCopyGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AssetReportGetResponse>>;
    /**
     * The `/asset_report/audit_copy/remove` endpoint allows you to remove an Audit Copy. Removing an Audit Copy invalidates the `audit_copy_token` associated with it, meaning both you and any third parties holding the token will no longer be able to use it to access Report data. Items associated with the Asset Report, the Asset Report itself and other Audit Copies of it are not affected and will remain accessible after removing the given Audit Copy.
     * @summary Remove Asset Report Audit Copy
     * @param {AssetReportAuditCopyRemoveRequest} assetReportAuditCopyRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportAuditCopyRemove(assetReportAuditCopyRemoveRequest: AssetReportAuditCopyRemoveRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AssetReportAuditCopyRemoveResponse>>;
    /**
     * The `/asset_report/create` endpoint initiates the process of creating an Asset Report, which can then be retrieved by passing the `asset_report_token` return value to the `/asset_report/get` or `/asset_report/pdf/get` endpoints.  The Asset Report takes some time to be created and is not available immediately after calling `/asset_report/create`. The exact amount of time to create the report will vary depending on how many days of history are requested and will typically range from a few seconds to about one minute. When the Asset Report is ready to be retrieved using `/asset_report/get` or `/asset_report/pdf/get`, Plaid will fire a `PRODUCT_READY` webhook. For full details of the webhook schema, see [Asset Report webhooks](https://plaid.com/docs/api/products/assets/#webhooks).  The `/asset_report/create` endpoint creates an Asset Report at a moment in time. Asset Reports are immutable. To get an updated Asset Report, use the `/asset_report/refresh` endpoint.
     * @summary Create an Asset Report
     * @param {AssetReportCreateRequest} assetReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportCreate(assetReportCreateRequest: AssetReportCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AssetReportCreateResponse>>;
    /**
     * By default, an Asset Report will contain all of the accounts on a given Item. In some cases, you may not want the Asset Report to contain all accounts. For example, you might have the end user choose which accounts are relevant in Link using the Account Select view, which you can enable in the dashboard. Or, you might always exclude certain account types or subtypes, which you can identify by using the `/accounts/get` endpoint. To narrow an Asset Report to only a subset of accounts, use the `/asset_report/filter` endpoint.  To exclude certain Accounts from an Asset Report, first use the `/asset_report/create` endpoint to create the report, then send the `asset_report_token` along with a list of `account_ids` to exclude to the `/asset_report/filter` endpoint, to create a new Asset Report which contains only a subset of the original Asset Report\'s data.  Because Asset Reports are immutable, calling `/asset_report/filter` does not alter the original Asset Report in any way; rather, `/asset_report/filter` creates a new Asset Report with a new token and id. Asset Reports created via `/asset_report/filter` do not contain new Asset data, and are not billed.  Plaid will fire a [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook once generation of the filtered Asset Report has completed.
     * @summary Filter Asset Report
     * @param {AssetReportFilterRequest} assetReportFilterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportFilter(assetReportFilterRequest: AssetReportFilterRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AssetReportFilterResponse>>;
    /**
     * The `/asset_report/get` endpoint retrieves the Asset Report in JSON format. Before calling `/asset_report/get`, you must first create the Asset Report using `/asset_report/create` (or filter an Asset Report using `/asset_report/filter`) and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  By default, an Asset Report includes transaction descriptions as returned by the bank, as opposed to parsed and categorized by Plaid. You can also receive cleaned and categorized transactions, as well as additional insights like merchant name or location information. We call this an Asset Report with Insights. An Asset Report with Insights provides transaction category, location, and merchant information in addition to the transaction strings provided in a standard Asset Report. To retrieve an Asset Report with Insights, call `/asset_report/get` endpoint with `include_insights` set to `true`.  For latency-sensitive applications, you can optionally call `/asset_report/create` with `options.add_ons` set to `[\"fast_assets\"]`. This will cause Plaid to create two versions of the Asset Report: one with only current and available balance and identity information, and then later on the complete Asset Report. You will receive separate webhooks for each version of the Asset Report.
     * @summary Retrieve an Asset Report
     * @param {AssetReportGetRequest} assetReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportGet(assetReportGetRequest: AssetReportGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AssetReportGetResponse>>;
    /**
     * The `/asset_report/pdf/get` endpoint retrieves the Asset Report in PDF format. Before calling `/asset_report/pdf/get`, you must first create the Asset Report using `/asset_report/create` (or filter an Asset Report using `/asset_report/filter`) and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  The response to `/asset_report/pdf/get` is the PDF binary data. The `request_id`  is returned in the `Plaid-Request-ID` header.  [View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf).
     * @summary Retrieve a PDF Asset Report
     * @param {AssetReportPDFGetRequest} assetReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportPdfGet(assetReportPDFGetRequest: AssetReportPDFGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<any>>;
    /**
     * An Asset Report is an immutable snapshot of a user\'s assets. In order to \"refresh\" an Asset Report you created previously, you can use the `/asset_report/refresh` endpoint to create a new Asset Report based on the old one, but with the most recent data available.  The new Asset Report will contain the same Items as the original Report, as well as the same filters applied by any call to `/asset_report/filter`. By default, the new Asset Report will also use the same parameters you submitted with your original `/asset_report/create` request, but the original `days_requested` value and the values of any parameters in the `options` object can be overridden with new values. To change these arguments, simply supply new values for them in your request to `/asset_report/refresh`. Submit an empty string (\"\") for any previously-populated fields you would like set as empty.
     * @summary Refresh an Asset Report
     * @param {AssetReportRefreshRequest} assetReportRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportRefresh(assetReportRefreshRequest: AssetReportRefreshRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AssetReportRefreshResponse>>;
    /**
     * The `/item/remove` endpoint allows you to invalidate an `access_token`, meaning you will not be able to create new Asset Reports with it. Removing an Item does not affect any Asset Reports or Audit Copies you have already created, which will remain accessible until you remove them specifically.  The `/asset_report/remove` endpoint allows you to remove access to an Asset Report. Removing an Asset Report invalidates its `asset_report_token`, meaning you will no longer be able to use it to access Report data or create new Audit Copies. Removing an Asset Report does not affect the underlying Items, but does invalidate any `audit_copy_tokens` associated with the Asset Report.
     * @summary Delete an Asset Report
     * @param {AssetReportRemoveRequest} assetReportRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportRemove(assetReportRemoveRequest: AssetReportRemoveRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AssetReportRemoveResponse>>;
    /**
     * The `/auth/get` endpoint returns the bank account and bank identification numbers (such as routing numbers, for US accounts) associated with an Item\'s checking, savings, and cash management accounts, along with high-level account data and balances when available.  Versioning note: In API version 2017-03-08, the schema of the `numbers` object returned by this endpoint is substantially different. For details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2018-05-22).
     * @summary Retrieve auth data
     * @param {AuthGetRequest} authGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    authGet(authGetRequest: AuthGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AuthGetResponse>>;
    /**
     * Use the `/bank_transfer/balance/get` endpoint to see the available balance in your bank transfer account. Debit transfers increase this balance once their status is posted. Credit transfers decrease this balance when they are created.  The transactable balance shows the amount in your account that you are able to use for transfers, and is essentially your available balance minus your minimum balance.  Note that this endpoint can only be used with FBO accounts, when using Bank Transfers in the Full Service configuration. It cannot be used on your own account when using Bank Transfers in the BTS Platform configuration.
     * @summary Get balance of your Bank Transfer account
     * @param {BankTransferBalanceGetRequest} bankTransferBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferBalanceGet(bankTransferBalanceGetRequest: BankTransferBalanceGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BankTransferBalanceGetResponse>>;
    /**
     * Use the `/bank_transfer/cancel` endpoint to cancel a bank transfer.  A transfer is eligible for cancelation if the `cancellable` property returned by `/bank_transfer/get` is `true`.
     * @summary Cancel a bank transfer
     * @param {BankTransferCancelRequest} bankTransferCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferCancel(bankTransferCancelRequest: BankTransferCancelRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BankTransferCancelResponse>>;
    /**
     * Use the `/bank_transfer/create` endpoint to initiate a new bank transfer.
     * @summary Create a bank transfer
     * @param {BankTransferCreateRequest} bankTransferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferCreate(bankTransferCreateRequest: BankTransferCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BankTransferCreateResponse>>;
    /**
     * Use the `/bank_transfer/event/list` endpoint to get a list of Plaid-initiated ACH or bank transfer events based on specified filter criteria. When using Auth with micro-deposit verification enabled, this endpoint can be used to fetch status updates on ACH micro-deposits. For more details, see [micro-deposit events](https://plaid.com/docs/auth/coverage/microdeposit-events/).
     * @summary List bank transfer events
     * @param {BankTransferEventListRequest} bankTransferEventListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferEventList(bankTransferEventListRequest: BankTransferEventListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BankTransferEventListResponse>>;
    /**
     * `/bank_transfer/event/sync` allows you to request up to the next 25 Plaid-initiated bank transfer events that happened after a specific `event_id`. When using Auth with micro-deposit verification enabled, this endpoint can be used to fetch status updates on ACH micro-deposits. For more details, see [micro-deposit events](https://www.plaid.com/docs/auth/coverage/microdeposit-events/).
     * @summary Sync bank transfer events
     * @param {BankTransferEventSyncRequest} bankTransferEventSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferEventSync(bankTransferEventSyncRequest: BankTransferEventSyncRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BankTransferEventSyncResponse>>;
    /**
     * The `/bank_transfer/get` fetches information about the bank transfer corresponding to the given `bank_transfer_id`.
     * @summary Retrieve a bank transfer
     * @param {BankTransferGetRequest} bankTransferGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferGet(bankTransferGetRequest: BankTransferGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BankTransferGetResponse>>;
    /**
     * Use the `/bank_transfer/list` endpoint to see a list of all your bank transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired bank transfers.
     * @summary List bank transfers
     * @param {BankTransferListRequest} bankTransferListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferList(bankTransferListRequest: BankTransferListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BankTransferListResponse>>;
    /**
     * As an alternative to adding Items via Link, you can also use the `/bank_transfer/migrate_account` endpoint to migrate known account and routing numbers to Plaid Items.  Note that Items created in this way are not compatible with endpoints for other products, such as `/accounts/balance/get`, and can only be used with Bank Transfer endpoints.  If you require access to other endpoints, create the Item through Link instead.  Access to `/bank_transfer/migrate_account` is not enabled by default; to obtain access, contact your Plaid Account Manager.
     * @summary Migrate account into Bank Transfers
     * @param {BankTransferMigrateAccountRequest} bankTransferMigrateAccountRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferMigrateAccount(bankTransferMigrateAccountRequest: BankTransferMigrateAccountRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BankTransferMigrateAccountResponse>>;
    /**
     * The `/bank_transfer/sweep/get` endpoint fetches information about the sweep corresponding to the given `sweep_id`.
     * @summary Retrieve a sweep
     * @param {BankTransferSweepGetRequest} bankTransferSweepGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferSweepGet(bankTransferSweepGetRequest: BankTransferSweepGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BankTransferSweepGetResponse>>;
    /**
     * The `/bank_transfer/sweep/list` endpoint fetches information about the sweeps matching the given filters.
     * @summary List sweeps
     * @param {BankTransferSweepListRequest} bankTransferSweepListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferSweepList(bankTransferSweepListRequest: BankTransferSweepListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BankTransferSweepListResponse>>;
    /**
     * Use `/beacon/account_risk/v1/evaluate` to get risk insights for a linked account.
     * @summary Evaluate risk of a bank account
     * @param {BeaconAccountRiskEvaluateRequest} beaconAccountRiskEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconAccountRiskEvaluate(beaconAccountRiskEvaluateRequest: BeaconAccountRiskEvaluateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconAccountRiskEvaluateResponse>>;
    /**
     * Returns a Beacon Duplicate for a given Beacon Duplicate id.  A Beacon Duplicate represents a pair of similar Beacon Users within your organization.  Two Beacon User revisions are returned for each Duplicate record in either the `beacon_user1` or `beacon_user2` response fields.  The `analysis` field in the response indicates which fields matched between `beacon_user1` and `beacon_user2`.
     * @summary Get a Beacon Duplicate
     * @param {BeaconDuplicateGetRequest} beaconDuplicateGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconDuplicateGet(beaconDuplicateGetRequest: BeaconDuplicateGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconDuplicateGetResponse>>;
    /**
     * Create a fraud report for a given Beacon User.
     * @summary Create a Beacon Report
     * @param {BeaconReportCreateRequest} beaconReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportCreate(beaconReportCreateRequest: BeaconReportCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconReportCreateResponse>>;
    /**
     * Returns a Beacon report for a given Beacon report id.
     * @summary Get a Beacon Report
     * @param {BeaconReportGetRequest} beaconReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportGet(beaconReportGetRequest: BeaconReportGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconReportGetResponse>>;
    /**
     * Use the `/beacon/report/list` endpoint to view all Beacon Reports you created for a specific Beacon User. The reports returned by this endpoint are exclusively reports you created for a specific user. A Beacon User can only have one active report at a time, but a new report can be created if a previous report has been deleted. The results from this endpoint are paginated; the `next_cursor` field will be populated if there is another page of results that can be retrieved. To fetch the next page, pass the `next_cursor` value as the `cursor` parameter in the next request.
     * @summary List Beacon Reports for a Beacon User
     * @param {BeaconReportListRequest} beaconReportListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportList(beaconReportListRequest: BeaconReportListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconReportListResponse>>;
    /**
     * Returns a Beacon Report Syndication for a given Beacon Report Syndication id.
     * @summary Get a Beacon Report Syndication
     * @param {BeaconReportSyndicationGetRequest} beaconReportSyndicationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportSyndicationGet(beaconReportSyndicationGetRequest: BeaconReportSyndicationGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconReportSyndicationGetResponse>>;
    /**
     * Use the `/beacon/report_syndication/list` endpoint to view all Beacon Reports that have been syndicated to a specific Beacon User. This endpoint returns Beacon Report Syndications which are references to Beacon Reports created either by you, or another Beacon customer, that matched the specified Beacon User. A Beacon User can have multiple active Beacon Report Syndications at once. The results from this endpoint are paginated; the `next_cursor` field will be populated if there is another page of results that can be retrieved. To fetch the next page, pass the `next_cursor` value as the `cursor` parameter in the next request.
     * @summary List Beacon Report Syndications for a Beacon User
     * @param {BeaconReportSyndicationListRequest} beaconReportSyndicationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportSyndicationList(beaconReportSyndicationListRequest: BeaconReportSyndicationListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconReportSyndicationListResponse>>;
    /**
     * Get Account Insights for all Accounts linked to this Beacon User. The insights for each account are computed based on the information that was last retrieved from the financial institution.
     * @summary Get Account Insights for a Beacon User
     * @param {BeaconUserAccountInsightsGetRequest} beaconUserAccountInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserAccountInsightsGet(beaconUserAccountInsightsGetRequest: BeaconUserAccountInsightsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconUserAccountInsightsGetResponse>>;
    /**
     * Create and scan a Beacon User against your Beacon Program, according to your program\'s settings.  When you submit a new user to `/beacon/user/create`, several checks are performed immediately:    - The user\'s PII (provided within the `user` object) is searched against all other users within the Beacon Program you specified. If a match is found that violates your program\'s \"Duplicate Information Filtering\" settings, the user will be returned with a status of `pending_review`.    - The user\'s PII is also searched against all fraud reports created by your organization across all of your Beacon Programs. If the user\'s data matches a fraud report that your team created, the user will be returned with a status of `rejected`.    - Finally, the user\'s PII is searched against all fraud report shared with the Beacon Network by other companies. If a matching fraud report is found, the user will be returned with a `pending_review` status if your program has enabled automatic flagging based on network fraud.
     * @summary Create a Beacon User
     * @param {BeaconUserCreateRequest} beaconUserCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserCreate(beaconUserCreateRequest: BeaconUserCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconUserCreateResponse>>;
    /**
     * Fetch a Beacon User.  The Beacon User is returned with all of their associated information and a `status` based on the Beacon Network duplicate record and fraud checks.
     * @summary Get a Beacon User
     * @param {BeaconUserGetRequest} beaconUserGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserGet(beaconUserGetRequest: BeaconUserGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconUserGetResponse>>;
    /**
     * List all changes to the Beacon User in reverse-chronological order.
     * @summary List a Beacon User\'s history
     * @param {BeaconUserHistoryListRequest} beaconUserHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserHistoryList(beaconUserHistoryListRequest: BeaconUserHistoryListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconUserHistoryListResponse>>;
    /**
     * Update the status of a Beacon User.  When updating a Beacon User\'s status via this endpoint, Plaid validates that the status change is consistent with the related state for this Beacon User. Specifically, we will check:  1. Whether there are any associated Beacon Reports connected to the Beacon User, and 2. Whether there are any confirmed Beacon Report Syndications connected to the Beacon User.  When updating a Beacon User\'s status to \"rejected\", we enforce that either a Beacon Report has been created for the Beacon User or a Beacon Report Syndication has been confirmed. When updating a Beacon User\'s status to \"cleared\", we enforce that there are no active Beacon Reports or confirmed Beacon Report Syndications associated with the user. If you previously created a Beacon Report for this user, you must delete it before updating the Beacon User\'s status to \"cleared\". There are no restrictions on updating a Beacon User\'s status to \"pending_review\".  If these conditions are not met, the request will be rejected with an error explaining the issue.
     * @summary Review a Beacon User
     * @param {BeaconUserReviewRequest} beaconUserReviewRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserReview(beaconUserReviewRequest: BeaconUserReviewRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconUserGetResponse>>;
    /**
     * Update the identity data for a Beacon User in your Beacon Program or add new accounts to the Beacon User.  Similar to `/beacon/user/create`, several checks are performed immediately when you submit an identity data change to `/beacon/user/update`:    - The user\'s updated PII is searched against all other users within the Beacon Program you specified. If a match is found that violates your program\'s \"Duplicate Information Filtering\" settings, the user will be returned with a status of `pending_review`.    - The user\'s updated PII is also searched against all fraud reports created by your organization across all of your Beacon Programs. If the user\'s data matches a fraud report that your team created, the user will be returned with a status of `rejected`.    - Finally, the user\'s PII is searched against all fraud report shared with the Beacon Network by other companies. If a matching fraud report is found, the user will be returned with a `pending_review` status if your program has enabled automatic flagging based on network fraud.  Plaid maintains a version history for each Beacon User, so the Beacon User\'s identity data before and after the update is retained as separate versions.
     * @summary Update the identity data of a Beacon User
     * @param {BeaconUserUpdateRequest} beaconUserUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserUpdate(beaconUserUpdateRequest: BeaconUserUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<BeaconUserUpdateResponse>>;
    /**
     * Send a request to the `/categories/get` endpoint to get detailed information on categories returned by Plaid. This endpoint does not require authentication.  All implementations are recommended to use the newer `personal_finance_category` taxonomy instead of the older `category` taxonomy supported by this endpoint. The [`personal_finance_category taxonomy` CSV file](https://plaid.com/documents/transactions-personal-finance-category-taxonomy.csv) is available for download and is not accessible via API.
     * @summary Get categories
     * @param {object} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    categoriesGet(body: object, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CategoriesGetResponse>>;
    /**
     * List a historical log of Item consent events. Consent logs are only available for events occurring on or after November 7, 2024. Up to three years of consent logs will be available via the endpoint.
     * @summary List a historical log of item consent events
     * @param {ConsentEventsGetRequest} consentEventsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    consentEventsGet(consentEventsGetRequest: ConsentEventsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ConsentEventsGetResponse>>;
    /**
     * Retrieves all existing CRB Bank Income and Base reports for the consumer in PDF format.  Response is PDF binary data. The `request_id` is returned in the `Plaid-Request-ID` header.
     * @summary Retrieve a PDF Reports
     * @param {ConsumerReportPDFGetRequest} consumerReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    consumerReportPdfGet(consumerReportPDFGetRequest: ConsumerReportPDFGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<any>>;
    /**
     * `/cra/bank_income/create` creates a CRA report for income verification
     * @summary Create a CRA report for income verification
     * @param {CraBankIncomeCreateRequest} craBankIncomeCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craBankIncomeCreate(craBankIncomeCreateRequest: CraBankIncomeCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraBankIncomeCreateResponse>>;
    /**
     * `/cra/bank_income/get` returns the bank income report(s) for a specified user.
     * @summary Retrieve information from the bank accounts used for income verification
     * @param {CraBankIncomeGetRequest} craBankIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craBankIncomeGet(craBankIncomeGetRequest: CraBankIncomeGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraBankIncomeGetResponse>>;
    /**
     * This endpoint allows you to retrieve the Base Report for your user, allowing you to receive comprehensive bank account and cash flow data. You should call this endpoint after you\'ve received a `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn\'t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.
     * @summary Retrieve a Base Report
     * @param {CraCheckReportBaseReportGetRequest} craCheckReportBaseReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportBaseReportGet(craCheckReportBaseReportGetRequest: CraCheckReportBaseReportGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraCheckReportBaseReportGetResponse>>;
    /**
     * This endpoint allows you to retrieve the Cashflow Insights report for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the insights, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `cra_cashflow_insights` product or have generated a report using `/cra/check_report/create`, we will generate the insights when you call this endpoint. In this case, you may optionally provide parameters under `options` to configure which insights you want to receive.
     * @summary Retrieve cash flow insights from your user\'s banking data
     * @param {CraCheckReportCashflowInsightsGetRequest} craCheckReportCashflowInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportCashflowInsightsGet(craCheckReportCashflowInsightsGetRequest: CraCheckReportCashflowInsightsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraCheckReportCashflowInsightsGetResponse>>;
    /**
     * `/cra/check_report/create` creates a Consumer Report powered by Plaid Check. You can call this endpoint to create a new report if `consumer_report_permissible_purpose` was omitted during Link token creation. If you did provide a `consumer_report_permissible_purpose` during Link token creation, then Plaid Check will automatically begin creating a Consumer Report once the user completes the Link process, and it is not necessary to call `/cra/check_report/create` before retrieving the report.   `/cra/check_report/create` can also be used to refresh data in an existing report. A Consumer Report will last for 24 hours before expiring; you should call any `/get` endpoints on the report before it expires. If a report expires, you can call `/cra/check_report/create` again to re-generate it. Note that refreshing or regenerating a report is a billable event.
     * @summary Create a Consumer Report
     * @param {CraCheckReportCreateRequest} craCheckReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportCreate(craCheckReportCreateRequest: CraCheckReportCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraCheckReportCreateResponse>>;
    /**
     * This endpoint allows you to retrieve the Income Insights report for your user.  You should call this endpoint after you\'ve received a `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.
     * @summary Retrieve cash flow information from your user\'s banks
     * @param {CraCheckReportIncomeInsightsGetRequest} craCheckReportIncomeInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportIncomeInsightsGet(craCheckReportIncomeInsightsGetRequest: CraCheckReportIncomeInsightsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraCheckReportIncomeInsightsGetResponse>>;
    /**
     * This endpoint allows you to retrieve the Network Insights product for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `cra_network_attributes` product or have generated a report using `/cra/check_report/create`, we will generate the attributes when you call this endpoint.
     * @summary Retrieve network attributes for the user
     * @param {CraCheckReportNetworkInsightsGetRequest} craCheckReportNetworkInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportNetworkInsightsGet(craCheckReportNetworkInsightsGetRequest: CraCheckReportNetworkInsightsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraCheckReportNetworkInsightsGetResponse>>;
    /**
     * This endpoint allows you to retrieve the Partner Insights report for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `credit_partner_insights` product or have generated a report using `/cra/check_report/create`, we will call our partners to generate the insights when you call this endpoint. In this case, you may optionally provide parameters under `options` to configure which insights you want to receive.
     * @summary Retrieve cash flow insights from partners
     * @param {CraCheckReportPartnerInsightsGetRequest} craCheckReportPartnerInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportPartnerInsightsGet(craCheckReportPartnerInsightsGetRequest: CraCheckReportPartnerInsightsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraCheckReportPartnerInsightsGetResponse>>;
    /**
     * `/cra/check_report/pdf/get` retrieves the most recent Consumer Report in PDF format. By default, the most recent Base Report (if it exists) for the user will be returned. To request that the most recent Income Insights report be included in the PDF as well, use the `add-ons` field.
     * @summary Retrieve Consumer Reports as a PDF
     * @param {CraCheckReportPDFGetRequest} craCheckReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportPdfGet(craCheckReportPDFGetRequest: CraCheckReportPDFGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<any>>;
    /**
     * `/cra/loans/applications/register` registers loan applications and decisions.
     * @summary Register loan applications and decisions.
     * @param {CraLoansApplicationsRegisterRequest} craLoansApplicationsRegisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansApplicationsRegister(craLoansApplicationsRegisterRequest: CraLoansApplicationsRegisterRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraLoansApplicationsRegisterResponse>>;
    /**
     * `/cra/loans/register` registers a list of loans to their applicants.
     * @summary Register a list of loans to their applicants.
     * @param {CRALoansRegisterRequest} cRALoansRegisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansRegister(cRALoansRegisterRequest: CRALoansRegisterRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraLoansRegisterResponse>>;
    /**
     * `/cra/loans/unregister` indicates the loans have reached a final status and no further updates are expected.
     * @summary Unregister a list of loans.
     * @param {CraLoansUnregisterRequest} craLoansUnregisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansUnregister(craLoansUnregisterRequest: CraLoansUnregisterRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraLoanUnregisterResponse>>;
    /**
     * `/cra/loans/update` updates loan information such as the status and payment history.
     * @summary Updates loan data.
     * @param {CraLoansUpdateRequest} craLoansUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansUpdate(craLoansUpdateRequest: CraLoansUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraLoansUpdateResponse>>;
    /**
     * This endpoint allows you to retrieve a Monitoring Insights report by passing in the `user_token` referred to in the webhook you received.
     * @summary Retrieve a Monitoring Insights Report
     * @param {CraMonitoringInsightsGetRequest} craMonitoringInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craMonitoringInsightsGet(craMonitoringInsightsGetRequest: CraMonitoringInsightsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraMonitoringInsightsGetResponse>>;
    /**
     * This endpoint allows you to subscribe to insights for a user\'s linked CRA items, which are updated every day (best-effort).
     * @summary Subscribe to Monitoring Insights
     * @param {CraMonitoringInsightsSubscribeRequest} craMonitoringInsightsSubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craMonitoringInsightsSubscribe(craMonitoringInsightsSubscribeRequest: CraMonitoringInsightsSubscribeRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraMonitoringInsightsSubscribeResponse>>;
    /**
     * This endpoint allows you to unsubscribe from previously subscribed Monitoring Insights.
     * @summary Unsubscribe from Monitoring Insights
     * @param {CraMonitoringInsightsUnsubscribeRequest} craMonitoringInsightsUnsubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craMonitoringInsightsUnsubscribe(craMonitoringInsightsUnsubscribeRequest: CraMonitoringInsightsUnsubscribeRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraMonitoringInsightsUnsubscribeResponse>>;
    /**
     * `/cra/partner_insights/get` returns cash flow insights for a specified user.
     * @summary Retrieve cash flow insights from the bank accounts used for income verification
     * @param {CraPartnerInsightsGetRequest} craPartnerInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craPartnerInsightsGet(craPartnerInsightsGetRequest: CraPartnerInsightsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CraPartnerInsightsGetResponse>>;
    /**
     * The `/payment_initiation/payment/token/create` endpoint has been deprecated. New Plaid customers will be unable to use this endpoint, and existing customers are encouraged to migrate to the newer, `link_token`-based flow. The recommended flow is to provide the `payment_id` to `/link/token/create`, which returns a `link_token` used to initialize Link.  The `/payment_initiation/payment/token/create` is used to create a `payment_token`, which can then be used in Link initialization to enter a payment initiation flow. You can only use a `payment_token` once. If this attempt fails, the end user aborts the flow, or the token expires, you will need to create a new payment token. Creating a new payment token does not require end user input.
     * @summary Create payment token
     * @param {PaymentInitiationPaymentTokenCreateRequest} paymentInitiationPaymentTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createPaymentToken(paymentInitiationPaymentTokenCreateRequest: PaymentInitiationPaymentTokenCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationPaymentTokenCreateResponse>>;
    /**
     * The `credit/asset_report/freddie_mac/get` endpoint retrieves the Asset Report in Freddie Mac\'s JSON format.
     * @summary Retrieve an Asset Report with Freddie Mac format. Only Freddie Mac can use this endpoint.
     * @param {{ [key: string]: object; }} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditAssetReportFreddieMacGet(requestBody: {
        [key: string]: object;
    }, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AssetReportFreddieGetResponse>>;
    /**
     * Plaid can create an Audit Copy token of an Asset Report and/or Income Report to share with participating Government Sponsored Entity (GSE). If you participate in the Day 1 Certainty™ program, Plaid can supply an Audit Copy token directly to Fannie Mae on your behalf. An Audit Copy token contains the same underlying data as the Asset Report and/or Income Report (result of /credit/payroll_income/get).  Use the `/credit/audit_copy_token/create` endpoint to create an `audit_copy_token` and then pass that token to the GSE who needs access.
     * @summary Create Asset or Income Report Audit Copy Token
     * @param {CreditAuditCopyTokenCreateRequest} creditAuditCopyTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditAuditCopyTokenCreate(creditAuditCopyTokenCreateRequest: CreditAuditCopyTokenCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditAuditCopyTokenCreateResponse>>;
    /**
     * The `/credit/audit_copy_token/update` endpoint updates an existing  Audit Copy Token by adding the report tokens in the `report_tokens` field to the `audit_copy_token`. If the Audit Copy Token already contains a report of a certain type, it will be replaced with the token provided in the `report_tokens` field.
     * @summary Update an Audit Copy Token
     * @param {CreditAuditCopyTokenUpdateRequest} creditAuditCopyTokenUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditAuditCopyTokenUpdate(creditAuditCopyTokenUpdateRequest: CreditAuditCopyTokenUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditAuditCopyTokenUpdateResponse>>;
    /**
     * `/credit/bank_employment/get` returns the employment report(s) derived from bank transaction data for a specified user.
     * @summary Retrieve information from the bank accounts used for employment verification
     * @param {CreditBankEmploymentGetRequest} creditBankEmploymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankEmploymentGet(creditBankEmploymentGetRequest: CreditBankEmploymentGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditBankEmploymentGetResponse>>;
    /**
     * `/credit/bank_income/get` returns the bank income report(s) for a specified user. A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use [Multi-Item Link](https://plaid.com/docs/link/multi-item-link). To return older reports, use the `options.count` field.
     * @summary Retrieve information from the bank accounts used for income verification
     * @param {CreditBankIncomeGetRequest} creditBankIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomeGet(creditBankIncomeGetRequest: CreditBankIncomeGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditBankIncomeGetResponse>>;
    /**
     * `/credit/bank_income/pdf/get` returns the most recent bank income report for a specified user in PDF format.  A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use [Multi-Item Link](https://plaid.com/docs/link/multi-item-link).
     * @summary Retrieve information from the bank accounts used for income verification in PDF format
     * @param {CreditBankIncomePDFGetRequest} creditBankIncomePDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomePdfGet(creditBankIncomePDFGetRequest: CreditBankIncomePDFGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<any>>;
    /**
     * `/credit/bank_income/refresh` refreshes the most recent bank income report data for a specific user. If the most recent bank income report is no longer valid (i.e. deleted), the endpoint will refresh the most recent valid report instead.
     * @summary Refresh a user\'s bank income information
     * @param {CreditBankIncomeRefreshRequest} creditBankIncomeRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomeRefresh(creditBankIncomeRefreshRequest: CreditBankIncomeRefreshRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditBankIncomeRefreshResponse>>;
    /**
     * `/credit/bank_income/webhook/update` allows you to subscribe or unsubscribe a user for income webhook notifications. By default, all users start out unsubscribed.  If a user is subscribed, on significant changes to the user\'s income profile, you will receive a `BANK_INCOME_REFRESH_UPDATE` webhook, prompting you to refresh bank income data for the user.
     * @summary Subscribe and unsubscribe to proactive notifications for a user\'s income profile
     * @param {CreditBankIncomeWebhookUpdateRequest} creditBankIncomeWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomeWebhookUpdate(creditBankIncomeWebhookUpdateRequest: CreditBankIncomeWebhookUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditBankIncomeWebhookUpdateResponse>>;
    /**
     * `/credit/bank_statements/uploads/get` returns parsed data from bank statements uploaded by users as part of the Document Income flow. If your account is not enabled for Document Parsing, contact your account manager to request access.
     * @summary Retrieve data for a user\'s uploaded bank statements
     * @param {CreditBankStatementsUploadsGetRequest} creditBankStatementsUploadsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankStatementsUploadsGet(creditBankStatementsUploadsGetRequest: CreditBankStatementsUploadsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditBankStatementsUploadsGetResponse>>;
    /**
     * `/credit/employment/get` returns a list of items with employment information from a user\'s payroll provider that was verified by an end user.
     * @summary Retrieve a summary of an individual\'s employment information
     * @param {CreditEmploymentGetRequest} creditEmploymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditEmploymentGet(creditEmploymentGetRequest: CreditEmploymentGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditEmploymentGetResponse>>;
    /**
     * The `credit/asset_report/freddie_mac/get` endpoint retrieves the Verification of Assets and Verification of Employment reports.
     * @summary Retrieve an Asset Report with Freddie Mac format (aka VOA - Verification Of Assets), and a Verification Of Employment (VOE) report if this one is available. Only Freddie Mac can use this endpoint.
     * @param {CreditFreddieMacReportsGetRequest} creditFreddieMacReportsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditFreddieMacReportsGet(creditFreddieMacReportsGetRequest: CreditFreddieMacReportsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditFreddieMacReportsGetResponse>>;
    /**
     * This endpoint gets payroll income information for a specific user, either as a result of the user connecting to their payroll provider or uploading a pay related document.
     * @summary Retrieve a user\'s payroll information
     * @param {CreditPayrollIncomeGetRequest} creditPayrollIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeGet(creditPayrollIncomeGetRequest: CreditPayrollIncomeGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditPayrollIncomeGetResponse>>;
    /**
     * `/credit/payroll_income/parsing_config/update` updates the parsing configuration for a document income verification.
     * @summary Update the parsing configuration for a document income verification
     * @param {{ [key: string]: object; }} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeParsingConfigUpdate(requestBody: {
        [key: string]: object;
    }, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditPayrollIncomeParsingConfigUpdateResponse>>;
    /**
     * `/credit/payroll_income/precheck` is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification. If the user is eligible for digital verification, that information will be associated with the user token, and in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.  While all request fields are optional, providing `employer` data will increase the chance of receiving a useful result.  When testing in Sandbox, you can control the results by providing special test values in the `employer` and `access_tokens` fields. `employer_good` and `employer_bad` will result in `HIGH` and `LOW` confidence values, respectively. `employer_multi` will result in a `HIGH` confidence with multiple payroll options. Likewise, `access_good` and `access_bad` will result in `HIGH` and `LOW` confidence values, respectively. Any other value for `employer` and `access_tokens` in Sandbox will result in `UNKNOWN` confidence.
     * @summary Check income verification eligibility and optimize conversion
     * @param {CreditPayrollIncomePrecheckRequest} creditPayrollIncomePrecheckRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomePrecheck(creditPayrollIncomePrecheckRequest: CreditPayrollIncomePrecheckRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditPayrollIncomePrecheckResponse>>;
    /**
     * `/credit/payroll_income/refresh` refreshes a given digital payroll income verification.
     * @summary Refresh a digital payroll income verification
     * @param {CreditPayrollIncomeRefreshRequest} creditPayrollIncomeRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeRefresh(creditPayrollIncomeRefreshRequest: CreditPayrollIncomeRefreshRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditPayrollIncomeRefreshResponse>>;
    /**
     * `/credit/payroll_income/risk_signals/get` can be used as part of the Document Income flow to assess a user-uploaded document for signs of potential fraud or tampering. It returns a risk score for each uploaded document that indicates the likelihood of the document being fraudulent, in addition to details on the individual risk signals contributing to the score.  To trigger risk signal generation for an Item, call `/link/token/create` with `parsing_config` set to include `risk_signals`, or call `/credit/payroll_income/parsing_config/update`. Once risk signal generation has been triggered, `/credit/payroll_income/risk_signals/get` can be called at any time after the `INCOME_VERIFICATION_RISK_SIGNALS` webhook has been fired.  `/credit/payroll_income/risk_signals/get` is offered as an add-on to Document Income and is billed separately. To request access to this endpoint, submit a product access request or contact your Plaid account manager.
     * @summary Retrieve fraud insights for a user\'s manually uploaded document(s).
     * @param {CreditPayrollIncomeRiskSignalsGetRequest} creditPayrollIncomeRiskSignalsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeRiskSignalsGet(creditPayrollIncomeRiskSignalsGetRequest: CreditPayrollIncomeRiskSignalsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditPayrollIncomeRiskSignalsGetResponse>>;
    /**
     * Plaid can share an Asset Report directly with a participating third party on your behalf. The shared Asset Report is the exact same Asset Report originally created in `/asset_report/create`.  To grant a third party access to an Asset Report, use the `/credit/relay/create` endpoint to create a `relay_token` and then pass that token to your third party. Each third party has its own `secondary_client_id`; for example, `ce5bd328dcd34123456`. You\'ll need to create a separate `relay_token` for each third party that needs access to the report on your behalf.
     * @summary Create a relay token to share an Asset Report with a partner client
     * @param {CreditRelayCreateRequest} creditRelayCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayCreate(creditRelayCreateRequest: CreditRelayCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditRelayCreateResponse>>;
    /**
     * `/credit/relay/get` allows third parties to receive a report that was shared with them, using a `relay_token` that was created by the report owner.
     * @summary Retrieve the reports associated with a relay token that was shared with you
     * @param {CreditRelayGetRequest} creditRelayGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayGet(creditRelayGetRequest: CreditRelayGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<AssetReportGetResponse>>;
    /**
     * `/credit/relay/pdf/get` allows third parties to receive a pdf report that was shared with them, using a `relay_token` that was created by the report owner.  The `/credit/relay/pdf/get` endpoint retrieves the Asset Report in PDF format. Before calling `/credit/relay/pdf/get`, you must first create the Asset Report using `/credit/relay/create` and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  The response to `/credit/relay/pdf/get` is the PDF binary data. The `request_id` is returned in the `Plaid-Request-ID` header.  [View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf).
     * @summary Retrieve the pdf reports associated with a relay token that was shared with you (beta)
     * @param {CreditRelayPDFGetRequest} creditRelayPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayPdfGet(creditRelayPDFGetRequest: CreditRelayPDFGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<any>>;
    /**
     * The `/credit/relay/refresh` endpoint allows third parties to refresh a report that was relayed to them, using a `relay_token` that was created by the report owner. A new report will be created with the original report parameters, but with the most recent data available based on the `days_requested` value of the original report.
     * @summary Refresh a report of a relay token
     * @param {CreditRelayRefreshRequest} creditRelayRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayRefresh(creditRelayRefreshRequest: CreditRelayRefreshRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditRelayRefreshResponse>>;
    /**
     * The `/credit/relay/remove` endpoint allows you to invalidate a `relay_token`. The third party holding the token will no longer be able to access or refresh the reports which the `relay_token` gives access to. The original report, associated Items, and other relay tokens that provide access to the same report are not affected and will remain accessible after removing the given `relay_token`.
     * @summary Remove relay token
     * @param {CreditRelayRemoveRequest} creditRelayRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayRemove(creditRelayRemoveRequest: CreditRelayRemoveRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditRelayRemoveResponse>>;
    /**
     * The `/credit/audit_copy_token/remove` endpoint allows you to remove an Audit Copy. Removing an Audit Copy invalidates the `audit_copy_token` associated with it, meaning both you and any third parties holding the token will no longer be able to use it to access Report data. Items associated with the Report data and other Audit Copies of it are not affected and will remain accessible after removing the given Audit Copy.
     * @summary Remove an Audit Copy token
     * @param {CreditAuditCopyTokenRemoveRequest} creditAuditCopyTokenRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditReportAuditCopyRemove(creditAuditCopyTokenRemoveRequest: CreditAuditCopyTokenRemoveRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditAuditCopyTokenRemoveResponse>>;
    /**
     * This endpoint can be used for your end users after they complete the Link flow. This endpoint returns a list of Link sessions that your user completed, where each session includes the results from the Link flow.  These results include details about the Item that was created and some product related metadata (showing, for example, whether the user finished the bank income verification step).
     * @summary Retrieve Link sessions for your user
     * @param {CreditSessionsGetRequest} creditSessionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditSessionsGet(creditSessionsGetRequest: CreditSessionsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<CreditSessionsGetResponse>>;
    /**
     * The `/dashboard_user/get` endpoint provides details (such as email address) about a specific Dashboard user based on the `dashboard_user_id` field, which is returned in the `audit_trail` object of certain Monitor and Beacon endpoints. This can be used to identify the specific reviewer who performed a Dashboard action.
     * @summary Retrieve a dashboard user
     * @param {DashboardUserGetRequest} dashboardUserGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    dashboardUserGet(dashboardUserGetRequest: DashboardUserGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<DashboardUserGetResponse>>;
    /**
     * The `/dashboard_user/list` endpoint provides details (such as email address) all Dashboard users associated with your account. This can use used to audit or track the list of reviewers for Monitor, Beacon, and Identity Verification products.
     * @summary List dashboard users
     * @param {DashboardUserListRequest} dashboardUserListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    dashboardUserList(dashboardUserListRequest: DashboardUserListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<DashboardUserListResponse>>;
    /**
     * This endpoint provides an alternative to `/deposit_switch/create` for customers who have not yet fully integrated with Plaid Exchange. Like `/deposit_switch/create`, it creates a deposit switch entity that will be persisted throughout the lifecycle of the switch.
     * @summary (Deprecated) Create a deposit switch without using Plaid Exchange
     * @param {DepositSwitchAltCreateRequest} depositSwitchAltCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchAltCreate(depositSwitchAltCreateRequest: DepositSwitchAltCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<DepositSwitchAltCreateResponse>>;
    /**
     * This endpoint creates a deposit switch entity that will be persisted throughout the lifecycle of the switch.
     * @summary (Deprecated) Create a deposit switch
     * @param {DepositSwitchCreateRequest} depositSwitchCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchCreate(depositSwitchCreateRequest: DepositSwitchCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<DepositSwitchCreateResponse>>;
    /**
     * This endpoint returns information related to how the user has configured their payroll allocation and the state of the switch. You can use this information to build logic related to the user\'s direct deposit allocation preferences.
     * @summary (Deprecated) Retrieve a deposit switch
     * @param {DepositSwitchGetRequest} depositSwitchGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchGet(depositSwitchGetRequest: DepositSwitchGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<DepositSwitchGetResponse>>;
    /**
     * In order for the end user to take action, you will need to create a public token representing the deposit switch. This token is used to initialize Link. It can be used one time and expires after 30 minutes.
     * @summary (Deprecated) Create a deposit switch token
     * @param {DepositSwitchTokenCreateRequest} depositSwitchTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchTokenCreate(depositSwitchTokenCreateRequest: DepositSwitchTokenCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<DepositSwitchTokenCreateResponse>>;
    /**
     * `/employers/search` allows you the ability to search Plaid’s database of known employers, for use with Deposit Switch. You can use this endpoint to look up a user\'s employer in order to confirm that they are supported. Users with non-supported employers can then be routed out of the Deposit Switch flow.  The data in the employer database is currently limited. As the Deposit Switch and Income products progress through their respective beta periods, more employers are being regularly added. Because the employer database is frequently updated, we recommend that you do not cache or store data from this endpoint for more than a day.
     * @summary Search employer database
     * @param {EmployersSearchRequest} employersSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    employersSearch(employersSearchRequest: EmployersSearchRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<EmployersSearchResponse>>;
    /**
     * `/employment/verification/get` returns a list of employments through a user payroll that was verified by an end user.  This endpoint has been deprecated; new integrations should use `/credit/employment/get` instead.
     * @summary (Deprecated) Retrieve a summary of an individual\'s employment information
     * @param {EmploymentVerificationGetRequest} employmentVerificationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    employmentVerificationGet(employmentVerificationGetRequest: EmploymentVerificationGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<EmploymentVerificationGetResponse>>;
    /**
     * A generic webhook receiver endpoint for FDX Event Notifications
     * @summary Webhook receiver for fdx notifications
     * @param {FDXNotification} fDXNotification
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    fdxNotifications(fDXNotification: FDXNotification, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<void>>;
    /**
     * Get a specific recipient
     * @summary Get Recipient
     * @param {string} recipientId Recipient Identifier. Uniquely identifies the recipient
     * @param {string} [oAUTHSTATEID] The value that is passed into the OAuth URI \&#39;state\&#39; query parameter.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRecipient(recipientId: string, oAUTHSTATEID?: string | undefined, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<GetRecipientResponse>>;
    /**
     * Returns a list of Recipients
     * @summary Get Recipients
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRecipients(options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<GetRecipientsResponse>>;
    /**
     * Use `/identity/documents/uploads/get` to retrieve identity details when using [Identity Document Upload](https://plaid.com/docs/identity/identity-document-upload/).
     * @summary Returns uploaded document identity
     * @param {IdentityDocumentsUploadsGetRequest} identityDocumentsUploadsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityDocumentsUploadsGet(identityDocumentsUploadsGetRequest: IdentityDocumentsUploadsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IdentityDocumentsUploadsGetResponse>>;
    /**
     * The `/identity/get` endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses. Only name data is guaranteed to be returned; other fields will be empty arrays if not provided by the institution.  Note: In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29).
     * @summary Retrieve identity data
     * @param {IdentityGetRequest} identityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityGet(identityGetRequest: IdentityGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IdentityGetResponse>>;
    /**
     * The `/identity/match` endpoint generates a match score, which indicates how well the provided identity data matches the identity information on file with the account holder\'s financial institution.  Fields within the `balances` object will always be null when retrieved by `/identity/match`. Instead, use the free `/accounts/get` endpoint to request balance cached data, or `/accounts/balance/get` for real-time data.
     * @summary Retrieve identity match score
     * @param {IdentityMatchRequest} identityMatchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityMatch(identityMatchRequest: IdentityMatchRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IdentityMatchResponse>>;
    /**
     * `/identity/refresh` is an optional endpoint for users of the Identity product. It initiates an on-demand extraction to fetch the most up to date Identity information from the Financial Institution. This on-demand extraction takes place in addition to the periodic extractions that automatically occur for any Identity-enabled Item. If changes to Identity are discovered after calling `/identity/refresh`, Plaid will fire a webhook [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/identity/#default_update).  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/identity/refresh` is offered as an add-on to Identity and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh identity data
     * @param {IdentityRefreshRequest} identityRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityRefresh(identityRefreshRequest: IdentityRefreshRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IdentityRefreshResponse>>;
    /**
     * Try to autofill an Identity Verification based of the provided phone number, date of birth and country of residence.
     * @summary Create autofill for an Identity Verification
     * @param {IdentityVerificationAutofillCreateRequest} identityVerificationAutofillCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationAutofillCreate(identityVerificationAutofillCreateRequest: IdentityVerificationAutofillCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IdentityVerificationAutofillCreateResponse>>;
    /**
     * Create a new Identity Verification for the user specified by the `client_user_id` field. The requirements and behavior of the verification are determined by the `template_id` provided. If you don\'t know whether the associated user already has an active Identity Verification, you can specify `\"is_idempotent\": true` in the request body. With idempotency enabled, a new Identity Verification will only be created if one does not already exist for the associated `client_user_id` and `template_id`. If an Identity Verification is found, it will be returned unmodified with an `200 OK` HTTP status code.  You can also use this endpoint to supply information you already have collected about the user; if any of these fields are specified, the screens prompting the user to enter them will be skipped during the Link flow.
     * @summary Create a new Identity Verification
     * @param {IdentityVerificationCreateRequest} identityVerificationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationCreate(identityVerificationCreateRequest: IdentityVerificationCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IdentityVerificationCreateResponse>>;
    /**
     * Retrieve a previously created Identity Verification.
     * @summary Retrieve Identity Verification
     * @param {IdentityVerificationGetRequest} identityVerificationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationGet(identityVerificationGetRequest: IdentityVerificationGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IdentityVerificationGetResponse>>;
    /**
     * Filter and list Identity Verifications created by your account
     * @summary List Identity Verifications
     * @param {IdentityVerificationListRequest} identityVerificationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationList(identityVerificationListRequest: IdentityVerificationListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IdentityVerificationListResponse>>;
    /**
     * Allow a customer to retry their Identity Verification
     * @summary Retry an Identity Verification
     * @param {IdentityVerificationRetryRequest} identityVerificationRetryRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationRetry(identityVerificationRetryRequest: IdentityVerificationRetryRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IdentityVerificationRetryResponse>>;
    /**
     * `/income/verification/create` begins the income verification process by returning an `income_verification_id`. You can then provide the `income_verification_id` to `/link/token/create` under the `income_verification` parameter in order to create a Link instance that will prompt the user to go through the income verification flow. Plaid will fire an `INCOME` webhook once the user completes the Payroll Income flow, or when the uploaded documents in the Document Income flow have finished processing.
     * @summary (Deprecated) Create an income verification instance
     * @param {IncomeVerificationCreateRequest} incomeVerificationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationCreate(incomeVerificationCreateRequest: IncomeVerificationCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IncomeVerificationCreateResponse>>;
    /**
     * `/income/verification/documents/download` provides the ability to download the source documents associated with the verification.  If Document Income was used, the documents will be those the user provided in Link. For Payroll Income, the most recent files available for download from the payroll provider will be available from this endpoint.  The response to `/income/verification/documents/download` is a ZIP file in binary data. If a `document_id` is passed, a single document will be contained in this file. If not, the response will contain all documents associated with the verification.  The `request_id` is returned in the `Plaid-Request-ID` header.
     * @summary (Deprecated) Download the original documents used for income verification
     * @param {IncomeVerificationDocumentsDownloadRequest} incomeVerificationDocumentsDownloadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationDocumentsDownload(incomeVerificationDocumentsDownloadRequest: IncomeVerificationDocumentsDownloadRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<any>>;
    /**
     * `/income/verification/paystubs/get` returns the information collected from the paystubs that were used to verify an end user\'s income. It can be called once the status of the verification has been set to `VERIFICATION_STATUS_PROCESSING_COMPLETE`, as reported by the `INCOME: verification_status` webhook. Attempting to call the endpoint before verification has been completed will result in an error.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.
     * @summary (Deprecated) Retrieve information from the paystubs used for income verification
     * @param {IncomeVerificationPaystubsGetRequest} incomeVerificationPaystubsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationPaystubsGet(incomeVerificationPaystubsGetRequest: IncomeVerificationPaystubsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IncomeVerificationPaystubsGetResponse>>;
    /**
     * `/income/verification/precheck` is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification and returns a `precheck_id` that can be provided to `/link/token/create`. If the user is eligible for digital verification, providing the `precheck_id` in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the `precheck_id` can still be provided to `/link/token/create` and the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.  While all request fields are optional, providing either `employer` or `transactions_access_tokens` data will increase the chance of receiving a useful result.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/precheck` instead.
     * @summary (Deprecated) Check digital income verification eligibility and optimize conversion
     * @param {IncomeVerificationPrecheckRequest} incomeVerificationPrecheckRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationPrecheck(incomeVerificationPrecheckRequest: IncomeVerificationPrecheckRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IncomeVerificationPrecheckResponse>>;
    /**
     * `/income/verification/taxforms/get` returns the information collected from forms that were used to verify an end user\'\'s income. It can be called once the status of the verification has been set to `VERIFICATION_STATUS_PROCESSING_COMPLETE`, as reported by the `INCOME: verification_status` webhook. Attempting to call the endpoint before verification has been completed will result in an error.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.
     * @summary (Deprecated) Retrieve information from the tax documents used for income verification
     * @param {IncomeVerificationTaxformsGetRequest} incomeVerificationTaxformsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationTaxformsGet(incomeVerificationTaxformsGetRequest: IncomeVerificationTaxformsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IncomeVerificationTaxformsGetResponse>>;
    /**
     * Returns a JSON response containing details on all financial institutions currently supported by Plaid. Because Plaid supports thousands of institutions, results are paginated.  If there is no overlap between an institution’s enabled products and a client’s enabled products, then the institution will be filtered out from the response. As a result, the number of institutions returned may not match the count specified in the call.
     * @summary Get details of all supported institutions
     * @param {InstitutionsGetRequest} institutionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    institutionsGet(institutionsGetRequest: InstitutionsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<InstitutionsGetResponse>>;
    /**
     * Returns a JSON response containing details on a specified financial institution currently supported by Plaid.  Versioning note: API versions 2019-05-29 and earlier allow use of the `public_key` parameter instead of the `client_id` and `secret` to authenticate to this endpoint. The `public_key` has been deprecated; all customers are encouraged to use `client_id` and `secret` instead.
     * @summary Get details of an institution
     * @param {InstitutionsGetByIdRequest} institutionsGetByIdRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    institutionsGetById(institutionsGetByIdRequest: InstitutionsGetByIdRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<InstitutionsGetByIdResponse>>;
    /**
     * Returns a JSON response containing details for institutions that match the query parameters, up to a maximum of ten institutions per query.  Versioning note: API versions 2019-05-29 and earlier allow use of the `public_key` parameter instead of the `client_id` and `secret` parameters to authenticate to this endpoint. The `public_key` parameter has since been deprecated; all customers are encouraged to use `client_id` and `secret` instead.
     * @summary Search institutions
     * @param {InstitutionsSearchRequest} institutionsSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    institutionsSearch(institutionsSearchRequest: InstitutionsSearchRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<InstitutionsSearchResponse>>;
    /**
     * The `/investments/auth/get` endpoint allows developers to receive user-authorized data to facilitate the transfer of holdings
     * @summary Get data needed to authorize an investments transfer
     * @param {InvestmentsAuthGetRequest} investmentsAuthGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsAuthGet(investmentsAuthGetRequest: InvestmentsAuthGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<InvestmentsAuthGetResponse>>;
    /**
     * The `/investments/holdings/get` endpoint allows developers to receive user-authorized stock position data for `investment`-type accounts.
     * @summary Get Investment holdings
     * @param {InvestmentsHoldingsGetRequest} investmentsHoldingsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsHoldingsGet(investmentsHoldingsGetRequest: InvestmentsHoldingsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<InvestmentsHoldingsGetResponse>>;
    /**
     * `/investments/refresh` is an optional endpoint for users of the Investments product. It initiates an on-demand extraction to fetch the newest investment holdings and transactions for an Item. This on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Investments-enabled Item. If changes to investments are discovered after calling `/investments/refresh`, Plaid will fire webhooks: [`HOLDINGS: DEFAULT_UPDATE`](https://plaid.com/docs/api/products/investments/#holdings-default_update) if any new holdings are detected, and [`INVESTMENTS_TRANSACTIONS: DEFAULT_UPDATE`](https://plaid.com/docs/api/products/investments/#investments_transactions-default_update) if any new investment transactions are detected. This webhook will typically not fire in the Sandbox environment, due to the lack of dynamic investment transactions and holdings data. To test this webhook in Sandbox, call `/sandbox/item/fire_webhook`. Updated holdings and investment transactions can be fetched by calling `/investments/holdings/get` and `/investments/transactions/get`. Note that the `/investments/refresh` endpoint is not supported by all institutions. If called on an Item from an institution that does not support this functionality, it will return a `PRODUCT_NOT_SUPPORTED` error.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/investments/refresh` is offered as an add-on to Investments and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh investment data
     * @param {InvestmentsRefreshRequest} investmentsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsRefresh(investmentsRefreshRequest: InvestmentsRefreshRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<InvestmentsRefreshResponse>>;
    /**
     * The `/investments/transactions/get` endpoint allows developers to retrieve up to 24 months of user-authorized transaction data for investment accounts.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Due to the potentially large number of investment transactions associated with an Item, results are paginated. Manipulate the count and offset parameters in conjunction with the `total_investment_transactions` response body field to fetch all available investment transactions.  Note that Investments does not have a webhook to indicate when initial transaction data has loaded (unless you use the `async_update` option). Instead, if transactions data is not ready when `/investments/transactions/get` is first called, Plaid will wait for the data. For this reason, calling `/investments/transactions/get` immediately after Link may take up to one to two minutes to return.  Data returned by the asynchronous investments extraction flow (when `async_update` is set to true) may not be immediately available to `/investments/transactions/get`. To be alerted when the data is ready to be fetched, listen for the `HISTORICAL_UPDATE` webhook. If no investments history is ready when `/investments/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.
     * @summary Get investment transactions
     * @param {InvestmentsTransactionsGetRequest} investmentsTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsTransactionsGet(investmentsTransactionsGetRequest: InvestmentsTransactionsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<InvestmentsTransactionsGetResponse>>;
    /**
     * Retrieve detailed information about a specific `Issue`. This endpoint returns a single `Issue` object.
     * @summary Get an Issue
     * @param {IssuesGetRequest} issuesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    issuesGet(issuesGetRequest: IssuesGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IssuesGetResponse>>;
    /**
     * Search for an issue associated with one of the following identifiers:  `item_id`, `link_session_id` or Link session `request_id`.  This endpoint returns a list of `Issue` objects, with an empty list indicating that no issues are associated with the provided identifier. At least one of the identifiers must be provided to perform the search.
     * @summary Search for an Issue
     * @param {IssuesSearchRequest} issuesSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    issuesSearch(issuesSearchRequest: IssuesSearchRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IssuesSearchResponse>>;
    /**
     * Allows a user to subscribe to updates on a specific `Issue` using a POST method. Subscribers will receive webhook notifications when the issue status changes, particularly when resolved.
     * @summary Subscribe to an Issue
     * @param {IssuesSubscribeRequest} issuesSubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    issuesSubscribe(issuesSubscribeRequest: IssuesSubscribeRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<IssuesSubscribeResponse>>;
    /**
     * By default, the `access_token` associated with an Item does not expire and should be stored in a persistent, secure manner.  You can use the `/item/access_token/invalidate` endpoint to rotate the `access_token` associated with an Item. The endpoint returns a new `access_token` and immediately invalidates the previous `access_token`.
     * @summary Invalidate access_token
     * @param {ItemAccessTokenInvalidateRequest} itemAccessTokenInvalidateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemAccessTokenInvalidate(itemAccessTokenInvalidateRequest: ItemAccessTokenInvalidateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ItemAccessTokenInvalidateResponse>>;
    /**
     * List a historical log of user consent events
     * @summary List a historical log of user consent events
     * @param {ItemActivityListRequest} itemActivityListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemActivityList(itemActivityListRequest: ItemActivityListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ItemActivityListResponse>>;
    /**
     * List a user’s connected applications
     * @summary List a user’s connected applications
     * @param {ItemApplicationListRequest} itemApplicationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemApplicationList(itemApplicationListRequest: ItemApplicationListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ItemApplicationListResponse>>;
    /**
     * Enable consumers to update product access on selected accounts for an application.
     * @summary Update the scopes of access for a particular application
     * @param {ItemApplicationScopesUpdateRequest} itemApplicationScopesUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemApplicationScopesUpdate(itemApplicationScopesUpdateRequest: ItemApplicationScopesUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ItemApplicationScopesUpdateResponse>>;
    /**
     * Unlink a user’s connected application. On an unlink request, Plaid will immediately revoke the Application’s access to the User’s data.  The User will have to redo the OAuth authentication process in order to restore functionality.  This endpoint only removes ongoing data access permissions, therefore the User will need to reach out to the Application itself in order to disable and delete their account and delete any data that the Application already received (if the Application does not do so by default).  This endpoint should be called in real time as the User is unlinking an Application, and should not be batched in order to ensure that the change is reflected as soon as possible.
     * @summary Unlink a user’s connected application
     * @param {ItemApplicationUnlinkRequest} itemApplicationUnlinkRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemApplicationUnlink(itemApplicationUnlinkRequest: ItemApplicationUnlinkRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ItemApplicationUnlinkResponse>>;
    /**
     * Note: As of July 2020, the `/item/public_token/create` endpoint is deprecated. Instead, use `/link/token/create` with an `access_token` to create a Link token for use with [update mode](https://plaid.com/docs/link/update-mode).  If you need your user to take action to restore or resolve an error associated with an Item, generate a public token with the `/item/public_token/create` endpoint and then initialize Link with that `public_token`.  A `public_token` is one-time use and expires after 30 minutes. You use a `public_token` to initialize Link in [update mode](https://plaid.com/docs/link/update-mode) for a particular Item. You can generate a `public_token` for an Item even if you did not use Link to create the Item originally.  The `/item/public_token/create` endpoint is **not** used to create your initial `public_token`. If you have not already received an `access_token` for a specific Item, use Link to obtain your `public_token` instead. See the [Quickstart](https://plaid.com/docs/quickstart) for more information.
     * @summary Create public token
     * @param {ItemPublicTokenCreateRequest} itemPublicTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemCreatePublicToken(itemPublicTokenCreateRequest: ItemPublicTokenCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ItemPublicTokenCreateResponse>>;
    /**
     * Returns information about the status of an Item.
     * @summary Retrieve an Item
     * @param {ItemGetRequest} itemGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemGet(itemGetRequest: ItemGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ItemGetResponse>>;
    /**
     * `/item/import` creates an Item via your Plaid Exchange Integration and returns an `access_token`. As part of an `/item/import` request, you will include a User ID (`user_auth.user_id`) and Authentication Token (`user_auth.auth_token`) that enable data aggregation through your Plaid Exchange API endpoints. These authentication principals are to be chosen by you.  Upon creating an Item via `/item/import`, Plaid will automatically begin an extraction of that Item through the Plaid Exchange infrastructure you have already integrated.
     * @summary Import Item
     * @param {ItemImportRequest} itemImportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemImport(itemImportRequest: ItemImportRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ItemImportResponse>>;
    /**
     * Exchange a Link `public_token` for an API `access_token`. Link hands off the `public_token` client-side via the `onSuccess` callback once a user has successfully created an Item. The `public_token` is ephemeral and expires after 30 minutes. An `access_token` does not expire, but can be revoked by calling `/item/remove`.  The response also includes an `item_id` that should be stored with the `access_token`. The `item_id` is used to identify an Item in a webhook. The `item_id` can also be retrieved by making an `/item/get` request.
     * @summary Exchange public token for an access token
     * @param {ItemPublicTokenExchangeRequest} itemPublicTokenExchangeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemPublicTokenExchange(itemPublicTokenExchangeRequest: ItemPublicTokenExchangeRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ItemPublicTokenExchangeResponse>>;
    /**
     * The `/item/remove` endpoint allows you to remove an Item. Once removed, the `access_token`, as well as any processor tokens or bank account tokens associated with the Item, is no longer valid and cannot be used to access any data that was associated with the Item.   Calling `/item/remove` is a recommended best practice when offboarding users or if a user chooses to disconnect an account linked via Plaid. For subscription products, such as Transactions, Liabilities, and Investments, calling `/item/remove` is required to end subscription billing for the Item. For money movement products such as Auth and Transfer, if the Item is at an institution that uses Tokenized Account Numbers (TANs), such as Chase or PNC, calling `/item/remove` will invalidate the TAN, and subsequent ACH transfer attempts using that TAN will be returned.  In Limited Production, calling `/item/remove` does not impact the number of remaining Limited Production Items you have available.  Removing an Item does not affect any Asset Reports or Audit Copies you have already created, which will remain accessible until you remove access to them specifically using the `/asset_report/remove` endpoint.  Also note that for certain OAuth-based institutions, an Item removed via `/item/remove` may still show as an active connection in the institution\'s OAuth permission manager.  API versions 2019-05-29 and earlier return a `removed` boolean as part of the response.
     * @summary Remove an Item
     * @param {ItemRemoveRequest} itemRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemRemove(itemRemoveRequest: ItemRemoveRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ItemRemoveResponse>>;
    /**
     * The POST `/item/webhook/update` allows you to update the webhook URL associated with an Item. This request triggers a [`WEBHOOK_UPDATE_ACKNOWLEDGED`](https://plaid.com/docs/api/items/#webhook_update_acknowledged) webhook to the newly specified webhook URL.
     * @summary Update Webhook URL
     * @param {ItemWebhookUpdateRequest} itemWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemWebhookUpdate(itemWebhookUpdateRequest: ItemWebhookUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ItemWebhookUpdateResponse>>;
    /**
     * The `/liabilities/get` endpoint returns various details about an Item with loan or credit accounts. Liabilities data is available primarily for US financial institutions, with some limited coverage of Canadian institutions. Currently supported account types are account type `credit` with account subtype `credit card` or `paypal`, and account type `loan` with account subtype `student` or `mortgage`. To limit accounts listed in Link to types and subtypes supported by Liabilities, you can use the `account_filters` parameter when [creating a Link token](https://plaid.com/docs/api/link/#linktokencreate).  The types of information returned by Liabilities can include balances and due dates, loan terms, and account details such as original loan amount and guarantor. Data is refreshed approximately once per day; the latest data can be retrieved by calling `/liabilities/get`.
     * @summary Retrieve Liabilities data
     * @param {LiabilitiesGetRequest} liabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    liabilitiesGet(liabilitiesGetRequest: LiabilitiesGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<LiabilitiesGetResponse>>;
    /**
     * Use the `/link_delivery/create` endpoint to create a Hosted Link session.
     * @summary Create Hosted Link session
     * @param {LinkDeliveryCreateRequest} linkDeliveryCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkDeliveryCreate(linkDeliveryCreateRequest: LinkDeliveryCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<LinkDeliveryCreateResponse>>;
    /**
     * Use the `/link_delivery/get` endpoint to get the status of a Hosted Link session.
     * @summary Get Hosted Link session
     * @param {LinkDeliveryGetRequest} linkDeliveryGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkDeliveryGet(linkDeliveryGetRequest: LinkDeliveryGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<LinkDeliveryGetResponse>>;
    /**
     * Exchange an OAuth `link_correlation_id` for the corresponding `link_token`. The `link_correlation_id` is only available for \'payment_initiation\' products and is provided to the client via the OAuth `redirect_uri` as a query parameter. The `link_correlation_id` is ephemeral and expires in a brief period, after which it can no longer be exchanged for the \'link_token\'.
     * @summary Exchange the Link Correlation Id for a Link Token
     * @param {LinkOAuthCorrelationIdExchangeRequest} linkOAuthCorrelationIdExchangeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkOauthCorrelationIdExchange(linkOAuthCorrelationIdExchangeRequest: LinkOAuthCorrelationIdExchangeRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<LinkOAuthCorrelationIdExchangeResponse>>;
    /**
     * The `/link/token/create` endpoint creates a `link_token`, which is required as a parameter when initializing Link. Once Link has been initialized, it returns a `public_token`. For most Plaid products, the `public_token` is saved and exchanged for an `access_token` via `/item/public_token/exchange` as part of the main Link flow. For more details, see the [Link flow overview](https://plaid.com/docs/link/#link-flow-overview).  A `link_token` generated by `/link/token/create` is also used to initialize other Link flows, such as the [update mode](https://plaid.com/docs/link/update-mode) flow for tokens with expired credentials, or the Identity Verification flow.
     * @summary Create Link Token
     * @param {LinkTokenCreateRequest} linkTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkTokenCreate(linkTokenCreateRequest: LinkTokenCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<LinkTokenCreateResponse>>;
    /**
     * The `/link/token/get` endpoint gets information about a Link session, including all callbacks fired during the session along with their metadata, including the public token. This endpoint is used with Link flows that don\'t provide a public token via frontend callbacks, such as the [Hosted Link flow](https://plaid.com/docs/link/hosted-link/) and the [Multi-Item Link flow](https://plaid.com/docs/link/multi-item-link/). It also can be useful for debugging purposes.
     * @summary Get Link Token
     * @param {LinkTokenGetRequest} linkTokenGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkTokenGet(linkTokenGetRequest: LinkTokenGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<LinkTokenGetResponse>>;
    /**
     * This endpoint allows you to retrieve the Network Insights from a list of `access_tokens`.
     * @summary Retrieve network insights for the provided `access_tokens`
     * @param {NetworkInsightsReportGetRequest} networkInsightsReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    networkInsightsReportGet(networkInsightsReportGetRequest: NetworkInsightsReportGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<NetworkInsightsReportGetResponse>>;
    /**
     * The `/network/status/get` endpoint can be used to check whether Plaid has a matching profile for the user. This is useful for determining if a user is eligible for a streamlined experience, such as Layer.  Note: it is strongly recommended to check for Layer eligibility in the frontend. `/network/status/get` should only be used for checking Layer eligibility if a frontend check is not possible for your use case. For instructions on performing a frontend eligibility check, see the [Layer documentation](https://plaid.com/docs/layer/#integration-overview).
     * @summary Check a user\'s Plaid Network status
     * @param {NetworkStatusGetRequest} networkStatusGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    networkStatusGet(networkStatusGetRequest: NetworkStatusGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<NetworkStatusGetResponse>>;
    /**
     * The `/partner/customer/create` endpoint is used by reseller partners to create end customers. To create end customers, it should be called in the Production environment only, even when creating Sandbox API keys. If called in the Sandbox environment, it will return a sample response, but no customer will be created and the API keys will not be valid.
     * @summary Creates a new end customer for a Plaid reseller.
     * @param {PartnerCustomerCreateRequest} partnerCustomerCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerCreate(partnerCustomerCreateRequest: PartnerCustomerCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PartnerCustomerCreateResponse>>;
    /**
     * The `/partner/customer/enable` endpoint is used by reseller partners to enable an end customer in the full Production environment.
     * @summary Enables a Plaid reseller\'s end customer in the Production environment.
     * @param {PartnerCustomerEnableRequest} partnerCustomerEnableRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerEnable(partnerCustomerEnableRequest: PartnerCustomerEnableRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PartnerCustomerEnableResponse>>;
    /**
     * The `/partner/customer/get` endpoint is used by reseller partners to retrieve data about a single end customer.
     * @summary Returns a Plaid reseller\'s end customer.
     * @param {PartnerCustomerGetRequest} partnerCustomerGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerGet(partnerCustomerGetRequest: PartnerCustomerGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PartnerCustomerGetResponse>>;
    /**
     * The `/partner/customer/oauth_institutions/get` endpoint is used by reseller partners to retrieve OAuth-institution registration information about a single end customer. To learn how to set up a webhook to listen to status update events, visit the [reseller documentation](https://plaid.com/docs/account/resellers/#enabling-end-customers).
     * @summary Returns OAuth-institution registration information for a given end customer.
     * @param {PartnerCustomerOAuthInstitutionsGetRequest} partnerCustomerOAuthInstitutionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerOauthInstitutionsGet(partnerCustomerOAuthInstitutionsGetRequest: PartnerCustomerOAuthInstitutionsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PartnerCustomerOAuthInstitutionsGetResponse>>;
    /**
     * The `/partner/customer/remove` endpoint is used by reseller partners to remove an end customer. Removing an end customer will remove it from view in the Plaid Dashboard and deactivate its API keys. This endpoint can only be used to remove an end customer that has not yet been enabled in full Production.
     * @summary Removes a Plaid reseller\'s end customer.
     * @param {PartnerCustomerRemoveRequest} partnerCustomerRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerRemove(partnerCustomerRemoveRequest: PartnerCustomerRemoveRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PartnerCustomerRemoveResponse>>;
    /**
     * The `/payment_initiation/consent/create` endpoint is used to create a payment consent, which can be used to initiate payments on behalf of the user. Payment consents are created with `UNAUTHORISED` status by default and must be authorised by the user before payments can be initiated.  Consents can be limited in time and scope, and have constraints that describe limitations for payments.
     * @summary Create payment consent
     * @param {PaymentInitiationConsentCreateRequest} paymentInitiationConsentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentCreate(paymentInitiationConsentCreateRequest: PaymentInitiationConsentCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationConsentCreateResponse>>;
    /**
     * The `/payment_initiation/consent/get` endpoint can be used to check the status of a payment consent, as well as to receive basic information such as recipient and constraints.
     * @summary Get payment consent
     * @param {PaymentInitiationConsentGetRequest} paymentInitiationConsentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentGet(paymentInitiationConsentGetRequest: PaymentInitiationConsentGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationConsentGetResponse>>;
    /**
     * The `/payment_initiation/consent/payment/execute` endpoint can be used to execute payments using payment consent.
     * @summary Execute a single payment using consent
     * @param {PaymentInitiationConsentPaymentExecuteRequest} paymentInitiationConsentPaymentExecuteRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentPaymentExecute(paymentInitiationConsentPaymentExecuteRequest: PaymentInitiationConsentPaymentExecuteRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationConsentPaymentExecuteResponse>>;
    /**
     * The `/payment_initiation/consent/revoke` endpoint can be used to revoke the payment consent. Once the consent is revoked, it is not possible to initiate payments using it.
     * @summary Revoke payment consent
     * @param {PaymentInitiationConsentRevokeRequest} paymentInitiationConsentRevokeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentRevoke(paymentInitiationConsentRevokeRequest: PaymentInitiationConsentRevokeRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationConsentRevokeResponse>>;
    /**
     * After creating a payment recipient, you can use the `/payment_initiation/payment/create` endpoint to create a payment to that recipient.  Payments can be one-time or standing order (recurring) and can be denominated in either EUR, GBP or other chosen [currency](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-create-request-amount-currency).  If making domestic GBP-denominated payments, your recipient must have been created with BACS numbers. In general, EUR-denominated payments will be sent via SEPA Credit Transfer, GBP-denominated payments will be sent via the Faster Payments network and for non-Eurozone markets typically via the local payment scheme, but the payment network used will be determined by the institution. Payments sent via Faster Payments will typically arrive immediately, while payments sent via SEPA Credit Transfer or other local payment schemes will typically arrive in one business day.  Standing orders (recurring payments) must be denominated in GBP and can only be sent to recipients in the UK. Once created, standing order payments cannot be modified or canceled via the API. An end user can cancel or modify a standing order directly on their banking application or website, or by contacting the bank. Standing orders will follow the payment rules of the underlying rails (Faster Payments in UK). Payments can be sent Monday to Friday, excluding bank holidays. If the pre-arranged date falls on a weekend or bank holiday, the payment is made on the next working day. It is not possible to guarantee the exact time the payment will reach the recipient’s account, although at least 90% of standing order payments are sent by 6am.  In Limited Production, payments must be below 5 GBP or other chosen [currency](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-create-request-amount-currency), and standing orders, variable recurring payments, and Virtual Accounts are not supported.
     * @summary Create a payment
     * @param {PaymentInitiationPaymentCreateRequest} paymentInitiationPaymentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentCreate(paymentInitiationPaymentCreateRequest: PaymentInitiationPaymentCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationPaymentCreateResponse>>;
    /**
     * The `/payment_initiation/payment/get` endpoint can be used to check the status of a payment, as well as to receive basic information such as recipient and payment amount. In the case of standing orders, the `/payment_initiation/payment/get` endpoint will provide information about the status of the overall standing order itself; the API cannot be used to retrieve payment status for individual payments within a standing order.
     * @summary Get payment details
     * @param {PaymentInitiationPaymentGetRequest} paymentInitiationPaymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentGet(paymentInitiationPaymentGetRequest: PaymentInitiationPaymentGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationPaymentGetResponse>>;
    /**
     * The `/payment_initiation/payment/list` endpoint can be used to retrieve all created payments. By default, the 10 most recent payments are returned. You can request more payments and paginate through the results using the optional `count` and `cursor` parameters.
     * @summary List payments
     * @param {PaymentInitiationPaymentListRequest} paymentInitiationPaymentListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentList(paymentInitiationPaymentListRequest: PaymentInitiationPaymentListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationPaymentListResponse>>;
    /**
     * Reverse a settled payment from a Plaid virtual account.  The original payment must be in a settled state to be refunded. To refund partially, specify the amount as part of the request. If the amount is not specified, the refund amount will be equal to all of the remaining payment amount that has not been refunded yet.  The refund will go back to the source account that initiated the payment. The original payment must have been initiated to a Plaid virtual account so that this account can be used to initiate the refund.  Providing counterparty information such as date of birth and address increases  the likelihood of refund being successful without human intervention.
     * @summary Reverse an existing payment
     * @param {PaymentInitiationPaymentReverseRequest} paymentInitiationPaymentReverseRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentReverse(paymentInitiationPaymentReverseRequest: PaymentInitiationPaymentReverseRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationPaymentReverseResponse>>;
    /**
     * Create a payment recipient for payment initiation.  The recipient must be in Europe, within a country that is a member of the Single Euro Payment Area (SEPA) or a non-Eurozone country [supported](https://plaid.com/global) by Plaid. For a standing order (recurring) payment, the recipient must be in the UK.  It is recommended to use `bacs` in the UK and `iban` in EU.  The endpoint is idempotent: if a developer has already made a request with the same payment details, Plaid will return the same `recipient_id`.
     * @summary Create payment recipient
     * @param {PaymentInitiationRecipientCreateRequest} paymentInitiationRecipientCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationRecipientCreate(paymentInitiationRecipientCreateRequest: PaymentInitiationRecipientCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationRecipientCreateResponse>>;
    /**
     * Get details about a payment recipient you have previously created.
     * @summary Get payment recipient
     * @param {PaymentInitiationRecipientGetRequest} paymentInitiationRecipientGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationRecipientGet(paymentInitiationRecipientGetRequest: PaymentInitiationRecipientGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationRecipientGetResponse>>;
    /**
     * The `/payment_initiation/recipient/list` endpoint list the payment recipients that you have previously created.
     * @summary List payment recipients
     * @param {PaymentInitiationRecipientListRequest} paymentInitiationRecipientListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationRecipientList(paymentInitiationRecipientListRequest: PaymentInitiationRecipientListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentInitiationRecipientListResponse>>;
    /**
     * Use `/payment_profile/create` endpoint to create a new payment profile. To initiate the account linking experience, call `/link/token/create` and provide the `payment_profile_token` in the `transfer.payment_profile_token` field. You can then use the `payment_profile_token` when creating transfers using `/transfer/authorization/create` and `/transfer/create`.
     * @summary Create payment profile
     * @param {PaymentProfileCreateRequest} paymentProfileCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentProfileCreate(paymentProfileCreateRequest: PaymentProfileCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentProfileCreateResponse>>;
    /**
     * Use `/payment_profile/get` endpoint to get the status of a given Payment Profile.
     * @summary Get payment profile
     * @param {PaymentProfileGetRequest} paymentProfileGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentProfileGet(paymentProfileGetRequest: PaymentProfileGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentProfileGetResponse>>;
    /**
     * Use the `/payment_profile/remove` endpoint to remove a given Payment Profile. Once it’s removed, it can no longer be used to create transfers.
     * @summary Remove payment profile
     * @param {PaymentProfileRemoveRequest} paymentProfileRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentProfileRemove(paymentProfileRemoveRequest: PaymentProfileRemoveRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<PaymentProfileRemoveResponse>>;
    /**
     * This endpoint returns the account associated with a given processor token.  This endpoint retrieves cached information, rather than extracting fresh information from the institution. As a result, the account balance returned may not be up-to-date; for realtime balance information, use `/processor/balance/get` instead. Note that some information is nullable.
     * @summary Retrieve the account associated with a processor token
     * @param {ProcessorAccountGetRequest} processorAccountGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorAccountGet(processorAccountGetRequest: ProcessorAccountGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorAccountGetResponse>>;
    /**
     * Used to create a token suitable for sending to Apex to enable Plaid-Apex integrations.
     * @summary Create Apex bank account token
     * @param {ProcessorApexProcessorTokenCreateRequest} processorApexProcessorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorApexProcessorTokenCreate(processorApexProcessorTokenCreateRequest: ProcessorApexProcessorTokenCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorTokenCreateResponse>>;
    /**
     * The `/processor/auth/get` endpoint returns the bank account and bank identification number (such as the routing number, for US accounts), for a checking, savings, or cash management account that\'\'s associated with a given `processor_token`. The endpoint also returns high-level account data and balances when available.  Versioning note: API versions 2019-05-29 and earlier use a different schema for the `numbers` object returned by this endpoint. For details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2020-09-14).
     * @summary Retrieve Auth data
     * @param {ProcessorAuthGetRequest} processorAuthGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorAuthGet(processorAuthGetRequest: ProcessorAuthGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorAuthGetResponse>>;
    /**
     * The `/processor/balance/get` endpoint returns the real-time balance for each of an Item\'s accounts. While other endpoints may return a balance object, only `/processor/balance/get` forces the available and current balance fields to be refreshed rather than cached.
     * @summary Retrieve Balance data
     * @param {ProcessorBalanceGetRequest} processorBalanceGetRequest The &#x60;/processor/balance/get&#x60; endpoint returns the real-time balance for the account associated with a given &#x60;processor_token&#x60;.  The current balance is the total amount of funds in the account. The available balance is the current balance less any outstanding holds or debits that have not yet posted to the account.  Note that not all institutions calculate the available balance. In the event that available balance is unavailable from the institution, Plaid will return an available balance value of &#x60;null&#x60;.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorBalanceGet(processorBalanceGetRequest: ProcessorBalanceGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorBalanceGetResponse>>;
    /**
     * Use the `/processor/bank_transfer/create` endpoint to initiate a new bank transfer as a processor
     * @summary Create a bank transfer as a processor
     * @param {ProcessorBankTransferCreateRequest} processorBankTransferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorBankTransferCreate(processorBankTransferCreateRequest: ProcessorBankTransferCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorBankTransferCreateResponse>>;
    /**
     * The `/processor/identity/get` endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses.
     * @summary Retrieve Identity data
     * @param {ProcessorIdentityGetRequest} processorIdentityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorIdentityGet(processorIdentityGetRequest: ProcessorIdentityGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorIdentityGetResponse>>;
    /**
     * The `/processor/identity/match` endpoint generates a match score, which indicates how well the provided identity data matches the identity information on file with the account holder\'s financial institution.  Fields within the `balances` object will always be null when retrieved by `/identity/match`. Instead, use the free `/accounts/get` endpoint to request balance cached data, or `/accounts/balance/get` for real-time data.
     * @summary Retrieve identity match score
     * @param {ProcessorIdentityMatchRequest} processorIdentityMatchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorIdentityMatch(processorIdentityMatchRequest: ProcessorIdentityMatchRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorIdentityMatchResponse>>;
    /**
     * This endpoint returns the stock position data of the account associated with a given processor token.
     * @summary Retrieve Investment Holdings
     * @param {ProcessorInvestmentsHoldingsGetRequest} processorInvestmentsHoldingsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorInvestmentsHoldingsGet(processorInvestmentsHoldingsGetRequest: ProcessorInvestmentsHoldingsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorInvestmentsHoldingsGetResponse>>;
    /**
     * The `/processor/investments/transactions/get` endpoint allows developers to retrieve up to 24 months of user-authorized transaction data for the investment account associated with the processor token.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Due to the potentially large number of investment transactions associated with the account, results are paginated. Manipulate the count and offset parameters in conjunction with the `total_investment_transactions` response body field to fetch all available investment transactions.  Note that Investments does not have a webhook to indicate when initial transaction data has loaded (unless you use the `async_update` option). Instead, if transactions data is not ready when `/processor/investments/transactions/get` is first called, Plaid will wait for the data. For this reason, calling `/processor/investments/transactions/get` immediately after Link may take up to one to two minutes to return.  Data returned by the asynchronous investments extraction flow (when `async_update` is set to true) may not be immediately available to `/processor/investments/transactions/get`. To be alerted when the data is ready to be fetched, listen for the `HISTORICAL_UPDATE` webhook. If no investments history is ready when `/processor/investments/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.  To receive Investments Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get investment transactions data
     * @param {ProcessorInvestmentsTransactionsGetRequest} processorInvestmentsTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorInvestmentsTransactionsGet(processorInvestmentsTransactionsGetRequest: ProcessorInvestmentsTransactionsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorInvestmentsTransactionsGetResponse>>;
    /**
     * The `/processor/liabilities/get` endpoint returns various details about a loan or credit account. Liabilities data is available primarily for US financial institutions, with some limited coverage of Canadian institutions. Currently supported account types are account type `credit` with account subtype `credit card` or `paypal`, and account type `loan` with account subtype `student` or `mortgage`.  The types of information returned by Liabilities can include balances and due dates, loan terms, and account details such as original loan amount and guarantor. Data is refreshed approximately once per day; the latest data can be retrieved by calling `/processor/liabilities/get`.  Note: This request may take some time to complete if `liabilities` was not specified as an initial product when creating the processor token. This is because Plaid must communicate directly with the institution to retrieve the additional data.
     * @summary Retrieve Liabilities data
     * @param {ProcessorLiabilitiesGetRequest} processorLiabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorLiabilitiesGet(processorLiabilitiesGetRequest: ProcessorLiabilitiesGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorLiabilitiesGetResponse>>;
    /**
     * After calling `/processor/signal/evaluate`, call `/processor/signal/decision/report` to report whether the transaction was initiated.  If you are using the [Plaid Transfer product](https://www.plaid.com/docs/transfer) to create transfers, it is not necessary to use this endpoint, as Plaid already knows whether the transfer was initiated.
     * @summary Report whether you initiated an ACH transaction
     * @param {ProcessorSignalDecisionReportRequest} processorSignalDecisionReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalDecisionReport(processorSignalDecisionReportRequest: ProcessorSignalDecisionReportRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorSignalDecisionReportResponse>>;
    /**
     * Use `/processor/signal/evaluate` to evaluate a planned ACH transaction as a processor to get a return risk assessment (such as a risk score and risk tier) and additional risk signals.  In order to obtain a valid score for an ACH transaction, Plaid must have an access token for the account, and the Item must be healthy (receiving product updates) or have recently been in a healthy state. If the transaction does not meet eligibility requirements, an error will be returned corresponding to the underlying cause. If `/processor/signal/evaluate` is called on the same transaction multiple times within a 24-hour period, cached results may be returned. For more information please refer to our error documentation on [item errors](/docs/errors/item/) and [Link in Update Mode](/docs/link/update-mode/).  Note: This request may take some time to complete if Signal is being added to an existing Item. This is because Plaid must communicate directly with the institution when retrieving the data for the first time. To reduce this latency, you can call `/signal/prepare` on the Item before you need to request Signal data.
     * @summary Evaluate a planned ACH transaction
     * @param {ProcessorSignalEvaluateRequest} processorSignalEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalEvaluate(processorSignalEvaluateRequest: ProcessorSignalEvaluateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorSignalEvaluateResponse>>;
    /**
     * When a processor token is not initialized with Signal, call `/processor/signal/prepare` to opt-in that processor token to the Signal data collection process, which will improve the accuracy of the Signal score.  If this endpoint is called with a processor token that is already initialized with Signal, it will return a 200 response and will not modify the processor token.
     * @summary Opt-in a processor token to Signal
     * @param {ProcessorSignalPrepareRequest} processorSignalPrepareRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalPrepare(processorSignalPrepareRequest: ProcessorSignalPrepareRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorSignalPrepareResponse>>;
    /**
     * Call the `/processor/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/processor/signal/evaluate` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio.  If you are using the [Plaid Transfer product](https://www.plaid.com/docs/transfer) to create transfers, it is not necessary to use this endpoint, as Plaid already knows whether the transfer was returned.
     * @summary Report a return for an ACH transaction
     * @param {ProcessorSignalReturnReportRequest} processorSignalReturnReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalReturnReport(processorSignalReturnReportRequest: ProcessorSignalReturnReportRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorSignalReturnReportResponse>>;
    /**
     *  Used to create a token suitable for sending to Stripe to enable Plaid-Stripe integrations. For a detailed guide on integrating Stripe, see [Add Stripe to your app](https://plaid.com/docs/auth/partnerships/stripe/).  Note that the Stripe bank account token is a one-time use token. To store bank account information for later use, you can use a Stripe customer object and create an associated bank account from the token, or you can use a Stripe Custom account and create an associated external bank account from the token. This bank account information should work indefinitely, unless the user\'s bank account information changes or they revoke Plaid\'s permissions to access their account. Stripe bank account information cannot be modified once the bank account token has been created. If you ever need to change the bank account details used by Stripe for a specific customer, have the user go through Link again and create a new bank account token from the new `access_token`.  To revoke a bank account token, the entire underlying access token must be revoked using `/item/remove`.
     * @summary Create Stripe bank account token
     * @param {ProcessorStripeBankAccountTokenCreateRequest} processorStripeBankAccountTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorStripeBankAccountTokenCreate(processorStripeBankAccountTokenCreateRequest: ProcessorStripeBankAccountTokenCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorStripeBankAccountTokenCreateResponse>>;
    /**
     * Used to create a token suitable for sending to one of Plaid\'s partners to enable integrations. Note that Stripe partnerships use bank account tokens instead; see `/processor/stripe/bank_account_token/create` for creating tokens for use with Stripe integrations. If using multiple processors, multiple different processor tokens can be created for a single access token. Once created, a processor token for a given Item cannot be modified or updated. To revoke the processor\'s access, the entire Item must be deleted by calling `/item/remove`.
     * @summary Create processor token
     * @param {ProcessorTokenCreateRequest} processorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenCreate(processorTokenCreateRequest: ProcessorTokenCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorTokenCreateResponse>>;
    /**
     * Used to get a processor token\'s product permissions. The `products` field will be an empty list if the processor can access all available products.
     * @summary Get a processor token\'s product permissions
     * @param {ProcessorTokenPermissionsGetRequest} processorTokenPermissionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenPermissionsGet(processorTokenPermissionsGetRequest: ProcessorTokenPermissionsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorTokenPermissionsGetResponse>>;
    /**
     * Used to control a processor\'s access to products on the given processor token. By default, a processor will have access to all available products on the corresponding item. To restrict access to a particular set of products, call this endpoint with the desired products. To restore access to all available products, call this endpoint with an empty list. This endpoint can be called multiple times as your needs and your processor\'s needs change.
     * @summary Control a processor\'s access to products
     * @param {ProcessorTokenPermissionsSetRequest} processorTokenPermissionsSetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenPermissionsSet(processorTokenPermissionsSetRequest: ProcessorTokenPermissionsSetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorTokenPermissionsSetResponse>>;
    /**
     * This endpoint allows you, the processor, to update the webhook URL associated with a processor token. This request triggers a `WEBHOOK_UPDATE_ACKNOWLEDGED` webhook to the newly specified webhook URL.
     * @summary Update a processor token\'s webhook URL
     * @param {ProcessorTokenWebhookUpdateRequest} processorTokenWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenWebhookUpdate(processorTokenWebhookUpdateRequest: ProcessorTokenWebhookUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorTokenWebhookUpdateResponse>>;
    /**
     * The `/processor/transactions/get` endpoint allows developers to receive user-authorized transaction data for credit, depository, and some loan-type accounts (only those with account subtype `student`; coverage may be limited). Transaction data is standardized across financial institutions, and in many cases transactions are linked to a clean name, entity type, location, and category. Similarly, account data is standardized and returned with a clean name, number, balance, and other meta information where available.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Transactions are not immutable and can also be removed altogether by the institution; a removed transaction will no longer appear in `/processor/transactions/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).  Due to the potentially large number of transactions associated with a processor token, results are paginated. Manipulate the `count` and `offset` parameters in conjunction with the `total_transactions` response body field to fetch all available transactions.  Data returned by `/processor/transactions/get` will be the data available for the processor token as of the most recent successful check for new transactions. Plaid typically checks for new data multiple times a day, but these checks may occur less frequently, such as once a day, depending on the institution. To force Plaid to check for new transactions, you can use the `/processor/transactions/refresh` endpoint.  Note that data may not be immediately available to `/processor/transactions/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `transactions`, or upon the first call to `/processor/transactions/get`, if it wasn\'t. If no transaction history is ready when `/processor/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get transaction data
     * @param {ProcessorTransactionsGetRequest} processorTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsGet(processorTransactionsGetRequest: ProcessorTransactionsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorTransactionsGetResponse>>;
    /**
     * The `/processor/transactions/recurring/get` endpoint allows developers to receive a summary of the recurring outflow and inflow streams (expenses and deposits) from a user’s checking, savings or credit card accounts. Additionally, Plaid provides key insights about each recurring stream including the category, merchant, last amount, and more. Developers can use these insights to build tools and experiences that help their users better manage cash flow, monitor subscriptions, reduce spend, and stay on track with bill payments.  This endpoint is offered as an add-on to Transactions. To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.  This endpoint can only be called on a processor token that has already been initialized with Transactions (either during Link, by specifying it in `/link/token/create`; or after Link, by calling `/processor/transactions/get` or `/processor/transactions/sync`). Once all historical transactions have been fetched, call `/processor/transactions/recurring/get` to receive the Recurring Transactions streams and subscribe to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook. To know when historical transactions have been fetched, if you are using `/processor/transactions/sync` listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#SyncUpdatesAvailableWebhook-historical-update-complete) webhook and check that the `historical_update_complete` field in the payload is `true`. If using `/processor/transactions/get`, listen for the [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhook.  After the initial call, you can call `/processor/transactions/recurring/get` endpoint at any point in the future to retrieve the latest summary of recurring streams. Listen to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook to be notified when new updates are available.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Fetch recurring transaction streams
     * @param {ProcessorTransactionsRecurringGetRequest} processorTransactionsRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsRecurringGet(processorTransactionsRecurringGetRequest: ProcessorTransactionsRecurringGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorTransactionsRecurringGetResponse>>;
    /**
     * `/processor/transactions/refresh` is an optional endpoint for users of the Transactions product. It initiates an on-demand extraction to fetch the newest transactions for a processor token. This on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Transactions-enabled processor token. If changes to transactions are discovered after calling `/processor/transactions/refresh`, Plaid will fire a webhook: for `/transactions/sync` users, [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) will be fired if there are any transactions updated, added, or removed. For users of both `/processor/transactions/sync` and `/processor/transactions/get`, [`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/products/transactions/#transactions_removed) will be fired if any removed transactions are detected, and [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/transactions/#default_update) will be fired if any new transactions are detected. New transactions can be fetched by calling `/processor/transactions/get` or `/processor/transactions/sync`. Note that the `/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) non-depository accounts and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item that contains only non-depository accounts from that institution.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/processor/transactions/refresh` is offered as an add-on to Transactions and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh transaction data
     * @param {ProcessorTransactionsRefreshRequest} processorTransactionsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsRefresh(processorTransactionsRefreshRequest: ProcessorTransactionsRefreshRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorTransactionsRefreshResponse>>;
    /**
     *  The `/processor/transactions/sync` endpoint retrieves transactions associated with an Item and can fetch updates using a cursor to track which updates have already been seen.  For important instructions on integrating with `/processor/transactions/sync`, see the [Transactions integration overview](https://plaid.com/docs/transactions/#integration-overview). If you are migrating from an existing integration using `/processor/transactions/get`, see the [Transactions Sync migration guide](https://plaid.com/docs/transactions/sync-migration/).  This endpoint supports `credit`, `depository`, and some `loan`-type accounts (only those with account subtype `student`). For `investments` accounts, use `/investments/transactions/get` instead.  When retrieving paginated updates, track both the `next_cursor` from the latest response and the original cursor from the first call in which `has_more` was `true`; if a call to `/processor/transactions/sync` fails when retrieving a paginated update (e.g due to the [`TRANSACTIONS_SYNC_MUTATION_DURING_PAGINATION`](https://plaid.com/docs/errors/transactions/#transactions_sync_mutation_during_pagination) error), the entire pagination request loop must be restarted beginning with the cursor for the first page of the update, rather than retrying only the single request that failed.  If transactions data is not yet available for the Item, which can happen if the Item was not initialized with transactions during the `/link/token/create` call or if `/processor/transactions/sync` was called within a few seconds of Item creation, `/processor/transactions/sync` will return empty transactions arrays.   Plaid typically checks for new transactions data between one and four times per day, depending on the institution. To find out when transactions were last updated for an Item, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, use the `/processor/transactions/refresh` endpoint.  To be alerted when new transactions are available, listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) webhook.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get incremental transaction updates on a processor token
     * @param {ProcessorTransactionsSyncRequest} processorTransactionsSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsSync(processorTransactionsSyncRequest: ProcessorTransactionsSyncRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProcessorTransactionsSyncResponse>>;
    /**
     * The `/profile/network_status/get` endpoint can be used to check whether Plaid has a matching profile for the user.
     * @summary Check a user\'s Plaid Network status
     * @param {ProfileNetworkStatusGetRequest} profileNetworkStatusGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    profileNetworkStatusGet(profileNetworkStatusGetRequest: ProfileNetworkStatusGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<ProfileNetworkStatusGetResponse>>;
    /**
     * Use the `/sandbox/bank_income/fire_webhook` endpoint to manually trigger a Bank Income webhook in the Sandbox environment.
     * @summary Manually fire a bank income webhook in sandbox
     * @param {SandboxBankIncomeFireWebhookRequest} sandboxBankIncomeFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxBankIncomeFireWebhook(sandboxBankIncomeFireWebhookRequest: SandboxBankIncomeFireWebhookRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxBankIncomeFireWebhookResponse>>;
    /**
     * Use the `/sandbox/bank_transfer/fire_webhook` endpoint to manually trigger a Bank Transfers webhook in the Sandbox environment.
     * @summary Manually fire a Bank Transfer webhook
     * @param {SandboxBankTransferFireWebhookRequest} sandboxBankTransferFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxBankTransferFireWebhook(sandboxBankTransferFireWebhookRequest: SandboxBankTransferFireWebhookRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxBankTransferFireWebhookResponse>>;
    /**
     * Use the `/sandbox/bank_transfer/simulate` endpoint to simulate a bank transfer event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/bank_transfer/event/sync` or `/bank_transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a bank transfer event in Sandbox
     * @param {SandboxBankTransferSimulateRequest} sandboxBankTransferSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxBankTransferSimulate(sandboxBankTransferSimulateRequest: SandboxBankTransferSimulateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxBankTransferSimulateResponse>>;
    /**
     * Use the `/sandbox/cra/cashflow_updates/update` endpoint to manually trigger an update for cashflow updates (Monitoring) in the Sandbox environment.
     * @summary Trigger an update for Cashflow Updates
     * @param {SandboxCraCashflowUpdatesUpdateRequest} sandboxCraCashflowUpdatesUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxCraCashflowUpdatesUpdate(sandboxCraCashflowUpdatesUpdateRequest: SandboxCraCashflowUpdatesUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxCraCashflowUpdatesUpdateResponse>>;
    /**
     * Use the `/sandbox/income/fire_webhook` endpoint to manually trigger a Payroll or Document Income webhook in the Sandbox environment.
     * @summary Manually fire an Income webhook
     * @param {SandboxIncomeFireWebhookRequest} sandboxIncomeFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxIncomeFireWebhook(sandboxIncomeFireWebhookRequest: SandboxIncomeFireWebhookRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxIncomeFireWebhookResponse>>;
    /**
     * The `/sandbox/item/fire_webhook` endpoint is used to test that code correctly handles webhooks. This endpoint can trigger the following webhooks:  `DEFAULT_UPDATE`: Webhook to be fired for a given Sandbox Item simulating a default update event for the respective product as specified with the `webhook_type` in the request body. Valid Sandbox `DEFAULT_UPDATE` webhook types include: `AUTH`, `IDENTITY`, `TRANSACTIONS`, `INVESTMENTS_TRANSACTIONS`, `LIABILITIES`, `HOLDINGS`. If the Item does not support the product, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `NEW_ACCOUNTS_AVAILABLE`: Fired to indicate that a new account is available on the Item and you can launch update mode to request access to it.  `SMS_MICRODEPOSITS_VERIFICATION`: Fired when a given same day micro-deposit item is verified via SMS verification.  `LOGIN_REPAIRED`: Fired when an Item recovers from the `ITEM_LOGIN_REQUIRED` without the user going through update mode in your app.  `PENDING_DISCONNECT`: Fired when an Item will stop working in the near future (e.g. due to a planned bank migration) and must be sent through update mode to continue working.   `RECURRING_TRANSACTIONS_UPDATE`: Recurring Transactions webhook to be fired for a given Sandbox Item. If the Item does not support Recurring Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `SYNC_UPDATES_AVAILABLE`: Transactions webhook to be fired for a given Sandbox Item.  If the Item does not support Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `PRODUCT_READY`: Assets webhook to be fired when a given asset report has been successfully generated. If the Item does not support Assets, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `ERROR`: Assets webhook to be fired when asset report generation has failed. If the Item does not support Assets, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `USER_PERMISSION_REVOKED`: Indicates an end user has revoked the permission that they previously granted to access an Item. May not always fire upon revocation, as some institutions’ consent portals do not trigger this webhook. Upon receiving this webhook, it is recommended to delete any stored data from Plaid associated with the account or Item.  `USER_ACCOUNT_REVOKED`: Fired when an end user has revoked access to their account on the Data Provider\'s portal. This webhook is currently sent only for Chase and PNC Items, but may be sent in the future for other financial institutions. Upon receiving this webhook, it is recommended to delete any stored data from Plaid associated with the account or Item.  Note that this endpoint is provided for developer ease-of-use and is not required for testing webhooks; webhooks will also fire in Sandbox under the same conditions that they would in Production (except for webhooks of type `TRANSFER`).
     * @summary Fire a test webhook
     * @param {SandboxItemFireWebhookRequest} sandboxItemFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxItemFireWebhook(sandboxItemFireWebhookRequest: SandboxItemFireWebhookRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxItemFireWebhookResponse>>;
    /**
     * `/sandbox/item/reset_login/` forces an Item into an `ITEM_LOGIN_REQUIRED` state in order to simulate an Item whose login is no longer valid. This makes it easy to test Link\'s [update mode](https://plaid.com/docs/link/update-mode) flow in the Sandbox environment.  After calling `/sandbox/item/reset_login`, You can then use Plaid Link update mode to restore the Item to a good state. An `ITEM_LOGIN_REQUIRED` webhook will also be fired after a call to this endpoint, if one is associated with the Item.   In the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error state automatically after 30 days, even if this endpoint is not called.
     * @summary Force a Sandbox Item into an error state
     * @param {SandboxItemResetLoginRequest} sandboxItemResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxItemResetLogin(sandboxItemResetLoginRequest: SandboxItemResetLoginRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxItemResetLoginResponse>>;
    /**
     * The `/sandbox/item/set_verification_status` endpoint can be used to change the verification status of an Item in in the Sandbox in order to simulate the Automated Micro-deposit flow.  For more information on testing Automated Micro-deposits in Sandbox, see [Auth full coverage testing](https://plaid.com/docs/auth/coverage/testing#).
     * @summary Set verification status for Sandbox account
     * @param {SandboxItemSetVerificationStatusRequest} sandboxItemSetVerificationStatusRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxItemSetVerificationStatus(sandboxItemSetVerificationStatusRequest: SandboxItemSetVerificationStatusRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxItemSetVerificationStatusResponse>>;
    /**
     * Save the selected accounts when connecting to the Platypus Oauth institution
     * @summary Save the selected accounts when connecting to the Platypus Oauth institution
     * @param {SandboxOauthSelectAccountsRequest} sandboxOauthSelectAccountsRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxOauthSelectAccounts(sandboxOauthSelectAccountsRequest: SandboxOauthSelectAccountsRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<{
        [key: string]: object;
    }>>;
    /**
     * `/sandbox/payment_profile/reset_login/` forces a Payment Profile into a state where the login is no longer valid. This makes it easy to test update mode for Payment Profile in the Sandbox environment.   After calling `/sandbox/payment_profile/reset_login`, calls to the `/transfer/authorization/create` with the Payment Profile will result in a `decision_rationale` `PAYMENT_PROFILE_LOGIN_REQUIRED`. You can then use update mode for Payment Profile to restore it into a good state.   In order to invoke this endpoint, you must first [create a Payment Profile](https://plaid.com/docs/transfer/add-to-app/#create-a-payment-profile-optional) and [go through the Link flow](https://plaid.com/docs/transfer/add-to-app/#create-a-link-token).
     * @summary Reset the login of a Payment Profile
     * @param {SandboxPaymentProfileResetLoginRequest} sandboxPaymentProfileResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxPaymentProfileResetLogin(sandboxPaymentProfileResetLoginRequest: SandboxPaymentProfileResetLoginRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxPaymentProfileResetLoginResponse>>;
    /**
     * Use the `/sandbox/payment/simulate` endpoint to simulate various payment events in the Sandbox environment. This endpoint will trigger the corresponding payment status webhook.
     * @summary Simulate a payment event in Sandbox
     * @param {SandboxPaymentSimulateRequest} sandboxPaymentSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxPaymentSimulate(sandboxPaymentSimulateRequest: SandboxPaymentSimulateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxPaymentSimulateResponse>>;
    /**
     * Use the `/sandbox/processor_token/create` endpoint to create a valid `processor_token` for an arbitrary institution ID and test credentials. The created `processor_token` corresponds to a new Sandbox Item. You can then use this `processor_token` with the `/processor/` API endpoints in Sandbox. You can also use `/sandbox/processor_token/create` with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data.
     * @summary Create a test Item and processor token
     * @param {SandboxProcessorTokenCreateRequest} sandboxProcessorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxProcessorTokenCreate(sandboxProcessorTokenCreateRequest: SandboxProcessorTokenCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxProcessorTokenCreateResponse>>;
    /**
     * Use the `/sandbox/public_token/create` endpoint to create a valid `public_token`  for an arbitrary institution ID, initial products, and test credentials. The created `public_token` maps to a new Sandbox Item. You can then call `/item/public_token/exchange` to exchange the `public_token` for an `access_token` and perform all API actions. `/sandbox/public_token/create` can also be used with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data, or with Plaid\'s [pre-populated Sandbox test accounts](https://plaid.com/docs/sandbox/test-credentials/).
     * @summary Create a test Item
     * @param {SandboxPublicTokenCreateRequest} sandboxPublicTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxPublicTokenCreate(sandboxPublicTokenCreateRequest: SandboxPublicTokenCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxPublicTokenCreateResponse>>;
    /**
     * Use the `/sandbox/transfer/fire_webhook` endpoint to manually trigger a `TRANSFER_EVENTS_UPDATE` webhook in the Sandbox environment.
     * @summary Manually fire a Transfer webhook
     * @param {SandboxTransferFireWebhookRequest} sandboxTransferFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferFireWebhook(sandboxTransferFireWebhookRequest: SandboxTransferFireWebhookRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferFireWebhookResponse>>;
    /**
     * Use the `/sandbox/transfer/ledger/deposit/simulate` endpoint to simulate a ledger deposit event in the Sandbox environment.
     * @summary Simulate a ledger deposit event in Sandbox
     * @param {SandboxTransferLedgerDepositSimulateRequest} sandboxTransferLedgerDepositSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferLedgerDepositSimulate(sandboxTransferLedgerDepositSimulateRequest: SandboxTransferLedgerDepositSimulateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferLedgerDepositSimulateResponse>>;
    /**
     * Use the `/sandbox/transfer/ledger/simulate_available` endpoint to simulate converting pending balance to available balance for all originators in the Sandbox environment.
     * @summary Simulate converting pending balance to available balance
     * @param {SandboxTransferLedgerSimulateAvailableRequest} sandboxTransferLedgerSimulateAvailableRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferLedgerSimulateAvailable(sandboxTransferLedgerSimulateAvailableRequest: SandboxTransferLedgerSimulateAvailableRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferLedgerSimulateAvailableResponse>>;
    /**
     * Use the `/sandbox/transfer/ledger/withdraw/simulate` endpoint to simulate a ledger withdraw event in the Sandbox environment.
     * @summary Simulate a ledger withdraw event in Sandbox
     * @param {SandboxTransferLedgerWithdrawSimulateRequest} sandboxTransferLedgerWithdrawSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferLedgerWithdrawSimulate(sandboxTransferLedgerWithdrawSimulateRequest: SandboxTransferLedgerWithdrawSimulateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferLedgerWithdrawSimulateResponse>>;
    /**
     * Use the `/sandbox/transfer/refund/simulate` endpoint to simulate a refund event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/transfer/event/sync` or `/transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a refund event in Sandbox
     * @param {SandboxTransferRefundSimulateRequest} sandboxTransferRefundSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferRefundSimulate(sandboxTransferRefundSimulateRequest: SandboxTransferRefundSimulateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferRefundSimulateResponse>>;
    /**
     * Use the `/sandbox/transfer/repayment/simulate` endpoint to trigger the creation of a repayment. As a side effect of calling this route, a repayment is created that includes all unreimbursed returns of guaranteed transfers. If there are no such returns, an 400 error is returned.
     * @summary Trigger the creation of a repayment
     * @param {SandboxTransferRepaymentSimulateRequest} sandboxTransferRepaymentSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferRepaymentSimulate(sandboxTransferRepaymentSimulateRequest: SandboxTransferRepaymentSimulateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferRepaymentSimulateResponse>>;
    /**
     * Use the `/sandbox/transfer/simulate` endpoint to simulate a transfer event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/transfer/event/sync` or `/transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a transfer event in Sandbox
     * @param {SandboxTransferSimulateRequest} sandboxTransferSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferSimulate(sandboxTransferSimulateRequest: SandboxTransferSimulateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferSimulateResponse>>;
    /**
     * Use the `/sandbox/transfer/sweep/simulate` endpoint to create a sweep and associated events in the Sandbox environment. Upon calling this endpoint, all transfers with a sweep status of `swept` will become `swept_settled`, all `posted` or `pending` transfers with a sweep status of `unswept` will become `swept`, and all `returned` transfers with a sweep status of `swept` will become `return_swept`.
     * @summary Simulate creating a sweep
     * @param {SandboxTransferSweepSimulateRequest} sandboxTransferSweepSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferSweepSimulate(sandboxTransferSweepSimulateRequest: SandboxTransferSweepSimulateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferSweepSimulateResponse>>;
    /**
     * Use the `/sandbox/transfer/test_clock/advance` endpoint to advance a `test_clock` in the Sandbox environment.  A test clock object represents an independent timeline and has a `virtual_time` field indicating the current timestamp of the timeline. A test clock can be advanced by incrementing `virtual_time`, but may never go back to a lower `virtual_time`.  If a test clock is advanced, we will simulate the changes that ought to occur during the time that elapsed.  For example, a client creates a weekly recurring transfer with a test clock set at t. When the client advances the test clock by setting `virtual_time` = t + 15 days, 2 new originations should be created, along with the webhook events.  The advancement of the test clock from its current `virtual_time` should be limited such that there are no more than 20 originations resulting from the advance operation on each `recurring_transfer` associated with the `test_clock`.  For example, if the recurring transfer associated with this test clock originates once every 4 weeks, you can advance the `virtual_time` up to 80 weeks on each API call.
     * @summary Advance a test clock
     * @param {SandboxTransferTestClockAdvanceRequest} sandboxTransferTestClockAdvanceRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockAdvance(sandboxTransferTestClockAdvanceRequest: SandboxTransferTestClockAdvanceRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferTestClockAdvanceResponse>>;
    /**
     * Use the `/sandbox/transfer/test_clock/create` endpoint to create a `test_clock` in the Sandbox environment.  A test clock object represents an independent timeline and has a `virtual_time` field indicating the current timestamp of the timeline. Test clocks are used for testing recurring transfers in Sandbox.  A test clock can be associated with up to 5 recurring transfers.
     * @summary Create a test clock
     * @param {SandboxTransferTestClockCreateRequest} sandboxTransferTestClockCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockCreate(sandboxTransferTestClockCreateRequest: SandboxTransferTestClockCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferTestClockCreateResponse>>;
    /**
     * Use the `/sandbox/transfer/test_clock/get` endpoint to get a `test_clock` in the Sandbox environment.
     * @summary Get a test clock
     * @param {SandboxTransferTestClockGetRequest} sandboxTransferTestClockGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockGet(sandboxTransferTestClockGetRequest: SandboxTransferTestClockGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferTestClockGetResponse>>;
    /**
     * Use the `/sandbox/transfer/test_clock/list` endpoint to see a list of all your test clocks in the Sandbox environment, by ascending `virtual_time`. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired test clocks.
     * @summary List test clocks
     * @param {SandboxTransferTestClockListRequest} sandboxTransferTestClockListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockList(sandboxTransferTestClockListRequest: SandboxTransferTestClockListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxTransferTestClockListResponse>>;
    /**
     * `/sandbox/user/reset_login/` functions the same as `/sandbox/item/reset_login`, but will modify Items related to a User. This endpoint forces each Item into an `ITEM_LOGIN_REQUIRED` state in order to simulate an Item whose login is no longer valid. This makes it easy to test Link\'s [update mode](https://plaid.com/docs/link/update-mode) flow in the Sandbox environment.  After calling `/sandbox/user/reset_login`, You can then use Plaid Link update mode to restore Items associated with the User to a good state. An `ITEM_LOGIN_REQUIRED` webhook will also be fired after a call to this endpoint, if one is associated with the Item.   In the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error state automatically after 30 days, even if this endpoint is not called.
     * @summary Force item(s) for a Sandbox User into an error state
     * @param {SandboxUserResetLoginRequest} sandboxUserResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxUserResetLogin(sandboxUserResetLoginRequest: SandboxUserResetLoginRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SandboxUserResetLoginResponse>>;
    /**
     * After calling `/signal/evaluate`, call `/signal/decision/report` to report whether the transaction was initiated.
     * @summary Report whether you initiated an ACH transaction
     * @param {SignalDecisionReportRequest} signalDecisionReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalDecisionReport(signalDecisionReportRequest: SignalDecisionReportRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SignalDecisionReportResponse>>;
    /**
     * Use `/signal/evaluate` to evaluate a planned ACH transaction to get a return risk assessment (such as a risk score and risk tier) and additional risk signals.  In order to obtain a valid score for an ACH transaction, Plaid must have an access token for the account, and the Item must be healthy (receiving product updates) or have recently been in a healthy state. If the transaction does not meet eligibility requirements, an error will be returned corresponding to the underlying cause. If `/signal/evaluate` is called on the same transaction multiple times within a 24-hour period, cached results may be returned. For more information please refer to the error documentation on [Item errors](/docs/errors/item/) and [Link in Update Mode](/docs/link/update-mode/).  Note: This request may take some time to complete if Signal is being added to an existing Item. This is because Plaid must communicate directly with the institution when retrieving the data for the first time.
     * @summary Evaluate a planned ACH transaction
     * @param {SignalEvaluateRequest} signalEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalEvaluate(signalEvaluateRequest: SignalEvaluateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SignalEvaluateResponse>>;
    /**
     * When an Item is not initialized with Signal, call `/signal/prepare` to opt-in that Item to the Signal data collection process, developing a Signal score. This should be done on Items where Signal was added in the `additional_consented_products` array but not in the `products`, `optional_products`, or `required_if_supported_products` array. If `/signal/prepare` is skipped on an Item that is not initialized with Signal, the initial call to `/signal/evaluate` on that Item will be less accurate, because Signal will have access to less data for computing the Signal score.  If run on an Item that is already initialized with Signal, this endpoint will return a 200 response and will not modify the Item.
     * @summary Opt-in an Item to Signal
     * @param {SignalPrepareRequest} signalPrepareRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalPrepare(signalPrepareRequest: SignalPrepareRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SignalPrepareResponse>>;
    /**
     * Call the `/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/signal/evaluate` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio.
     * @summary Report a return for an ACH transaction
     * @param {SignalReturnReportRequest} signalReturnReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalReturnReport(signalReturnReportRequest: SignalReturnReportRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SignalReturnReportResponse>>;
    /**
     * Use `/signal/schedule` to schedule a planned ACH transaction.
     * @summary Schedule a planned ACH transaction
     * @param {SignalScheduleRequest} signalScheduleRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalSchedule(signalScheduleRequest: SignalScheduleRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<SignalScheduleResponse>>;
    /**
     * The `/statements/download` endpoint retrieves a single statement PDF in binary format.  The response will contain a `Plaid-Content-Hash` header containing a SHA 256 checksum of the statement. This can be used to verify that the file being sent by Plaid is the same file that was downloaded to your system.
     * @summary Retrieve a single statement.
     * @param {StatementsDownloadRequest} statementsDownloadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    statementsDownload(statementsDownloadRequest: StatementsDownloadRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<any>>;
    /**
     * The `/statements/list` endpoint retrieves a list of all statements associated with an item.
     * @summary Retrieve a list of all statements associated with an item.
     * @param {StatementsListRequest} statementsListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    statementsList(statementsListRequest: StatementsListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<StatementsListResponse>>;
    /**
     * `/statements/refresh` initiates an on-demand extraction to fetch the statements for the provided dates.
     * @summary Refresh statements data.
     * @param {StatementsRefreshRequest} statementsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    statementsRefresh(statementsRefreshRequest: StatementsRefreshRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<StatementsRefreshResponse>>;
    /**
     * The `/beta/transactions/v1/enhance` endpoint enriches raw transaction data provided directly by clients.  The product is currently in beta.
     * @summary enhance locally-held transaction data
     * @param {TransactionsEnhanceGetRequest} transactionsEnhanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsEnhance(transactionsEnhanceGetRequest: TransactionsEnhanceGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransactionsEnhanceGetResponse>>;
    /**
     * The `/transactions/enrich` endpoint enriches raw transaction data generated by your own banking products or retrieved from other non-Plaid sources.
     * @summary Enrich locally-held transaction data
     * @param {TransactionsEnrichRequest} transactionsEnrichRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsEnrich(transactionsEnrichRequest: TransactionsEnrichRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransactionsEnrichResponse>>;
    /**
     * Note: All new implementations are encouraged to use `/transactions/sync` rather than `/transactions/get`. `/transactions/sync` provides the same functionality as `/transactions/get` and improves developer ease-of-use for handling transactions updates.  The `/transactions/get` endpoint allows developers to receive user-authorized transaction data for credit, depository, and some loan-type accounts (only those with account subtype `student`; coverage may be limited). For transaction history from investments accounts, use the [Investments endpoint](https://plaid.com/docs/api/products/investments/) instead. Transaction data is standardized across financial institutions, and in many cases transactions are linked to a clean name, entity type, location, and category. Similarly, account data is standardized and returned with a clean name, number, balance, and other meta information where available.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Transactions are not immutable and can also be removed altogether by the institution; a removed transaction will no longer appear in `/transactions/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).  Due to the potentially large number of transactions associated with an Item, results are paginated. Manipulate the `count` and `offset` parameters in conjunction with the `total_transactions` response body field to fetch all available transactions.  Data returned by `/transactions/get` will be the data available for the Item as of the most recent successful check for new transactions. Plaid typically checks for new data multiple times a day, but these checks may occur less frequently, such as once a day, depending on the institution. To find out when the Item was last updated, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, you can use the `/transactions/refresh` endpoint.  Note that data may not be immediately available to `/transactions/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `transactions`, or upon the first call to `/transactions/get`, if it wasn\'t. To be alerted when transaction data is ready to be fetched, listen for the [`INITIAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#initial_update) and [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhooks. If no transaction history is ready when `/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.
     * @summary Get transaction data
     * @param {TransactionsGetRequest} transactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsGet(transactionsGetRequest: TransactionsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransactionsGetResponse>>;
    /**
     * The `/transactions/recurring/get` endpoint allows developers to receive a summary of the recurring outflow and inflow streams (expenses and deposits) from a user’s checking, savings or credit card accounts. Additionally, Plaid provides key insights about each recurring stream including the category, merchant, last amount, and more. Developers can use these insights to build tools and experiences that help their users better manage cash flow, monitor subscriptions, reduce spend, and stay on track with bill payments.  This endpoint is offered as an add-on to Transactions. To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.  This endpoint can only be called on an Item that has already been initialized with Transactions (either during Link, by specifying it in `/link/token/create`; or after Link, by calling `/transactions/get` or `/transactions/sync`).   When using Recurring Transactions, for best results, make sure to use the [`days_requested`](https://plaid.com/docs/api/link/#link-token-create-request-transactions-days-requested) parameter to request at least 180 days of history when initializing Items with Transactions. Once all historical transactions have been fetched, call `/transactions/recurring/get` to receive the Recurring Transactions streams and subscribe to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook. To know when historical transactions have been fetched, if you are using `/transactions/sync` listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#SyncUpdatesAvailableWebhook-historical-update-complete) webhook and check that the `historical_update_complete` field in the payload is `true`. If using `/transactions/get`, listen for the [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhook.  After the initial call, you can call `/transactions/recurring/get` endpoint at any point in the future to retrieve the latest summary of recurring streams. Listen to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook to be notified when new updates are available.
     * @summary Fetch recurring transaction streams
     * @param {TransactionsRecurringGetRequest} transactionsRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRecurringGet(transactionsRecurringGetRequest: TransactionsRecurringGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransactionsRecurringGetResponse>>;
    /**
     * `/transactions/refresh` is an optional endpoint that initiates an on-demand extraction to fetch the newest transactions for an Item. The on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Transactions-enabled Item. The Item must already have Transactions added as a product in order to call `/transactions/refresh`.  If changes to transactions are discovered after calling `/transactions/refresh`, Plaid will fire a webhook: for `/transactions/sync` users, [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) will be fired if there are any transactions updated, added, or removed. For users of both `/transactions/sync` and `/transactions/get`, [`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/products/transactions/#transactions_removed) will be fired if any removed transactions are detected, and [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/transactions/#default_update) will be fired if any new transactions are detected. New transactions can be fetched by calling `/transactions/get` or `/transactions/sync`.  Note that the `/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) non-depository accounts and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item that contains only non-depository accounts from that institution.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/transactions/refresh` is offered as an optional add-on to Transactions and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh transaction data
     * @param {TransactionsRefreshRequest} transactionsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRefresh(transactionsRefreshRequest: TransactionsRefreshRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransactionsRefreshResponse>>;
    /**
     * The `/transactions/rules/v1/create` endpoint creates transaction categorization rules.  Rules will be applied on the Item\'s transactions returned in `/transactions/get` response.  The product is currently in beta. To request access, contact transactions-feedback@plaid.com.
     * @summary Create transaction category rule
     * @param {TransactionsRulesCreateRequest} transactionsRulesCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRulesCreate(transactionsRulesCreateRequest: TransactionsRulesCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransactionsRulesCreateResponse>>;
    /**
     * The `/transactions/rules/v1/list` returns a list of transaction rules created for the Item associated with the access token.
     * @summary Return a list of rules created for the Item associated with the access token.
     * @param {TransactionsRulesListRequest} transactionsRulesListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRulesList(transactionsRulesListRequest: TransactionsRulesListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransactionsRulesListResponse>>;
    /**
     * The `/transactions/rules/v1/remove` endpoint is used to remove a transaction rule.
     * @summary Remove transaction rule
     * @param {TransactionsRulesRemoveRequest} transactionsRulesRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRulesRemove(transactionsRulesRemoveRequest: TransactionsRulesRemoveRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransactionsRulesRemoveResponse>>;
    /**
     * The `/transactions/sync` endpoint retrieves transactions associated with an Item and can fetch updates using a cursor to track which updates have already been seen.  For important instructions on integrating with `/transactions/sync`, see the [Transactions integration overview](https://plaid.com/docs/transactions/#integration-overview). If you are migrating from an existing integration using `/transactions/get`, see the [Transactions Sync migration guide](https://plaid.com/docs/transactions/sync-migration/).  This endpoint supports `credit`, `depository`, and some `loan`-type accounts (only those with account subtype `student`). For `investments` accounts, use `/investments/transactions/get` instead.   When retrieving paginated updates, track both the `next_cursor` from the latest response and the original cursor from the first call in which `has_more` was `true`; if a call to `/transactions/sync` fails when retrieving a paginated update (e.g due to the [`TRANSACTIONS_SYNC_MUTATION_DURING_PAGINATION`](https://plaid.com/docs/errors/transactions/#transactions_sync_mutation_during_pagination) error), the entire pagination request loop must be restarted beginning with the cursor for the first page of the update, rather than retrying only the single request that failed.  If transactions data is not yet available for the Item, which can happen if the Item was not initialized with transactions during the `/link/token/create` call or if `/transactions/sync` was called within a few seconds of Item creation, `/transactions/sync` will return empty transactions arrays.   Plaid typically checks for new transactions data between one and four times per day, depending on the institution. To find out when transactions were last updated for an Item, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, use the `/transactions/refresh` endpoint.  To be alerted when new transactions are available, listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) webhook.
     * @summary Get incremental transaction updates on an Item
     * @param {TransactionsSyncRequest} transactionsSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsSync(transactionsSyncRequest: TransactionsSyncRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransactionsSyncResponse>>;
    /**
     * The `/beta/transactions/user_insights/v1/get` gets user insights for clients who have enriched data with `/transactions/enrich`.  The product is currently in beta.
     * @summary Obtain user insights based on transactions sent through /transactions/enrich
     * @param {TransactionsUserInsightsGetRequest} transactionsUserInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsUserInsightsGet(transactionsUserInsightsGetRequest: TransactionsUserInsightsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransactionsUserInsightsGetResponse>>;
    /**
     * Use the `/transfer/authorization/cancel` endpoint to cancel a transfer authorization. A transfer authorization is eligible for cancellation if it has not yet been used to create a transfer.
     * @summary Cancel a transfer authorization
     * @param {TransferAuthorizationCancelRequest} transferAuthorizationCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferAuthorizationCancel(transferAuthorizationCancelRequest: TransferAuthorizationCancelRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferAuthorizationCancelResponse>>;
    /**
     * Use the `/transfer/authorization/create` endpoint to authorize a transfer. This endpoint must be called prior to calling `/transfer/create`. The transfer authorization will expire if not used after one hour. (You can contact your account manager to change the default authorization lifetime.)   There are four possible outcomes to calling this endpoint:     - If the `authorization.decision` in the response is `declined`, the proposed transfer has failed the risk check and you cannot proceed with the transfer.     - If the `authorization.decision` is `user_action_required`, additional user input is needed, usually to fix a broken bank connection, before Plaid can properly assess the risk. You need to launch Link in update mode to complete the required user action. When calling `/link/token/create` to get a new Link token, instead of providing `access_token` in the request, you should set [`transfer.authorization_id`](https://plaid.com/docs/api/link/#link-token-create-request-transfer-authorization-id) as the `authorization.id`. After the Link flow is completed, you may re-attempt the authorization.    - If the `authorization.decision` is `approved`, and the `authorization.rationale_code` is `null`, the transfer has passed the risk check and you can proceed to call `/transfer/create`.      - If the `authorization.decision` is `approved` and the `authorization.rationale_code` is non-`null`, the risk check could not be run: you may proceed with the transfer, but should perform your own risk evaluation. For more details, see the response schema.  In Plaid\'s Sandbox environment the decisions will be returned as follows:    - To approve a transfer with `null` rationale code, make an authorization request with an `amount` less than the available balance in the account.    - To approve a transfer with the rationale code `MANUALLY_VERIFIED_ITEM`, create an Item in Link through the [Same Day Micro-deposits flow](https://plaid.com/docs/auth/coverage/testing/#testing-same-day-micro-deposits).    - To get an authorization decision of `user_action_required`, [reset the login for an Item](https://plaid.com/docs/sandbox/#item_login_required).    - To decline a transfer with the rationale code `NSF`, the available balance on the account must be less than the authorization `amount`. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.    - To decline a transfer with the rationale code `RISK`, the available balance on the account must be exactly $0. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.
     * @summary Create a transfer authorization
     * @param {TransferAuthorizationCreateRequest} transferAuthorizationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferAuthorizationCreate(transferAuthorizationCreateRequest: TransferAuthorizationCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferAuthorizationCreateResponse>>;
    /**
     * (Deprecated) Use the `/transfer/balance/get` endpoint to view a balance held with Plaid.
     * @summary (Deprecated) Retrieve a balance held with Plaid
     * @param {TransferBalanceGetRequest} transferBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferBalanceGet(transferBalanceGetRequest: TransferBalanceGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferBalanceGetResponse>>;
    /**
     * Use the `/transfer/cancel` endpoint to cancel a transfer.  A transfer is eligible for cancellation if the `cancellable` property returned by `/transfer/get` is `true`.
     * @summary Cancel a transfer
     * @param {TransferCancelRequest} transferCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferCancel(transferCancelRequest: TransferCancelRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferCancelResponse>>;
    /**
     * Use the `/transfer/capabilities/get` endpoint to determine the RTP eligibility information of an account to be used with Transfer. This endpoint works on all Transfer-capable Items, including those created by `/transfer/migrate_account`. To simulate RTP eligibility in Sandbox, log in using the username `user_good` and password `pass_good` and use the first two checking and savings accounts in the \"First Platypus Bank\" institution (ending in 0000 or 1111), which will return `true`. Any other account will return `false`.
     * @summary Get RTP eligibility information of a transfer
     * @param {TransferCapabilitiesGetRequest} transferCapabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferCapabilitiesGet(transferCapabilitiesGetRequest: TransferCapabilitiesGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferCapabilitiesGetResponse>>;
    /**
     * Use the `/transfer/configuration/get` endpoint to view your transfer product configurations.
     * @summary Get transfer product configuration
     * @param {TransferConfigurationGetRequest} transferConfigurationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferConfigurationGet(transferConfigurationGetRequest: TransferConfigurationGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferConfigurationGetResponse>>;
    /**
     * Use the `/transfer/create` endpoint to initiate a new transfer. This endpoint is retryable and idempotent; if a transfer with the provided `transfer_id` has already been created, it will return the transfer details without creating a new transfer. A transfer may still be created if a 500 error is returned; to detect this scenario, use [Transfer events](https://plaid.com/docs/transfer/reconciling-transfers/).
     * @summary Create a transfer
     * @param {TransferCreateRequest} transferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferCreate(transferCreateRequest: TransferCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferCreateResponse>>;
    /**
     * Third-party sender customers can use `/transfer/diligence/document/upload` endpoint to upload a document on behalf of its end customer (i.e. originator) to Plaid. You’ll need to send a request of type multipart/form-data. You must provide the `client_id` in the `PLAID-CLIENT-ID` header and `secret` in the `PLAID-SECRET` header.
     * @summary Upload transfer diligence document on behalf of the originator
     * @param {TransferDiligenceDocumentUploadRequest} transferDiligenceDocumentUploadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferDiligenceDocumentUpload(transferDiligenceDocumentUploadRequest: TransferDiligenceDocumentUploadRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferDiligenceDocumentUploadResponse>>;
    /**
     * Use the `/transfer/diligence/submit` endpoint to submit transfer diligence on behalf of the originator (i.e., the end customer).
     * @summary Submit transfer diligence on behalf of the originator
     * @param {TransferDiligenceSubmitRequest} transferDiligenceSubmitRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferDiligenceSubmit(transferDiligenceSubmitRequest: TransferDiligenceSubmitRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferDiligenceSubmitResponse>>;
    /**
     * Use the `/transfer/event/list` endpoint to get a list of transfer events based on specified filter criteria.
     * @summary List transfer events
     * @param {TransferEventListRequest} transferEventListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferEventList(transferEventListRequest: TransferEventListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferEventListResponse>>;
    /**
     * `/transfer/event/sync` allows you to request up to the next 25 transfer events that happened after a specific `event_id`. Use the `/transfer/event/sync` endpoint to guarantee you have seen all transfer events.
     * @summary Sync transfer events
     * @param {TransferEventSyncRequest} transferEventSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferEventSync(transferEventSyncRequest: TransferEventSyncRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferEventSyncResponse>>;
    /**
     * The `/transfer/get` endpoint fetches information about the transfer corresponding to the given `transfer_id` or `authorization_id`. One of `transfer_id` or `authorization_id` must be populated but not both.
     * @summary Retrieve a transfer
     * @param {TransferGetRequest} transferGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferGet(transferGetRequest: TransferGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferGetResponse>>;
    /**
     * Use the `/transfer/intent/create` endpoint to generate a transfer intent object and invoke the Transfer UI.
     * @summary Create a transfer intent object to invoke the Transfer UI
     * @param {TransferIntentCreateRequest} transferIntentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferIntentCreate(transferIntentCreateRequest: TransferIntentCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferIntentCreateResponse>>;
    /**
     * Use the `/transfer/intent/get` endpoint to retrieve more information about a transfer intent.
     * @summary Retrieve more information about a transfer intent
     * @param {TransferIntentGetRequest} transferIntentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferIntentGet(transferIntentGetRequest: TransferIntentGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferIntentGetResponse>>;
    /**
     * Use the `/transfer/ledger/deposit` endpoint to deposit funds into Plaid Ledger.
     * @summary Deposit funds into a Plaid Ledger balance
     * @param {TransferLedgerDepositRequest} transferLedgerDepositRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerDeposit(transferLedgerDepositRequest: TransferLedgerDepositRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferLedgerDepositResponse>>;
    /**
     * Use the `/transfer/ledger/distribute` endpoint to move available balance between the ledgers of the platform and one of its originators.
     * @summary Move available balance between the ledgers of the platform and one of its originators
     * @param {TransferLedgerDistributeRequest} transferLedgerDistributeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerDistribute(transferLedgerDistributeRequest: TransferLedgerDistributeRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferLedgerDistributeResponse>>;
    /**
     * Use the `/transfer/ledger/get` endpoint to view a balance on the ledger held with Plaid.
     * @summary Retrieve Plaid Ledger balance
     * @param {TransferLedgerGetRequest} transferLedgerGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerGet(transferLedgerGetRequest: TransferLedgerGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferLedgerGetResponse>>;
    /**
     * Use the `/transfer/ledger/withdraw` endpoint to withdraw funds from a Plaid Ledger balance.
     * @summary Withdraw funds from a Plaid Ledger balance
     * @param {TransferLedgerWithdrawRequest} transferLedgerWithdrawRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerWithdraw(transferLedgerWithdrawRequest: TransferLedgerWithdrawRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferLedgerWithdrawResponse>>;
    /**
     * Use the `/transfer/list` endpoint to see a list of all your transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired transfers.
     * @summary List transfers
     * @param {TransferListRequest} transferListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferList(transferListRequest: TransferListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferListResponse>>;
    /**
     * Use the `/transfer/metrics/get` endpoint to view your transfer product usage metrics.
     * @summary Get transfer product usage metrics
     * @param {TransferMetricsGetRequest} transferMetricsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferMetricsGet(transferMetricsGetRequest: TransferMetricsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferMetricsGetResponse>>;
    /**
     * As an alternative to adding Items via Link, you can also use the `/transfer/migrate_account` endpoint to migrate known account and routing numbers to Plaid Items. This endpoint is also required when adding an Item for use with wire transfers; if you intend to create wire transfers on this account, you must provide `wire_routing_number`. Note that Items created in this way are not compatible with endpoints for other products, such as `/accounts/balance/get`, and can only be used with Transfer endpoints.  If you require access to other endpoints, create the Item through Link instead.  Access to `/transfer/migrate_account` is not enabled by default; to obtain access, contact your Plaid Account Manager.
     * @summary Migrate account into Transfers
     * @param {TransferMigrateAccountRequest} transferMigrateAccountRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferMigrateAccount(transferMigrateAccountRequest: TransferMigrateAccountRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferMigrateAccountResponse>>;
    /**
     * Use the `/transfer/originator/create` endpoint to create a new originator and return an `originator_client_id`.
     * @summary Create a new originator
     * @param {TransferOriginatorCreateRequest} transferOriginatorCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorCreate(transferOriginatorCreateRequest: TransferOriginatorCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferOriginatorCreateResponse>>;
    /**
     * Use the `/transfer/originator/funding_account/update` endpoint to update the funding account associated with the originator.
     * @summary Update the funding account associated with the originator
     * @param {TransferOriginatorFundingAccountUpdateRequest} transferOriginatorFundingAccountUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorFundingAccountUpdate(transferOriginatorFundingAccountUpdateRequest: TransferOriginatorFundingAccountUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferOriginatorFundingAccountUpdateResponse>>;
    /**
     * The `/transfer/originator/get` endpoint gets status updates for an originator\'s onboarding process. This information is also available via the Transfer page on the Plaid dashboard.
     * @summary Get status of an originator\'s onboarding
     * @param {TransferOriginatorGetRequest} transferOriginatorGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorGet(transferOriginatorGetRequest: TransferOriginatorGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferOriginatorGetResponse>>;
    /**
     * The `/transfer/originator/list` endpoint gets status updates for all of your originators\' onboarding. This information is also available via the Plaid dashboard.
     * @summary Get status of all originators\' onboarding
     * @param {TransferOriginatorListRequest} transferOriginatorListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorList(transferOriginatorListRequest: TransferOriginatorListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferOriginatorListResponse>>;
    /**
     * The `/transfer/platform/originator/create` endpoint allows gathering information about the originator specific to the Scaled Platform Transfer offering, including the originator\'s agreement to legal terms required before accepting any further information related to the originator.
     * @summary Create an originator for scaled platform customers
     * @param {TransferPlatformOriginatorCreateRequest} transferPlatformOriginatorCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferPlatformOriginatorCreate(transferPlatformOriginatorCreateRequest: TransferPlatformOriginatorCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferPlatformOriginatorCreateResponse>>;
    /**
     * Use the `/transfer/platform/person/create` endpoint to create a person record associated with an originator and optionally submit person-specific requirements.
     * @summary Create a person associated with an originator
     * @param {TransferPlatformPersonCreateRequest} transferPlatformPersonCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferPlatformPersonCreate(transferPlatformPersonCreateRequest: TransferPlatformPersonCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferPlatformPersonCreateResponse>>;
    /**
     * The `/transfer/platform/requirement/submit` endpoint allows platforms to submit onboarding requirements for an originator as part of the Scaled Platform Transfer offering.
     * @summary Submit onboarding requirements for Scaled Platform originators
     * @param {TransferPlatformRequirementSubmitRequest} transferPlatformRequirementSubmitRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferPlatformRequirementSubmit(transferPlatformRequirementSubmitRequest: TransferPlatformRequirementSubmitRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferPlatformRequirementSubmitResponse>>;
    /**
     * The `/transfer/questionnaire/create` endpoint generates a Plaid-hosted onboarding UI URL. Redirect the originator to this URL to provide their due diligence information and agree to Plaid’s terms for ACH money movement.
     * @summary Generate a Plaid-hosted onboarding UI URL.
     * @param {TransferQuestionnaireCreateRequest} transferQuestionnaireCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferQuestionnaireCreate(transferQuestionnaireCreateRequest: TransferQuestionnaireCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferQuestionnaireCreateResponse>>;
    /**
     * Use the `/transfer/recurring/cancel` endpoint to cancel a recurring transfer.  Scheduled transfer that hasn\'t been submitted to bank will be cancelled.
     * @summary Cancel a recurring transfer.
     * @param {TransferRecurringCancelRequest} transferRecurringCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringCancel(transferRecurringCancelRequest: TransferRecurringCancelRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferRecurringCancelResponse>>;
    /**
     * Use the `/transfer/recurring/create` endpoint to initiate a new recurring transfer. This capability is not currently supported for Transfer UI or Platform Payments (beta) customers.
     * @summary Create a recurring transfer
     * @param {TransferRecurringCreateRequest} transferRecurringCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringCreate(transferRecurringCreateRequest: TransferRecurringCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferRecurringCreateResponse>>;
    /**
     * The `/transfer/recurring/get` fetches information about the recurring transfer corresponding to the given `recurring_transfer_id`.
     * @summary Retrieve a recurring transfer
     * @param {TransferRecurringGetRequest} transferRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringGet(transferRecurringGetRequest: TransferRecurringGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferRecurringGetResponse>>;
    /**
     * Use the `/transfer/recurring/list` endpoint to see a list of all your recurring transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired recurring transfers.
     * @summary List recurring transfers
     * @param {TransferRecurringListRequest} transferRecurringListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringList(transferRecurringListRequest: TransferRecurringListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferRecurringListResponse>>;
    /**
     * Use the `/transfer/refund/cancel` endpoint to cancel a refund.  A refund is eligible for cancellation if it has not yet been submitted to the payment network.
     * @summary Cancel a refund
     * @param {TransferRefundCancelRequest} transferRefundCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRefundCancel(transferRefundCancelRequest: TransferRefundCancelRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferRefundCancelResponse>>;
    /**
     * Use the `/transfer/refund/create` endpoint to create a refund for a transfer. A transfer can be refunded if the transfer was initiated in the past 180 days.  Refunds come out of the available balance of the ledger used for the original debit transfer. If there are not enough funds in the available balance to cover the refund amount, the refund will be rejected. You can create a refund at any time. Plaid does not impose any hold time on refunds.
     * @summary Create a refund
     * @param {TransferRefundCreateRequest} transferRefundCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRefundCreate(transferRefundCreateRequest: TransferRefundCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferRefundCreateResponse>>;
    /**
     * The `/transfer/refund/get` endpoint fetches information about the refund corresponding to the given `refund_id`.
     * @summary Retrieve a refund
     * @param {TransferRefundGetRequest} transferRefundGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRefundGet(transferRefundGetRequest: TransferRefundGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferRefundGetResponse>>;
    /**
     * The `/transfer/repayment/list` endpoint fetches repayments matching the given filters. Repayments are returned in reverse-chronological order (most recent first) starting at the given `start_time`.
     * @summary Lists historical repayments
     * @param {TransferRepaymentListRequest} transferRepaymentListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRepaymentList(transferRepaymentListRequest: TransferRepaymentListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferRepaymentListResponse>>;
    /**
     * The `/transfer/repayment/return/list` endpoint retrieves the set of returns that were batched together into the specified repayment. The sum of amounts of returns retrieved by this request equals the amount of the repayment.
     * @summary List the returns included in a repayment
     * @param {TransferRepaymentReturnListRequest} transferRepaymentReturnListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRepaymentReturnList(transferRepaymentReturnListRequest: TransferRepaymentReturnListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferRepaymentReturnListResponse>>;
    /**
     * The `/transfer/sweep/get` endpoint fetches a sweep corresponding to the given `sweep_id`.
     * @summary Retrieve a sweep
     * @param {TransferSweepGetRequest} transferSweepGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferSweepGet(transferSweepGetRequest: TransferSweepGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferSweepGetResponse>>;
    /**
     * The `/transfer/sweep/list` endpoint fetches sweeps matching the given filters.
     * @summary List sweeps
     * @param {TransferSweepListRequest} transferSweepListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferSweepList(transferSweepListRequest: TransferSweepListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<TransferSweepListResponse>>;
    /**
     * Returns user permissioned account data including identity and Item access tokens.
     * @summary Retrieve User Account
     * @param {UserAccountSessionGetRequest} userAccountSessionGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userAccountSessionGet(userAccountSessionGetRequest: UserAccountSessionGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<UserAccountSessionGetResponse>>;
    /**
     * This endpoint should be called for each of your end users before they begin a Plaid Check or Income flow, or a Multi-Item Link flow. This provides you a single token to access all data associated with the user. You should only create one per end user.  The `consumer_report_user_identity` object must be present in order to create a Plaid Check Consumer Report for a user. If it is not provided during the `/user/create` call, it can be added later by calling `/user/update`. Plaid Check Consumer Reports can only be created for US-based users; the user\'s address country must be `US`.  If you call the endpoint multiple times with the same `client_user_id`, the first creation call will succeed and the rest will fail with an error message indicating that the user has been created for the given `client_user_id`.  Ensure that you store the `user_token` along with your user\'s identifier in your database, as it is not possible to retrieve a previously created `user_token`.
     * @summary Create user
     * @param {UserCreateRequest} userCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userCreate(userCreateRequest: UserCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<UserCreateResponse>>;
    /**
     * Returns Items associated with a User along with their corresponding statuses.
     * @summary Get Items associated with a User
     * @param {UserItemsGetRequest} userItemsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userItemsGet(userItemsGetRequest: UserItemsGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<UserItemsGetResponse>>;
    /**
     * `/user/remove` deletes a user token and and associated information, including any Items associated with the token.  Any subsequent calls to retrieve information using the same user token will result in an error stating the user does not exist.
     * @summary Remove user
     * @param {UserRemoveRequest} userRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userRemove(userRemoveRequest: UserRemoveRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<UserRemoveResponse>>;
    /**
     * This endpoint is used to create a third-party user token. This token can be shared with and used by a specified third-party client to access data associated with the user through supported endpoints.  Ensure you store the `third_party_user_token` along with the `user_token` and `third_party_client_id`, as it is not possible to retrieve a previously created `third_party_user_token`.
     * @summary Create a third-party user token
     * @param {UserThirdPartyTokenCreateRequest} userThirdPartyTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userThirdPartyTokenCreate(userThirdPartyTokenCreateRequest: UserThirdPartyTokenCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<UserThirdPartyTokenCreateResponse>>;
    /**
     * This endpoint is used to delete a third-party user token. Once removed, the token can longer be used to access data associated with the user.   Any subsequent calls to retrieve information using the same third-party user token will result in an error stating the third-party user token does not exist.
     * @summary Remove a third-party user token
     * @param {UserThirdPartyTokenRemoveRequest} userThirdPartyTokenRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userThirdPartyTokenRemove(userThirdPartyTokenRemoveRequest: UserThirdPartyTokenRemoveRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<UserThirdPartyTokenRemoveResponse>>;
    /**
     * This endpoint is used to update user information associated with an existing `user_token`. It can also be used to enable an existing `user_token` for use with Consumer Reports by Plaid Check, by adding a `consumer_report_user_identity` object to the user. Plaid Check Consumer Reports can only be created for US-based users; the user\'s address country must be `US`.
     * @summary Update user information
     * @param {UserUpdateRequest} userUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userUpdate(userUpdateRequest: UserUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<UserUpdateResponse>>;
    /**
     * Create an e-wallet. The response is the newly created e-wallet object.
     * @summary Create an e-wallet
     * @param {WalletCreateRequest} walletCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletCreate(walletCreateRequest: WalletCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WalletCreateResponse>>;
    /**
     * Fetch an e-wallet. The response includes the current balance.
     * @summary Fetch an e-wallet
     * @param {WalletGetRequest} walletGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletGet(walletGetRequest: WalletGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WalletGetResponse>>;
    /**
     * This endpoint lists all e-wallets in descending order of creation.
     * @summary Fetch a list of e-wallets
     * @param {WalletListRequest} walletListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletList(walletListRequest: WalletListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WalletListResponse>>;
    /**
     * Execute a transaction using the specified e-wallet. Specify the e-wallet to debit from, the counterparty to credit to, the idempotency key to prevent duplicate transactions, the amount and reference for the transaction. Transactions will settle in seconds to several days, depending on the underlying payment rail.
     * @summary Execute a transaction using an e-wallet
     * @param {WalletTransactionExecuteRequest} walletTransactionExecuteRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletTransactionExecute(walletTransactionExecuteRequest: WalletTransactionExecuteRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WalletTransactionExecuteResponse>>;
    /**
     * Fetch a specific e-wallet transaction
     * @summary Fetch an e-wallet transaction
     * @param {WalletTransactionGetRequest} walletTransactionGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletTransactionGet(walletTransactionGetRequest: WalletTransactionGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WalletTransactionGetResponse>>;
    /**
     * This endpoint lists the latest transactions of the specified e-wallet. Transactions are returned in descending order by the `created_at` time.
     * @summary List e-wallet transactions
     * @param {WalletTransactionListRequest} walletTransactionListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletTransactionList(walletTransactionListRequest: WalletTransactionListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WalletTransactionListResponse>>;
    /**
     * Create a new entity watchlist screening to check your customer against watchlists defined in the associated entity watchlist program. If your associated program has ongoing screening enabled, this is the profile information that will be used to monitor your customer over time.
     * @summary Create a watchlist screening for an entity
     * @param {WatchlistScreeningEntityCreateRequest} watchlistScreeningEntityCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityCreate(watchlistScreeningEntityCreateRequest: WatchlistScreeningEntityCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningEntityCreateResponse>>;
    /**
     * Retrieve an entity watchlist screening.
     * @summary Get an entity screening
     * @param {WatchlistScreeningEntityGetRequest} watchlistScreeningEntityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityGet(watchlistScreeningEntityGetRequest: WatchlistScreeningEntityGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningEntityGetResponse>>;
    /**
     * List all changes to the entity watchlist screening in reverse-chronological order. If the watchlist screening has not been edited, no history will be returned.
     * @summary List history for entity watchlist screenings
     * @param {WatchlistScreeningEntityHistoryListRequest} watchlistScreeningEntityHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityHistoryList(watchlistScreeningEntityHistoryListRequest: WatchlistScreeningEntityHistoryListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningEntityHistoryListResponse>>;
    /**
     * List all hits for the entity watchlist screening.
     * @summary List hits for entity watchlist screenings
     * @param {WatchlistScreeningEntityHitListRequest} watchlistScreeningEntityHitListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityHitList(watchlistScreeningEntityHitListRequest: WatchlistScreeningEntityHitListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningEntityHitListResponse>>;
    /**
     * List all entity screenings.
     * @summary List entity watchlist screenings
     * @param {WatchlistScreeningEntityListRequest} watchlistScreeningEntityListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityList(watchlistScreeningEntityListRequest: WatchlistScreeningEntityListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningEntityListResponse>>;
    /**
     * Get an entity watchlist screening program
     * @summary Get entity watchlist screening program
     * @param {WatchlistScreeningEntityProgramGetRequest} watchlistScreeningEntityProgramGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityProgramGet(watchlistScreeningEntityProgramGetRequest: WatchlistScreeningEntityProgramGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningEntityProgramGetResponse>>;
    /**
     * List all entity watchlist screening programs
     * @summary List entity watchlist screening programs
     * @param {WatchlistScreeningEntityProgramListRequest} watchlistScreeningEntityProgramListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityProgramList(watchlistScreeningEntityProgramListRequest: WatchlistScreeningEntityProgramListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningEntityProgramListResponse>>;
    /**
     * Create a review for an entity watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary Create a review for an entity watchlist screening
     * @param {WatchlistScreeningEntityReviewCreateRequest} watchlistScreeningEntityReviewCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityReviewCreate(watchlistScreeningEntityReviewCreateRequest: WatchlistScreeningEntityReviewCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningEntityReviewCreateResponse>>;
    /**
     * List all reviews for a particular entity watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary List reviews for entity watchlist screenings
     * @param {WatchlistScreeningEntityReviewListRequest} watchlistScreeningEntityReviewListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityReviewList(watchlistScreeningEntityReviewListRequest: WatchlistScreeningEntityReviewListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningEntityReviewListResponse>>;
    /**
     * Update an entity watchlist screening.
     * @summary Update an entity screening
     * @param {WatchlistScreeningEntityUpdateRequest} watchlistScreeningEntityUpdateRequest The entity screening was successfully updated.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityUpdate(watchlistScreeningEntityUpdateRequest: WatchlistScreeningEntityUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningEntityUpdateResponse>>;
    /**
     * Create a new Watchlist Screening to check your customer against watchlists defined in the associated Watchlist Program. If your associated program has ongoing screening enabled, this is the profile information that will be used to monitor your customer over time.
     * @summary Create a watchlist screening for a person
     * @param {WatchlistScreeningIndividualCreateRequest} watchlistScreeningIndividualCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualCreate(watchlistScreeningIndividualCreateRequest: WatchlistScreeningIndividualCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningIndividualCreateResponse>>;
    /**
     * Retrieve a previously created individual watchlist screening
     * @summary Retrieve an individual watchlist screening
     * @param {WatchlistScreeningIndividualGetRequest} watchlistScreeningIndividualGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualGet(watchlistScreeningIndividualGetRequest: WatchlistScreeningIndividualGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningIndividualGetResponse>>;
    /**
     * List all changes to the individual watchlist screening in reverse-chronological order. If the watchlist screening has not been edited, no history will be returned.
     * @summary List history for individual watchlist screenings
     * @param {WatchlistScreeningIndividualHistoryListRequest} watchlistScreeningIndividualHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualHistoryList(watchlistScreeningIndividualHistoryListRequest: WatchlistScreeningIndividualHistoryListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningIndividualHistoryListResponse>>;
    /**
     * List all hits found by Plaid for a particular individual watchlist screening.
     * @summary List hits for individual watchlist screening
     * @param {WatchlistScreeningIndividualHitListRequest} watchlistScreeningIndividualHitListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualHitList(watchlistScreeningIndividualHitListRequest: WatchlistScreeningIndividualHitListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningIndividualHitListResponse>>;
    /**
     * List previously created watchlist screenings for individuals
     * @summary List Individual Watchlist Screenings
     * @param {WatchlistScreeningIndividualListRequest} watchlistScreeningIndividualListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualList(watchlistScreeningIndividualListRequest: WatchlistScreeningIndividualListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningIndividualListResponse>>;
    /**
     * Get an individual watchlist screening program
     * @summary Get individual watchlist screening program
     * @param {WatchlistScreeningIndividualProgramGetRequest} watchlistScreeningIndividualProgramGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualProgramGet(watchlistScreeningIndividualProgramGetRequest: WatchlistScreeningIndividualProgramGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningIndividualProgramGetResponse>>;
    /**
     * List all individual watchlist screening programs
     * @summary List individual watchlist screening programs
     * @param {WatchlistScreeningIndividualProgramListRequest} watchlistScreeningIndividualProgramListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualProgramList(watchlistScreeningIndividualProgramListRequest: WatchlistScreeningIndividualProgramListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningIndividualProgramListResponse>>;
    /**
     * Create a review for the individual watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary Create a review for an individual watchlist screening
     * @param {WatchlistScreeningIndividualReviewCreateRequest} watchlistScreeningIndividualReviewCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualReviewCreate(watchlistScreeningIndividualReviewCreateRequest: WatchlistScreeningIndividualReviewCreateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningIndividualReviewCreateResponse>>;
    /**
     * List all reviews for the individual watchlist screening.
     * @summary List reviews for individual watchlist screenings
     * @param {WatchlistScreeningIndividualReviewListRequest} watchlistScreeningIndividualReviewListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualReviewList(watchlistScreeningIndividualReviewListRequest: WatchlistScreeningIndividualReviewListRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningIndividualReviewListResponse>>;
    /**
     * Update a specific individual watchlist screening. This endpoint can be used to add additional customer information, correct outdated information, add a reference id, assign the individual to a reviewer, and update which program it is associated with. Please note that you may not update `search_terms` and `status` at the same time since editing `search_terms` may trigger an automatic `status` change.
     * @summary Update individual watchlist screening
     * @param {WatchlistScreeningIndividualUpdateRequest} watchlistScreeningIndividualUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualUpdate(watchlistScreeningIndividualUpdateRequest: WatchlistScreeningIndividualUpdateRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WatchlistScreeningIndividualUpdateResponse>>;
    /**
     * Plaid signs all outgoing webhooks and provides JSON Web Tokens (JWTs) so that you can verify the authenticity of any incoming webhooks to your application. A message signature is included in the `Plaid-Verification` header.  The `/webhook_verification_key/get` endpoint provides a JSON Web Key (JWK) that can be used to verify a JWT.
     * @summary Get webhook verification key
     * @param {WebhookVerificationKeyGetRequest} webhookVerificationKeyGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    webhookVerificationKeyGet(webhookVerificationKeyGetRequest: WebhookVerificationKeyGetRequest, options?: any): Promise<(axios?: AxiosInstance | undefined, basePath?: string | undefined) => AxiosPromise<WebhookVerificationKeyGetResponse>>;
};
/**
 * PlaidApi - factory interface
 * @export
 */
export declare const PlaidApiFactory: (configuration?: Configuration | undefined, basePath?: string | undefined, axios?: AxiosInstance | undefined) => {
    /**
     * The `/accounts/balance/get` endpoint returns the real-time balance for each of an Item\'s accounts. While other endpoints, such as `/accounts/get`, return a balance object, only `/accounts/balance/get` forces the available and current balance fields to be refreshed rather than cached. This endpoint can be used for existing Items that were added via any of Plaid’s other products. This endpoint can be used as long as Link has been initialized with any other product, `balance` itself is not a product that can be used to initialize Link. As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.
     * @summary Retrieve real-time balance data
     * @param {AccountsBalanceGetRequest} accountsBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    accountsBalanceGet(accountsBalanceGetRequest: AccountsBalanceGetRequest, options?: any): AxiosPromise<AccountsGetResponse>;
    /**
     * The `/accounts/get` endpoint can be used to retrieve a list of accounts associated with any linked Item. Plaid will only return active bank accounts — that is, accounts that are not closed and are capable of carrying a balance. To return new accounts that were created after the user linked their Item, you can listen for the [`NEW_ACCOUNTS_AVAILABLE`](https://plaid.com/docs/api/items/#new_accounts_available) webhook and then use Link\'s [update mode](https://plaid.com/docs/link/update-mode/) to request that the user share this new account with you.  `/accounts/get` is free to use and retrieves cached information, rather than extracting fresh information from the institution. The balance returned will reflect the balance at the time of the last successful Item update. If the Item is enabled for a regularly updating product, such as Transactions, Investments, or Liabilities, the balance will typically update about once a day, as long as the Item is healthy. If the Item is enabled only for products that do not frequently update, such as Auth or Identity, balance data may be much older.  For realtime balance information, use the paid endpoint `/accounts/balance/get` instead.
     * @summary Retrieve accounts
     * @param {AccountsGetRequest} accountsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    accountsGet(accountsGetRequest: AccountsGetRequest, options?: any): AxiosPromise<AccountsGetResponse>;
    /**
     * Allows financial institutions to retrieve information about Plaid clients for the purpose of building control-tower experiences
     * @summary Retrieve information about a Plaid application
     * @param {ApplicationGetRequest} applicationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    applicationGet(applicationGetRequest: ApplicationGetRequest, options?: any): AxiosPromise<ApplicationGetResponse>;
    /**
     * Plaid can provide an Audit Copy of any Asset Report directly to a participating third party on your behalf. For example, Plaid can supply an Audit Copy directly to Fannie Mae on your behalf if you participate in the Day 1 Certainty™ program. An Audit Copy contains the same underlying data as the Asset Report.  To grant access to an Audit Copy, use the `/asset_report/audit_copy/create` endpoint to create an `audit_copy_token` and then pass that token to the third party who needs access. Each third party has its own `auditor_id`, for example `fannie_mae`. You’ll need to create a separate Audit Copy for each third party to whom you want to grant access to the Report.
     * @summary Create Asset Report Audit Copy
     * @param {AssetReportAuditCopyCreateRequest} assetReportAuditCopyCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportAuditCopyCreate(assetReportAuditCopyCreateRequest: AssetReportAuditCopyCreateRequest, options?: any): AxiosPromise<AssetReportAuditCopyCreateResponse>;
    /**
     * `/asset_report/audit_copy/get` allows auditors to get a copy of an Asset Report that was previously shared via the `/asset_report/audit_copy/create` endpoint.  The caller of `/asset_report/audit_copy/create` must provide the `audit_copy_token` to the auditor.  This token can then be used to call `/asset_report/audit_copy/create`.
     * @summary Retrieve an Asset Report Audit Copy
     * @param {AssetReportAuditCopyGetRequest} assetReportAuditCopyGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportAuditCopyGet(assetReportAuditCopyGetRequest: AssetReportAuditCopyGetRequest, options?: any): AxiosPromise<AssetReportGetResponse>;
    /**
     * The `/asset_report/audit_copy/remove` endpoint allows you to remove an Audit Copy. Removing an Audit Copy invalidates the `audit_copy_token` associated with it, meaning both you and any third parties holding the token will no longer be able to use it to access Report data. Items associated with the Asset Report, the Asset Report itself and other Audit Copies of it are not affected and will remain accessible after removing the given Audit Copy.
     * @summary Remove Asset Report Audit Copy
     * @param {AssetReportAuditCopyRemoveRequest} assetReportAuditCopyRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportAuditCopyRemove(assetReportAuditCopyRemoveRequest: AssetReportAuditCopyRemoveRequest, options?: any): AxiosPromise<AssetReportAuditCopyRemoveResponse>;
    /**
     * The `/asset_report/create` endpoint initiates the process of creating an Asset Report, which can then be retrieved by passing the `asset_report_token` return value to the `/asset_report/get` or `/asset_report/pdf/get` endpoints.  The Asset Report takes some time to be created and is not available immediately after calling `/asset_report/create`. The exact amount of time to create the report will vary depending on how many days of history are requested and will typically range from a few seconds to about one minute. When the Asset Report is ready to be retrieved using `/asset_report/get` or `/asset_report/pdf/get`, Plaid will fire a `PRODUCT_READY` webhook. For full details of the webhook schema, see [Asset Report webhooks](https://plaid.com/docs/api/products/assets/#webhooks).  The `/asset_report/create` endpoint creates an Asset Report at a moment in time. Asset Reports are immutable. To get an updated Asset Report, use the `/asset_report/refresh` endpoint.
     * @summary Create an Asset Report
     * @param {AssetReportCreateRequest} assetReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportCreate(assetReportCreateRequest: AssetReportCreateRequest, options?: any): AxiosPromise<AssetReportCreateResponse>;
    /**
     * By default, an Asset Report will contain all of the accounts on a given Item. In some cases, you may not want the Asset Report to contain all accounts. For example, you might have the end user choose which accounts are relevant in Link using the Account Select view, which you can enable in the dashboard. Or, you might always exclude certain account types or subtypes, which you can identify by using the `/accounts/get` endpoint. To narrow an Asset Report to only a subset of accounts, use the `/asset_report/filter` endpoint.  To exclude certain Accounts from an Asset Report, first use the `/asset_report/create` endpoint to create the report, then send the `asset_report_token` along with a list of `account_ids` to exclude to the `/asset_report/filter` endpoint, to create a new Asset Report which contains only a subset of the original Asset Report\'s data.  Because Asset Reports are immutable, calling `/asset_report/filter` does not alter the original Asset Report in any way; rather, `/asset_report/filter` creates a new Asset Report with a new token and id. Asset Reports created via `/asset_report/filter` do not contain new Asset data, and are not billed.  Plaid will fire a [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook once generation of the filtered Asset Report has completed.
     * @summary Filter Asset Report
     * @param {AssetReportFilterRequest} assetReportFilterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportFilter(assetReportFilterRequest: AssetReportFilterRequest, options?: any): AxiosPromise<AssetReportFilterResponse>;
    /**
     * The `/asset_report/get` endpoint retrieves the Asset Report in JSON format. Before calling `/asset_report/get`, you must first create the Asset Report using `/asset_report/create` (or filter an Asset Report using `/asset_report/filter`) and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  By default, an Asset Report includes transaction descriptions as returned by the bank, as opposed to parsed and categorized by Plaid. You can also receive cleaned and categorized transactions, as well as additional insights like merchant name or location information. We call this an Asset Report with Insights. An Asset Report with Insights provides transaction category, location, and merchant information in addition to the transaction strings provided in a standard Asset Report. To retrieve an Asset Report with Insights, call `/asset_report/get` endpoint with `include_insights` set to `true`.  For latency-sensitive applications, you can optionally call `/asset_report/create` with `options.add_ons` set to `[\"fast_assets\"]`. This will cause Plaid to create two versions of the Asset Report: one with only current and available balance and identity information, and then later on the complete Asset Report. You will receive separate webhooks for each version of the Asset Report.
     * @summary Retrieve an Asset Report
     * @param {AssetReportGetRequest} assetReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportGet(assetReportGetRequest: AssetReportGetRequest, options?: any): AxiosPromise<AssetReportGetResponse>;
    /**
     * The `/asset_report/pdf/get` endpoint retrieves the Asset Report in PDF format. Before calling `/asset_report/pdf/get`, you must first create the Asset Report using `/asset_report/create` (or filter an Asset Report using `/asset_report/filter`) and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  The response to `/asset_report/pdf/get` is the PDF binary data. The `request_id`  is returned in the `Plaid-Request-ID` header.  [View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf).
     * @summary Retrieve a PDF Asset Report
     * @param {AssetReportPDFGetRequest} assetReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportPdfGet(assetReportPDFGetRequest: AssetReportPDFGetRequest, options?: any): AxiosPromise<any>;
    /**
     * An Asset Report is an immutable snapshot of a user\'s assets. In order to \"refresh\" an Asset Report you created previously, you can use the `/asset_report/refresh` endpoint to create a new Asset Report based on the old one, but with the most recent data available.  The new Asset Report will contain the same Items as the original Report, as well as the same filters applied by any call to `/asset_report/filter`. By default, the new Asset Report will also use the same parameters you submitted with your original `/asset_report/create` request, but the original `days_requested` value and the values of any parameters in the `options` object can be overridden with new values. To change these arguments, simply supply new values for them in your request to `/asset_report/refresh`. Submit an empty string (\"\") for any previously-populated fields you would like set as empty.
     * @summary Refresh an Asset Report
     * @param {AssetReportRefreshRequest} assetReportRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportRefresh(assetReportRefreshRequest: AssetReportRefreshRequest, options?: any): AxiosPromise<AssetReportRefreshResponse>;
    /**
     * The `/item/remove` endpoint allows you to invalidate an `access_token`, meaning you will not be able to create new Asset Reports with it. Removing an Item does not affect any Asset Reports or Audit Copies you have already created, which will remain accessible until you remove them specifically.  The `/asset_report/remove` endpoint allows you to remove access to an Asset Report. Removing an Asset Report invalidates its `asset_report_token`, meaning you will no longer be able to use it to access Report data or create new Audit Copies. Removing an Asset Report does not affect the underlying Items, but does invalidate any `audit_copy_tokens` associated with the Asset Report.
     * @summary Delete an Asset Report
     * @param {AssetReportRemoveRequest} assetReportRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    assetReportRemove(assetReportRemoveRequest: AssetReportRemoveRequest, options?: any): AxiosPromise<AssetReportRemoveResponse>;
    /**
     * The `/auth/get` endpoint returns the bank account and bank identification numbers (such as routing numbers, for US accounts) associated with an Item\'s checking, savings, and cash management accounts, along with high-level account data and balances when available.  Versioning note: In API version 2017-03-08, the schema of the `numbers` object returned by this endpoint is substantially different. For details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2018-05-22).
     * @summary Retrieve auth data
     * @param {AuthGetRequest} authGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    authGet(authGetRequest: AuthGetRequest, options?: any): AxiosPromise<AuthGetResponse>;
    /**
     * Use the `/bank_transfer/balance/get` endpoint to see the available balance in your bank transfer account. Debit transfers increase this balance once their status is posted. Credit transfers decrease this balance when they are created.  The transactable balance shows the amount in your account that you are able to use for transfers, and is essentially your available balance minus your minimum balance.  Note that this endpoint can only be used with FBO accounts, when using Bank Transfers in the Full Service configuration. It cannot be used on your own account when using Bank Transfers in the BTS Platform configuration.
     * @summary Get balance of your Bank Transfer account
     * @param {BankTransferBalanceGetRequest} bankTransferBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferBalanceGet(bankTransferBalanceGetRequest: BankTransferBalanceGetRequest, options?: any): AxiosPromise<BankTransferBalanceGetResponse>;
    /**
     * Use the `/bank_transfer/cancel` endpoint to cancel a bank transfer.  A transfer is eligible for cancelation if the `cancellable` property returned by `/bank_transfer/get` is `true`.
     * @summary Cancel a bank transfer
     * @param {BankTransferCancelRequest} bankTransferCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferCancel(bankTransferCancelRequest: BankTransferCancelRequest, options?: any): AxiosPromise<BankTransferCancelResponse>;
    /**
     * Use the `/bank_transfer/create` endpoint to initiate a new bank transfer.
     * @summary Create a bank transfer
     * @param {BankTransferCreateRequest} bankTransferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferCreate(bankTransferCreateRequest: BankTransferCreateRequest, options?: any): AxiosPromise<BankTransferCreateResponse>;
    /**
     * Use the `/bank_transfer/event/list` endpoint to get a list of Plaid-initiated ACH or bank transfer events based on specified filter criteria. When using Auth with micro-deposit verification enabled, this endpoint can be used to fetch status updates on ACH micro-deposits. For more details, see [micro-deposit events](https://plaid.com/docs/auth/coverage/microdeposit-events/).
     * @summary List bank transfer events
     * @param {BankTransferEventListRequest} bankTransferEventListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferEventList(bankTransferEventListRequest: BankTransferEventListRequest, options?: any): AxiosPromise<BankTransferEventListResponse>;
    /**
     * `/bank_transfer/event/sync` allows you to request up to the next 25 Plaid-initiated bank transfer events that happened after a specific `event_id`. When using Auth with micro-deposit verification enabled, this endpoint can be used to fetch status updates on ACH micro-deposits. For more details, see [micro-deposit events](https://www.plaid.com/docs/auth/coverage/microdeposit-events/).
     * @summary Sync bank transfer events
     * @param {BankTransferEventSyncRequest} bankTransferEventSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferEventSync(bankTransferEventSyncRequest: BankTransferEventSyncRequest, options?: any): AxiosPromise<BankTransferEventSyncResponse>;
    /**
     * The `/bank_transfer/get` fetches information about the bank transfer corresponding to the given `bank_transfer_id`.
     * @summary Retrieve a bank transfer
     * @param {BankTransferGetRequest} bankTransferGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferGet(bankTransferGetRequest: BankTransferGetRequest, options?: any): AxiosPromise<BankTransferGetResponse>;
    /**
     * Use the `/bank_transfer/list` endpoint to see a list of all your bank transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired bank transfers.
     * @summary List bank transfers
     * @param {BankTransferListRequest} bankTransferListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferList(bankTransferListRequest: BankTransferListRequest, options?: any): AxiosPromise<BankTransferListResponse>;
    /**
     * As an alternative to adding Items via Link, you can also use the `/bank_transfer/migrate_account` endpoint to migrate known account and routing numbers to Plaid Items.  Note that Items created in this way are not compatible with endpoints for other products, such as `/accounts/balance/get`, and can only be used with Bank Transfer endpoints.  If you require access to other endpoints, create the Item through Link instead.  Access to `/bank_transfer/migrate_account` is not enabled by default; to obtain access, contact your Plaid Account Manager.
     * @summary Migrate account into Bank Transfers
     * @param {BankTransferMigrateAccountRequest} bankTransferMigrateAccountRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferMigrateAccount(bankTransferMigrateAccountRequest: BankTransferMigrateAccountRequest, options?: any): AxiosPromise<BankTransferMigrateAccountResponse>;
    /**
     * The `/bank_transfer/sweep/get` endpoint fetches information about the sweep corresponding to the given `sweep_id`.
     * @summary Retrieve a sweep
     * @param {BankTransferSweepGetRequest} bankTransferSweepGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferSweepGet(bankTransferSweepGetRequest: BankTransferSweepGetRequest, options?: any): AxiosPromise<BankTransferSweepGetResponse>;
    /**
     * The `/bank_transfer/sweep/list` endpoint fetches information about the sweeps matching the given filters.
     * @summary List sweeps
     * @param {BankTransferSweepListRequest} bankTransferSweepListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    bankTransferSweepList(bankTransferSweepListRequest: BankTransferSweepListRequest, options?: any): AxiosPromise<BankTransferSweepListResponse>;
    /**
     * Use `/beacon/account_risk/v1/evaluate` to get risk insights for a linked account.
     * @summary Evaluate risk of a bank account
     * @param {BeaconAccountRiskEvaluateRequest} beaconAccountRiskEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconAccountRiskEvaluate(beaconAccountRiskEvaluateRequest: BeaconAccountRiskEvaluateRequest, options?: any): AxiosPromise<BeaconAccountRiskEvaluateResponse>;
    /**
     * Returns a Beacon Duplicate for a given Beacon Duplicate id.  A Beacon Duplicate represents a pair of similar Beacon Users within your organization.  Two Beacon User revisions are returned for each Duplicate record in either the `beacon_user1` or `beacon_user2` response fields.  The `analysis` field in the response indicates which fields matched between `beacon_user1` and `beacon_user2`.
     * @summary Get a Beacon Duplicate
     * @param {BeaconDuplicateGetRequest} beaconDuplicateGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconDuplicateGet(beaconDuplicateGetRequest: BeaconDuplicateGetRequest, options?: any): AxiosPromise<BeaconDuplicateGetResponse>;
    /**
     * Create a fraud report for a given Beacon User.
     * @summary Create a Beacon Report
     * @param {BeaconReportCreateRequest} beaconReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportCreate(beaconReportCreateRequest: BeaconReportCreateRequest, options?: any): AxiosPromise<BeaconReportCreateResponse>;
    /**
     * Returns a Beacon report for a given Beacon report id.
     * @summary Get a Beacon Report
     * @param {BeaconReportGetRequest} beaconReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportGet(beaconReportGetRequest: BeaconReportGetRequest, options?: any): AxiosPromise<BeaconReportGetResponse>;
    /**
     * Use the `/beacon/report/list` endpoint to view all Beacon Reports you created for a specific Beacon User. The reports returned by this endpoint are exclusively reports you created for a specific user. A Beacon User can only have one active report at a time, but a new report can be created if a previous report has been deleted. The results from this endpoint are paginated; the `next_cursor` field will be populated if there is another page of results that can be retrieved. To fetch the next page, pass the `next_cursor` value as the `cursor` parameter in the next request.
     * @summary List Beacon Reports for a Beacon User
     * @param {BeaconReportListRequest} beaconReportListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportList(beaconReportListRequest: BeaconReportListRequest, options?: any): AxiosPromise<BeaconReportListResponse>;
    /**
     * Returns a Beacon Report Syndication for a given Beacon Report Syndication id.
     * @summary Get a Beacon Report Syndication
     * @param {BeaconReportSyndicationGetRequest} beaconReportSyndicationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportSyndicationGet(beaconReportSyndicationGetRequest: BeaconReportSyndicationGetRequest, options?: any): AxiosPromise<BeaconReportSyndicationGetResponse>;
    /**
     * Use the `/beacon/report_syndication/list` endpoint to view all Beacon Reports that have been syndicated to a specific Beacon User. This endpoint returns Beacon Report Syndications which are references to Beacon Reports created either by you, or another Beacon customer, that matched the specified Beacon User. A Beacon User can have multiple active Beacon Report Syndications at once. The results from this endpoint are paginated; the `next_cursor` field will be populated if there is another page of results that can be retrieved. To fetch the next page, pass the `next_cursor` value as the `cursor` parameter in the next request.
     * @summary List Beacon Report Syndications for a Beacon User
     * @param {BeaconReportSyndicationListRequest} beaconReportSyndicationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconReportSyndicationList(beaconReportSyndicationListRequest: BeaconReportSyndicationListRequest, options?: any): AxiosPromise<BeaconReportSyndicationListResponse>;
    /**
     * Get Account Insights for all Accounts linked to this Beacon User. The insights for each account are computed based on the information that was last retrieved from the financial institution.
     * @summary Get Account Insights for a Beacon User
     * @param {BeaconUserAccountInsightsGetRequest} beaconUserAccountInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserAccountInsightsGet(beaconUserAccountInsightsGetRequest: BeaconUserAccountInsightsGetRequest, options?: any): AxiosPromise<BeaconUserAccountInsightsGetResponse>;
    /**
     * Create and scan a Beacon User against your Beacon Program, according to your program\'s settings.  When you submit a new user to `/beacon/user/create`, several checks are performed immediately:    - The user\'s PII (provided within the `user` object) is searched against all other users within the Beacon Program you specified. If a match is found that violates your program\'s \"Duplicate Information Filtering\" settings, the user will be returned with a status of `pending_review`.    - The user\'s PII is also searched against all fraud reports created by your organization across all of your Beacon Programs. If the user\'s data matches a fraud report that your team created, the user will be returned with a status of `rejected`.    - Finally, the user\'s PII is searched against all fraud report shared with the Beacon Network by other companies. If a matching fraud report is found, the user will be returned with a `pending_review` status if your program has enabled automatic flagging based on network fraud.
     * @summary Create a Beacon User
     * @param {BeaconUserCreateRequest} beaconUserCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserCreate(beaconUserCreateRequest: BeaconUserCreateRequest, options?: any): AxiosPromise<BeaconUserCreateResponse>;
    /**
     * Fetch a Beacon User.  The Beacon User is returned with all of their associated information and a `status` based on the Beacon Network duplicate record and fraud checks.
     * @summary Get a Beacon User
     * @param {BeaconUserGetRequest} beaconUserGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserGet(beaconUserGetRequest: BeaconUserGetRequest, options?: any): AxiosPromise<BeaconUserGetResponse>;
    /**
     * List all changes to the Beacon User in reverse-chronological order.
     * @summary List a Beacon User\'s history
     * @param {BeaconUserHistoryListRequest} beaconUserHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserHistoryList(beaconUserHistoryListRequest: BeaconUserHistoryListRequest, options?: any): AxiosPromise<BeaconUserHistoryListResponse>;
    /**
     * Update the status of a Beacon User.  When updating a Beacon User\'s status via this endpoint, Plaid validates that the status change is consistent with the related state for this Beacon User. Specifically, we will check:  1. Whether there are any associated Beacon Reports connected to the Beacon User, and 2. Whether there are any confirmed Beacon Report Syndications connected to the Beacon User.  When updating a Beacon User\'s status to \"rejected\", we enforce that either a Beacon Report has been created for the Beacon User or a Beacon Report Syndication has been confirmed. When updating a Beacon User\'s status to \"cleared\", we enforce that there are no active Beacon Reports or confirmed Beacon Report Syndications associated with the user. If you previously created a Beacon Report for this user, you must delete it before updating the Beacon User\'s status to \"cleared\". There are no restrictions on updating a Beacon User\'s status to \"pending_review\".  If these conditions are not met, the request will be rejected with an error explaining the issue.
     * @summary Review a Beacon User
     * @param {BeaconUserReviewRequest} beaconUserReviewRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserReview(beaconUserReviewRequest: BeaconUserReviewRequest, options?: any): AxiosPromise<BeaconUserGetResponse>;
    /**
     * Update the identity data for a Beacon User in your Beacon Program or add new accounts to the Beacon User.  Similar to `/beacon/user/create`, several checks are performed immediately when you submit an identity data change to `/beacon/user/update`:    - The user\'s updated PII is searched against all other users within the Beacon Program you specified. If a match is found that violates your program\'s \"Duplicate Information Filtering\" settings, the user will be returned with a status of `pending_review`.    - The user\'s updated PII is also searched against all fraud reports created by your organization across all of your Beacon Programs. If the user\'s data matches a fraud report that your team created, the user will be returned with a status of `rejected`.    - Finally, the user\'s PII is searched against all fraud report shared with the Beacon Network by other companies. If a matching fraud report is found, the user will be returned with a `pending_review` status if your program has enabled automatic flagging based on network fraud.  Plaid maintains a version history for each Beacon User, so the Beacon User\'s identity data before and after the update is retained as separate versions.
     * @summary Update the identity data of a Beacon User
     * @param {BeaconUserUpdateRequest} beaconUserUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    beaconUserUpdate(beaconUserUpdateRequest: BeaconUserUpdateRequest, options?: any): AxiosPromise<BeaconUserUpdateResponse>;
    /**
     * Send a request to the `/categories/get` endpoint to get detailed information on categories returned by Plaid. This endpoint does not require authentication.  All implementations are recommended to use the newer `personal_finance_category` taxonomy instead of the older `category` taxonomy supported by this endpoint. The [`personal_finance_category taxonomy` CSV file](https://plaid.com/documents/transactions-personal-finance-category-taxonomy.csv) is available for download and is not accessible via API.
     * @summary Get categories
     * @param {object} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    categoriesGet(body: object, options?: any): AxiosPromise<CategoriesGetResponse>;
    /**
     * List a historical log of Item consent events. Consent logs are only available for events occurring on or after November 7, 2024. Up to three years of consent logs will be available via the endpoint.
     * @summary List a historical log of item consent events
     * @param {ConsentEventsGetRequest} consentEventsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    consentEventsGet(consentEventsGetRequest: ConsentEventsGetRequest, options?: any): AxiosPromise<ConsentEventsGetResponse>;
    /**
     * Retrieves all existing CRB Bank Income and Base reports for the consumer in PDF format.  Response is PDF binary data. The `request_id` is returned in the `Plaid-Request-ID` header.
     * @summary Retrieve a PDF Reports
     * @param {ConsumerReportPDFGetRequest} consumerReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    consumerReportPdfGet(consumerReportPDFGetRequest: ConsumerReportPDFGetRequest, options?: any): AxiosPromise<any>;
    /**
     * `/cra/bank_income/create` creates a CRA report for income verification
     * @summary Create a CRA report for income verification
     * @param {CraBankIncomeCreateRequest} craBankIncomeCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craBankIncomeCreate(craBankIncomeCreateRequest: CraBankIncomeCreateRequest, options?: any): AxiosPromise<CraBankIncomeCreateResponse>;
    /**
     * `/cra/bank_income/get` returns the bank income report(s) for a specified user.
     * @summary Retrieve information from the bank accounts used for income verification
     * @param {CraBankIncomeGetRequest} craBankIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craBankIncomeGet(craBankIncomeGetRequest: CraBankIncomeGetRequest, options?: any): AxiosPromise<CraBankIncomeGetResponse>;
    /**
     * This endpoint allows you to retrieve the Base Report for your user, allowing you to receive comprehensive bank account and cash flow data. You should call this endpoint after you\'ve received a `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn\'t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.
     * @summary Retrieve a Base Report
     * @param {CraCheckReportBaseReportGetRequest} craCheckReportBaseReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportBaseReportGet(craCheckReportBaseReportGetRequest: CraCheckReportBaseReportGetRequest, options?: any): AxiosPromise<CraCheckReportBaseReportGetResponse>;
    /**
     * This endpoint allows you to retrieve the Cashflow Insights report for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the insights, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `cra_cashflow_insights` product or have generated a report using `/cra/check_report/create`, we will generate the insights when you call this endpoint. In this case, you may optionally provide parameters under `options` to configure which insights you want to receive.
     * @summary Retrieve cash flow insights from your user\'s banking data
     * @param {CraCheckReportCashflowInsightsGetRequest} craCheckReportCashflowInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportCashflowInsightsGet(craCheckReportCashflowInsightsGetRequest: CraCheckReportCashflowInsightsGetRequest, options?: any): AxiosPromise<CraCheckReportCashflowInsightsGetResponse>;
    /**
     * `/cra/check_report/create` creates a Consumer Report powered by Plaid Check. You can call this endpoint to create a new report if `consumer_report_permissible_purpose` was omitted during Link token creation. If you did provide a `consumer_report_permissible_purpose` during Link token creation, then Plaid Check will automatically begin creating a Consumer Report once the user completes the Link process, and it is not necessary to call `/cra/check_report/create` before retrieving the report.   `/cra/check_report/create` can also be used to refresh data in an existing report. A Consumer Report will last for 24 hours before expiring; you should call any `/get` endpoints on the report before it expires. If a report expires, you can call `/cra/check_report/create` again to re-generate it. Note that refreshing or regenerating a report is a billable event.
     * @summary Create a Consumer Report
     * @param {CraCheckReportCreateRequest} craCheckReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportCreate(craCheckReportCreateRequest: CraCheckReportCreateRequest, options?: any): AxiosPromise<CraCheckReportCreateResponse>;
    /**
     * This endpoint allows you to retrieve the Income Insights report for your user.  You should call this endpoint after you\'ve received a `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.
     * @summary Retrieve cash flow information from your user\'s banks
     * @param {CraCheckReportIncomeInsightsGetRequest} craCheckReportIncomeInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportIncomeInsightsGet(craCheckReportIncomeInsightsGetRequest: CraCheckReportIncomeInsightsGetRequest, options?: any): AxiosPromise<CraCheckReportIncomeInsightsGetResponse>;
    /**
     * This endpoint allows you to retrieve the Network Insights product for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `cra_network_attributes` product or have generated a report using `/cra/check_report/create`, we will generate the attributes when you call this endpoint.
     * @summary Retrieve network attributes for the user
     * @param {CraCheckReportNetworkInsightsGetRequest} craCheckReportNetworkInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportNetworkInsightsGet(craCheckReportNetworkInsightsGetRequest: CraCheckReportNetworkInsightsGetRequest, options?: any): AxiosPromise<CraCheckReportNetworkInsightsGetResponse>;
    /**
     * This endpoint allows you to retrieve the Partner Insights report for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `credit_partner_insights` product or have generated a report using `/cra/check_report/create`, we will call our partners to generate the insights when you call this endpoint. In this case, you may optionally provide parameters under `options` to configure which insights you want to receive.
     * @summary Retrieve cash flow insights from partners
     * @param {CraCheckReportPartnerInsightsGetRequest} craCheckReportPartnerInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportPartnerInsightsGet(craCheckReportPartnerInsightsGetRequest: CraCheckReportPartnerInsightsGetRequest, options?: any): AxiosPromise<CraCheckReportPartnerInsightsGetResponse>;
    /**
     * `/cra/check_report/pdf/get` retrieves the most recent Consumer Report in PDF format. By default, the most recent Base Report (if it exists) for the user will be returned. To request that the most recent Income Insights report be included in the PDF as well, use the `add-ons` field.
     * @summary Retrieve Consumer Reports as a PDF
     * @param {CraCheckReportPDFGetRequest} craCheckReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craCheckReportPdfGet(craCheckReportPDFGetRequest: CraCheckReportPDFGetRequest, options?: any): AxiosPromise<any>;
    /**
     * `/cra/loans/applications/register` registers loan applications and decisions.
     * @summary Register loan applications and decisions.
     * @param {CraLoansApplicationsRegisterRequest} craLoansApplicationsRegisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansApplicationsRegister(craLoansApplicationsRegisterRequest: CraLoansApplicationsRegisterRequest, options?: any): AxiosPromise<CraLoansApplicationsRegisterResponse>;
    /**
     * `/cra/loans/register` registers a list of loans to their applicants.
     * @summary Register a list of loans to their applicants.
     * @param {CRALoansRegisterRequest} cRALoansRegisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansRegister(cRALoansRegisterRequest: CRALoansRegisterRequest, options?: any): AxiosPromise<CraLoansRegisterResponse>;
    /**
     * `/cra/loans/unregister` indicates the loans have reached a final status and no further updates are expected.
     * @summary Unregister a list of loans.
     * @param {CraLoansUnregisterRequest} craLoansUnregisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansUnregister(craLoansUnregisterRequest: CraLoansUnregisterRequest, options?: any): AxiosPromise<CraLoanUnregisterResponse>;
    /**
     * `/cra/loans/update` updates loan information such as the status and payment history.
     * @summary Updates loan data.
     * @param {CraLoansUpdateRequest} craLoansUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craLoansUpdate(craLoansUpdateRequest: CraLoansUpdateRequest, options?: any): AxiosPromise<CraLoansUpdateResponse>;
    /**
     * This endpoint allows you to retrieve a Monitoring Insights report by passing in the `user_token` referred to in the webhook you received.
     * @summary Retrieve a Monitoring Insights Report
     * @param {CraMonitoringInsightsGetRequest} craMonitoringInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craMonitoringInsightsGet(craMonitoringInsightsGetRequest: CraMonitoringInsightsGetRequest, options?: any): AxiosPromise<CraMonitoringInsightsGetResponse>;
    /**
     * This endpoint allows you to subscribe to insights for a user\'s linked CRA items, which are updated every day (best-effort).
     * @summary Subscribe to Monitoring Insights
     * @param {CraMonitoringInsightsSubscribeRequest} craMonitoringInsightsSubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craMonitoringInsightsSubscribe(craMonitoringInsightsSubscribeRequest: CraMonitoringInsightsSubscribeRequest, options?: any): AxiosPromise<CraMonitoringInsightsSubscribeResponse>;
    /**
     * This endpoint allows you to unsubscribe from previously subscribed Monitoring Insights.
     * @summary Unsubscribe from Monitoring Insights
     * @param {CraMonitoringInsightsUnsubscribeRequest} craMonitoringInsightsUnsubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craMonitoringInsightsUnsubscribe(craMonitoringInsightsUnsubscribeRequest: CraMonitoringInsightsUnsubscribeRequest, options?: any): AxiosPromise<CraMonitoringInsightsUnsubscribeResponse>;
    /**
     * `/cra/partner_insights/get` returns cash flow insights for a specified user.
     * @summary Retrieve cash flow insights from the bank accounts used for income verification
     * @param {CraPartnerInsightsGetRequest} craPartnerInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    craPartnerInsightsGet(craPartnerInsightsGetRequest: CraPartnerInsightsGetRequest, options?: any): AxiosPromise<CraPartnerInsightsGetResponse>;
    /**
     * The `/payment_initiation/payment/token/create` endpoint has been deprecated. New Plaid customers will be unable to use this endpoint, and existing customers are encouraged to migrate to the newer, `link_token`-based flow. The recommended flow is to provide the `payment_id` to `/link/token/create`, which returns a `link_token` used to initialize Link.  The `/payment_initiation/payment/token/create` is used to create a `payment_token`, which can then be used in Link initialization to enter a payment initiation flow. You can only use a `payment_token` once. If this attempt fails, the end user aborts the flow, or the token expires, you will need to create a new payment token. Creating a new payment token does not require end user input.
     * @summary Create payment token
     * @param {PaymentInitiationPaymentTokenCreateRequest} paymentInitiationPaymentTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createPaymentToken(paymentInitiationPaymentTokenCreateRequest: PaymentInitiationPaymentTokenCreateRequest, options?: any): AxiosPromise<PaymentInitiationPaymentTokenCreateResponse>;
    /**
     * The `credit/asset_report/freddie_mac/get` endpoint retrieves the Asset Report in Freddie Mac\'s JSON format.
     * @summary Retrieve an Asset Report with Freddie Mac format. Only Freddie Mac can use this endpoint.
     * @param {{ [key: string]: object; }} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditAssetReportFreddieMacGet(requestBody: {
        [key: string]: object;
    }, options?: any): AxiosPromise<AssetReportFreddieGetResponse>;
    /**
     * Plaid can create an Audit Copy token of an Asset Report and/or Income Report to share with participating Government Sponsored Entity (GSE). If you participate in the Day 1 Certainty™ program, Plaid can supply an Audit Copy token directly to Fannie Mae on your behalf. An Audit Copy token contains the same underlying data as the Asset Report and/or Income Report (result of /credit/payroll_income/get).  Use the `/credit/audit_copy_token/create` endpoint to create an `audit_copy_token` and then pass that token to the GSE who needs access.
     * @summary Create Asset or Income Report Audit Copy Token
     * @param {CreditAuditCopyTokenCreateRequest} creditAuditCopyTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditAuditCopyTokenCreate(creditAuditCopyTokenCreateRequest: CreditAuditCopyTokenCreateRequest, options?: any): AxiosPromise<CreditAuditCopyTokenCreateResponse>;
    /**
     * The `/credit/audit_copy_token/update` endpoint updates an existing  Audit Copy Token by adding the report tokens in the `report_tokens` field to the `audit_copy_token`. If the Audit Copy Token already contains a report of a certain type, it will be replaced with the token provided in the `report_tokens` field.
     * @summary Update an Audit Copy Token
     * @param {CreditAuditCopyTokenUpdateRequest} creditAuditCopyTokenUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditAuditCopyTokenUpdate(creditAuditCopyTokenUpdateRequest: CreditAuditCopyTokenUpdateRequest, options?: any): AxiosPromise<CreditAuditCopyTokenUpdateResponse>;
    /**
     * `/credit/bank_employment/get` returns the employment report(s) derived from bank transaction data for a specified user.
     * @summary Retrieve information from the bank accounts used for employment verification
     * @param {CreditBankEmploymentGetRequest} creditBankEmploymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankEmploymentGet(creditBankEmploymentGetRequest: CreditBankEmploymentGetRequest, options?: any): AxiosPromise<CreditBankEmploymentGetResponse>;
    /**
     * `/credit/bank_income/get` returns the bank income report(s) for a specified user. A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use [Multi-Item Link](https://plaid.com/docs/link/multi-item-link). To return older reports, use the `options.count` field.
     * @summary Retrieve information from the bank accounts used for income verification
     * @param {CreditBankIncomeGetRequest} creditBankIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomeGet(creditBankIncomeGetRequest: CreditBankIncomeGetRequest, options?: any): AxiosPromise<CreditBankIncomeGetResponse>;
    /**
     * `/credit/bank_income/pdf/get` returns the most recent bank income report for a specified user in PDF format.  A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use [Multi-Item Link](https://plaid.com/docs/link/multi-item-link).
     * @summary Retrieve information from the bank accounts used for income verification in PDF format
     * @param {CreditBankIncomePDFGetRequest} creditBankIncomePDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomePdfGet(creditBankIncomePDFGetRequest: CreditBankIncomePDFGetRequest, options?: any): AxiosPromise<any>;
    /**
     * `/credit/bank_income/refresh` refreshes the most recent bank income report data for a specific user. If the most recent bank income report is no longer valid (i.e. deleted), the endpoint will refresh the most recent valid report instead.
     * @summary Refresh a user\'s bank income information
     * @param {CreditBankIncomeRefreshRequest} creditBankIncomeRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomeRefresh(creditBankIncomeRefreshRequest: CreditBankIncomeRefreshRequest, options?: any): AxiosPromise<CreditBankIncomeRefreshResponse>;
    /**
     * `/credit/bank_income/webhook/update` allows you to subscribe or unsubscribe a user for income webhook notifications. By default, all users start out unsubscribed.  If a user is subscribed, on significant changes to the user\'s income profile, you will receive a `BANK_INCOME_REFRESH_UPDATE` webhook, prompting you to refresh bank income data for the user.
     * @summary Subscribe and unsubscribe to proactive notifications for a user\'s income profile
     * @param {CreditBankIncomeWebhookUpdateRequest} creditBankIncomeWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankIncomeWebhookUpdate(creditBankIncomeWebhookUpdateRequest: CreditBankIncomeWebhookUpdateRequest, options?: any): AxiosPromise<CreditBankIncomeWebhookUpdateResponse>;
    /**
     * `/credit/bank_statements/uploads/get` returns parsed data from bank statements uploaded by users as part of the Document Income flow. If your account is not enabled for Document Parsing, contact your account manager to request access.
     * @summary Retrieve data for a user\'s uploaded bank statements
     * @param {CreditBankStatementsUploadsGetRequest} creditBankStatementsUploadsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditBankStatementsUploadsGet(creditBankStatementsUploadsGetRequest: CreditBankStatementsUploadsGetRequest, options?: any): AxiosPromise<CreditBankStatementsUploadsGetResponse>;
    /**
     * `/credit/employment/get` returns a list of items with employment information from a user\'s payroll provider that was verified by an end user.
     * @summary Retrieve a summary of an individual\'s employment information
     * @param {CreditEmploymentGetRequest} creditEmploymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditEmploymentGet(creditEmploymentGetRequest: CreditEmploymentGetRequest, options?: any): AxiosPromise<CreditEmploymentGetResponse>;
    /**
     * The `credit/asset_report/freddie_mac/get` endpoint retrieves the Verification of Assets and Verification of Employment reports.
     * @summary Retrieve an Asset Report with Freddie Mac format (aka VOA - Verification Of Assets), and a Verification Of Employment (VOE) report if this one is available. Only Freddie Mac can use this endpoint.
     * @param {CreditFreddieMacReportsGetRequest} creditFreddieMacReportsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditFreddieMacReportsGet(creditFreddieMacReportsGetRequest: CreditFreddieMacReportsGetRequest, options?: any): AxiosPromise<CreditFreddieMacReportsGetResponse>;
    /**
     * This endpoint gets payroll income information for a specific user, either as a result of the user connecting to their payroll provider or uploading a pay related document.
     * @summary Retrieve a user\'s payroll information
     * @param {CreditPayrollIncomeGetRequest} creditPayrollIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeGet(creditPayrollIncomeGetRequest: CreditPayrollIncomeGetRequest, options?: any): AxiosPromise<CreditPayrollIncomeGetResponse>;
    /**
     * `/credit/payroll_income/parsing_config/update` updates the parsing configuration for a document income verification.
     * @summary Update the parsing configuration for a document income verification
     * @param {{ [key: string]: object; }} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeParsingConfigUpdate(requestBody: {
        [key: string]: object;
    }, options?: any): AxiosPromise<CreditPayrollIncomeParsingConfigUpdateResponse>;
    /**
     * `/credit/payroll_income/precheck` is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification. If the user is eligible for digital verification, that information will be associated with the user token, and in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.  While all request fields are optional, providing `employer` data will increase the chance of receiving a useful result.  When testing in Sandbox, you can control the results by providing special test values in the `employer` and `access_tokens` fields. `employer_good` and `employer_bad` will result in `HIGH` and `LOW` confidence values, respectively. `employer_multi` will result in a `HIGH` confidence with multiple payroll options. Likewise, `access_good` and `access_bad` will result in `HIGH` and `LOW` confidence values, respectively. Any other value for `employer` and `access_tokens` in Sandbox will result in `UNKNOWN` confidence.
     * @summary Check income verification eligibility and optimize conversion
     * @param {CreditPayrollIncomePrecheckRequest} creditPayrollIncomePrecheckRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomePrecheck(creditPayrollIncomePrecheckRequest: CreditPayrollIncomePrecheckRequest, options?: any): AxiosPromise<CreditPayrollIncomePrecheckResponse>;
    /**
     * `/credit/payroll_income/refresh` refreshes a given digital payroll income verification.
     * @summary Refresh a digital payroll income verification
     * @param {CreditPayrollIncomeRefreshRequest} creditPayrollIncomeRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeRefresh(creditPayrollIncomeRefreshRequest: CreditPayrollIncomeRefreshRequest, options?: any): AxiosPromise<CreditPayrollIncomeRefreshResponse>;
    /**
     * `/credit/payroll_income/risk_signals/get` can be used as part of the Document Income flow to assess a user-uploaded document for signs of potential fraud or tampering. It returns a risk score for each uploaded document that indicates the likelihood of the document being fraudulent, in addition to details on the individual risk signals contributing to the score.  To trigger risk signal generation for an Item, call `/link/token/create` with `parsing_config` set to include `risk_signals`, or call `/credit/payroll_income/parsing_config/update`. Once risk signal generation has been triggered, `/credit/payroll_income/risk_signals/get` can be called at any time after the `INCOME_VERIFICATION_RISK_SIGNALS` webhook has been fired.  `/credit/payroll_income/risk_signals/get` is offered as an add-on to Document Income and is billed separately. To request access to this endpoint, submit a product access request or contact your Plaid account manager.
     * @summary Retrieve fraud insights for a user\'s manually uploaded document(s).
     * @param {CreditPayrollIncomeRiskSignalsGetRequest} creditPayrollIncomeRiskSignalsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditPayrollIncomeRiskSignalsGet(creditPayrollIncomeRiskSignalsGetRequest: CreditPayrollIncomeRiskSignalsGetRequest, options?: any): AxiosPromise<CreditPayrollIncomeRiskSignalsGetResponse>;
    /**
     * Plaid can share an Asset Report directly with a participating third party on your behalf. The shared Asset Report is the exact same Asset Report originally created in `/asset_report/create`.  To grant a third party access to an Asset Report, use the `/credit/relay/create` endpoint to create a `relay_token` and then pass that token to your third party. Each third party has its own `secondary_client_id`; for example, `ce5bd328dcd34123456`. You\'ll need to create a separate `relay_token` for each third party that needs access to the report on your behalf.
     * @summary Create a relay token to share an Asset Report with a partner client
     * @param {CreditRelayCreateRequest} creditRelayCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayCreate(creditRelayCreateRequest: CreditRelayCreateRequest, options?: any): AxiosPromise<CreditRelayCreateResponse>;
    /**
     * `/credit/relay/get` allows third parties to receive a report that was shared with them, using a `relay_token` that was created by the report owner.
     * @summary Retrieve the reports associated with a relay token that was shared with you
     * @param {CreditRelayGetRequest} creditRelayGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayGet(creditRelayGetRequest: CreditRelayGetRequest, options?: any): AxiosPromise<AssetReportGetResponse>;
    /**
     * `/credit/relay/pdf/get` allows third parties to receive a pdf report that was shared with them, using a `relay_token` that was created by the report owner.  The `/credit/relay/pdf/get` endpoint retrieves the Asset Report in PDF format. Before calling `/credit/relay/pdf/get`, you must first create the Asset Report using `/credit/relay/create` and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  The response to `/credit/relay/pdf/get` is the PDF binary data. The `request_id` is returned in the `Plaid-Request-ID` header.  [View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf).
     * @summary Retrieve the pdf reports associated with a relay token that was shared with you (beta)
     * @param {CreditRelayPDFGetRequest} creditRelayPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayPdfGet(creditRelayPDFGetRequest: CreditRelayPDFGetRequest, options?: any): AxiosPromise<any>;
    /**
     * The `/credit/relay/refresh` endpoint allows third parties to refresh a report that was relayed to them, using a `relay_token` that was created by the report owner. A new report will be created with the original report parameters, but with the most recent data available based on the `days_requested` value of the original report.
     * @summary Refresh a report of a relay token
     * @param {CreditRelayRefreshRequest} creditRelayRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayRefresh(creditRelayRefreshRequest: CreditRelayRefreshRequest, options?: any): AxiosPromise<CreditRelayRefreshResponse>;
    /**
     * The `/credit/relay/remove` endpoint allows you to invalidate a `relay_token`. The third party holding the token will no longer be able to access or refresh the reports which the `relay_token` gives access to. The original report, associated Items, and other relay tokens that provide access to the same report are not affected and will remain accessible after removing the given `relay_token`.
     * @summary Remove relay token
     * @param {CreditRelayRemoveRequest} creditRelayRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditRelayRemove(creditRelayRemoveRequest: CreditRelayRemoveRequest, options?: any): AxiosPromise<CreditRelayRemoveResponse>;
    /**
     * The `/credit/audit_copy_token/remove` endpoint allows you to remove an Audit Copy. Removing an Audit Copy invalidates the `audit_copy_token` associated with it, meaning both you and any third parties holding the token will no longer be able to use it to access Report data. Items associated with the Report data and other Audit Copies of it are not affected and will remain accessible after removing the given Audit Copy.
     * @summary Remove an Audit Copy token
     * @param {CreditAuditCopyTokenRemoveRequest} creditAuditCopyTokenRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditReportAuditCopyRemove(creditAuditCopyTokenRemoveRequest: CreditAuditCopyTokenRemoveRequest, options?: any): AxiosPromise<CreditAuditCopyTokenRemoveResponse>;
    /**
     * This endpoint can be used for your end users after they complete the Link flow. This endpoint returns a list of Link sessions that your user completed, where each session includes the results from the Link flow.  These results include details about the Item that was created and some product related metadata (showing, for example, whether the user finished the bank income verification step).
     * @summary Retrieve Link sessions for your user
     * @param {CreditSessionsGetRequest} creditSessionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    creditSessionsGet(creditSessionsGetRequest: CreditSessionsGetRequest, options?: any): AxiosPromise<CreditSessionsGetResponse>;
    /**
     * The `/dashboard_user/get` endpoint provides details (such as email address) about a specific Dashboard user based on the `dashboard_user_id` field, which is returned in the `audit_trail` object of certain Monitor and Beacon endpoints. This can be used to identify the specific reviewer who performed a Dashboard action.
     * @summary Retrieve a dashboard user
     * @param {DashboardUserGetRequest} dashboardUserGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    dashboardUserGet(dashboardUserGetRequest: DashboardUserGetRequest, options?: any): AxiosPromise<DashboardUserGetResponse>;
    /**
     * The `/dashboard_user/list` endpoint provides details (such as email address) all Dashboard users associated with your account. This can use used to audit or track the list of reviewers for Monitor, Beacon, and Identity Verification products.
     * @summary List dashboard users
     * @param {DashboardUserListRequest} dashboardUserListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    dashboardUserList(dashboardUserListRequest: DashboardUserListRequest, options?: any): AxiosPromise<DashboardUserListResponse>;
    /**
     * This endpoint provides an alternative to `/deposit_switch/create` for customers who have not yet fully integrated with Plaid Exchange. Like `/deposit_switch/create`, it creates a deposit switch entity that will be persisted throughout the lifecycle of the switch.
     * @summary (Deprecated) Create a deposit switch without using Plaid Exchange
     * @param {DepositSwitchAltCreateRequest} depositSwitchAltCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchAltCreate(depositSwitchAltCreateRequest: DepositSwitchAltCreateRequest, options?: any): AxiosPromise<DepositSwitchAltCreateResponse>;
    /**
     * This endpoint creates a deposit switch entity that will be persisted throughout the lifecycle of the switch.
     * @summary (Deprecated) Create a deposit switch
     * @param {DepositSwitchCreateRequest} depositSwitchCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchCreate(depositSwitchCreateRequest: DepositSwitchCreateRequest, options?: any): AxiosPromise<DepositSwitchCreateResponse>;
    /**
     * This endpoint returns information related to how the user has configured their payroll allocation and the state of the switch. You can use this information to build logic related to the user\'s direct deposit allocation preferences.
     * @summary (Deprecated) Retrieve a deposit switch
     * @param {DepositSwitchGetRequest} depositSwitchGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchGet(depositSwitchGetRequest: DepositSwitchGetRequest, options?: any): AxiosPromise<DepositSwitchGetResponse>;
    /**
     * In order for the end user to take action, you will need to create a public token representing the deposit switch. This token is used to initialize Link. It can be used one time and expires after 30 minutes.
     * @summary (Deprecated) Create a deposit switch token
     * @param {DepositSwitchTokenCreateRequest} depositSwitchTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    depositSwitchTokenCreate(depositSwitchTokenCreateRequest: DepositSwitchTokenCreateRequest, options?: any): AxiosPromise<DepositSwitchTokenCreateResponse>;
    /**
     * `/employers/search` allows you the ability to search Plaid’s database of known employers, for use with Deposit Switch. You can use this endpoint to look up a user\'s employer in order to confirm that they are supported. Users with non-supported employers can then be routed out of the Deposit Switch flow.  The data in the employer database is currently limited. As the Deposit Switch and Income products progress through their respective beta periods, more employers are being regularly added. Because the employer database is frequently updated, we recommend that you do not cache or store data from this endpoint for more than a day.
     * @summary Search employer database
     * @param {EmployersSearchRequest} employersSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    employersSearch(employersSearchRequest: EmployersSearchRequest, options?: any): AxiosPromise<EmployersSearchResponse>;
    /**
     * `/employment/verification/get` returns a list of employments through a user payroll that was verified by an end user.  This endpoint has been deprecated; new integrations should use `/credit/employment/get` instead.
     * @summary (Deprecated) Retrieve a summary of an individual\'s employment information
     * @param {EmploymentVerificationGetRequest} employmentVerificationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    employmentVerificationGet(employmentVerificationGetRequest: EmploymentVerificationGetRequest, options?: any): AxiosPromise<EmploymentVerificationGetResponse>;
    /**
     * A generic webhook receiver endpoint for FDX Event Notifications
     * @summary Webhook receiver for fdx notifications
     * @param {FDXNotification} fDXNotification
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    fdxNotifications(fDXNotification: FDXNotification, options?: any): AxiosPromise<void>;
    /**
     * Get a specific recipient
     * @summary Get Recipient
     * @param {string} recipientId Recipient Identifier. Uniquely identifies the recipient
     * @param {string} [oAUTHSTATEID] The value that is passed into the OAuth URI \&#39;state\&#39; query parameter.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRecipient(recipientId: string, oAUTHSTATEID?: string | undefined, options?: any): AxiosPromise<GetRecipientResponse>;
    /**
     * Returns a list of Recipients
     * @summary Get Recipients
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getRecipients(options?: any): AxiosPromise<GetRecipientsResponse>;
    /**
     * Use `/identity/documents/uploads/get` to retrieve identity details when using [Identity Document Upload](https://plaid.com/docs/identity/identity-document-upload/).
     * @summary Returns uploaded document identity
     * @param {IdentityDocumentsUploadsGetRequest} identityDocumentsUploadsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityDocumentsUploadsGet(identityDocumentsUploadsGetRequest: IdentityDocumentsUploadsGetRequest, options?: any): AxiosPromise<IdentityDocumentsUploadsGetResponse>;
    /**
     * The `/identity/get` endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses. Only name data is guaranteed to be returned; other fields will be empty arrays if not provided by the institution.  Note: In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29).
     * @summary Retrieve identity data
     * @param {IdentityGetRequest} identityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityGet(identityGetRequest: IdentityGetRequest, options?: any): AxiosPromise<IdentityGetResponse>;
    /**
     * The `/identity/match` endpoint generates a match score, which indicates how well the provided identity data matches the identity information on file with the account holder\'s financial institution.  Fields within the `balances` object will always be null when retrieved by `/identity/match`. Instead, use the free `/accounts/get` endpoint to request balance cached data, or `/accounts/balance/get` for real-time data.
     * @summary Retrieve identity match score
     * @param {IdentityMatchRequest} identityMatchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityMatch(identityMatchRequest: IdentityMatchRequest, options?: any): AxiosPromise<IdentityMatchResponse>;
    /**
     * `/identity/refresh` is an optional endpoint for users of the Identity product. It initiates an on-demand extraction to fetch the most up to date Identity information from the Financial Institution. This on-demand extraction takes place in addition to the periodic extractions that automatically occur for any Identity-enabled Item. If changes to Identity are discovered after calling `/identity/refresh`, Plaid will fire a webhook [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/identity/#default_update).  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/identity/refresh` is offered as an add-on to Identity and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh identity data
     * @param {IdentityRefreshRequest} identityRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityRefresh(identityRefreshRequest: IdentityRefreshRequest, options?: any): AxiosPromise<IdentityRefreshResponse>;
    /**
     * Try to autofill an Identity Verification based of the provided phone number, date of birth and country of residence.
     * @summary Create autofill for an Identity Verification
     * @param {IdentityVerificationAutofillCreateRequest} identityVerificationAutofillCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationAutofillCreate(identityVerificationAutofillCreateRequest: IdentityVerificationAutofillCreateRequest, options?: any): AxiosPromise<IdentityVerificationAutofillCreateResponse>;
    /**
     * Create a new Identity Verification for the user specified by the `client_user_id` field. The requirements and behavior of the verification are determined by the `template_id` provided. If you don\'t know whether the associated user already has an active Identity Verification, you can specify `\"is_idempotent\": true` in the request body. With idempotency enabled, a new Identity Verification will only be created if one does not already exist for the associated `client_user_id` and `template_id`. If an Identity Verification is found, it will be returned unmodified with an `200 OK` HTTP status code.  You can also use this endpoint to supply information you already have collected about the user; if any of these fields are specified, the screens prompting the user to enter them will be skipped during the Link flow.
     * @summary Create a new Identity Verification
     * @param {IdentityVerificationCreateRequest} identityVerificationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationCreate(identityVerificationCreateRequest: IdentityVerificationCreateRequest, options?: any): AxiosPromise<IdentityVerificationCreateResponse>;
    /**
     * Retrieve a previously created Identity Verification.
     * @summary Retrieve Identity Verification
     * @param {IdentityVerificationGetRequest} identityVerificationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationGet(identityVerificationGetRequest: IdentityVerificationGetRequest, options?: any): AxiosPromise<IdentityVerificationGetResponse>;
    /**
     * Filter and list Identity Verifications created by your account
     * @summary List Identity Verifications
     * @param {IdentityVerificationListRequest} identityVerificationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationList(identityVerificationListRequest: IdentityVerificationListRequest, options?: any): AxiosPromise<IdentityVerificationListResponse>;
    /**
     * Allow a customer to retry their Identity Verification
     * @summary Retry an Identity Verification
     * @param {IdentityVerificationRetryRequest} identityVerificationRetryRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    identityVerificationRetry(identityVerificationRetryRequest: IdentityVerificationRetryRequest, options?: any): AxiosPromise<IdentityVerificationRetryResponse>;
    /**
     * `/income/verification/create` begins the income verification process by returning an `income_verification_id`. You can then provide the `income_verification_id` to `/link/token/create` under the `income_verification` parameter in order to create a Link instance that will prompt the user to go through the income verification flow. Plaid will fire an `INCOME` webhook once the user completes the Payroll Income flow, or when the uploaded documents in the Document Income flow have finished processing.
     * @summary (Deprecated) Create an income verification instance
     * @param {IncomeVerificationCreateRequest} incomeVerificationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationCreate(incomeVerificationCreateRequest: IncomeVerificationCreateRequest, options?: any): AxiosPromise<IncomeVerificationCreateResponse>;
    /**
     * `/income/verification/documents/download` provides the ability to download the source documents associated with the verification.  If Document Income was used, the documents will be those the user provided in Link. For Payroll Income, the most recent files available for download from the payroll provider will be available from this endpoint.  The response to `/income/verification/documents/download` is a ZIP file in binary data. If a `document_id` is passed, a single document will be contained in this file. If not, the response will contain all documents associated with the verification.  The `request_id` is returned in the `Plaid-Request-ID` header.
     * @summary (Deprecated) Download the original documents used for income verification
     * @param {IncomeVerificationDocumentsDownloadRequest} incomeVerificationDocumentsDownloadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationDocumentsDownload(incomeVerificationDocumentsDownloadRequest: IncomeVerificationDocumentsDownloadRequest, options?: any): AxiosPromise<any>;
    /**
     * `/income/verification/paystubs/get` returns the information collected from the paystubs that were used to verify an end user\'s income. It can be called once the status of the verification has been set to `VERIFICATION_STATUS_PROCESSING_COMPLETE`, as reported by the `INCOME: verification_status` webhook. Attempting to call the endpoint before verification has been completed will result in an error.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.
     * @summary (Deprecated) Retrieve information from the paystubs used for income verification
     * @param {IncomeVerificationPaystubsGetRequest} incomeVerificationPaystubsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationPaystubsGet(incomeVerificationPaystubsGetRequest: IncomeVerificationPaystubsGetRequest, options?: any): AxiosPromise<IncomeVerificationPaystubsGetResponse>;
    /**
     * `/income/verification/precheck` is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification and returns a `precheck_id` that can be provided to `/link/token/create`. If the user is eligible for digital verification, providing the `precheck_id` in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the `precheck_id` can still be provided to `/link/token/create` and the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.  While all request fields are optional, providing either `employer` or `transactions_access_tokens` data will increase the chance of receiving a useful result.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/precheck` instead.
     * @summary (Deprecated) Check digital income verification eligibility and optimize conversion
     * @param {IncomeVerificationPrecheckRequest} incomeVerificationPrecheckRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationPrecheck(incomeVerificationPrecheckRequest: IncomeVerificationPrecheckRequest, options?: any): AxiosPromise<IncomeVerificationPrecheckResponse>;
    /**
     * `/income/verification/taxforms/get` returns the information collected from forms that were used to verify an end user\'\'s income. It can be called once the status of the verification has been set to `VERIFICATION_STATUS_PROCESSING_COMPLETE`, as reported by the `INCOME: verification_status` webhook. Attempting to call the endpoint before verification has been completed will result in an error.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.
     * @summary (Deprecated) Retrieve information from the tax documents used for income verification
     * @param {IncomeVerificationTaxformsGetRequest} incomeVerificationTaxformsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    incomeVerificationTaxformsGet(incomeVerificationTaxformsGetRequest: IncomeVerificationTaxformsGetRequest, options?: any): AxiosPromise<IncomeVerificationTaxformsGetResponse>;
    /**
     * Returns a JSON response containing details on all financial institutions currently supported by Plaid. Because Plaid supports thousands of institutions, results are paginated.  If there is no overlap between an institution’s enabled products and a client’s enabled products, then the institution will be filtered out from the response. As a result, the number of institutions returned may not match the count specified in the call.
     * @summary Get details of all supported institutions
     * @param {InstitutionsGetRequest} institutionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    institutionsGet(institutionsGetRequest: InstitutionsGetRequest, options?: any): AxiosPromise<InstitutionsGetResponse>;
    /**
     * Returns a JSON response containing details on a specified financial institution currently supported by Plaid.  Versioning note: API versions 2019-05-29 and earlier allow use of the `public_key` parameter instead of the `client_id` and `secret` to authenticate to this endpoint. The `public_key` has been deprecated; all customers are encouraged to use `client_id` and `secret` instead.
     * @summary Get details of an institution
     * @param {InstitutionsGetByIdRequest} institutionsGetByIdRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    institutionsGetById(institutionsGetByIdRequest: InstitutionsGetByIdRequest, options?: any): AxiosPromise<InstitutionsGetByIdResponse>;
    /**
     * Returns a JSON response containing details for institutions that match the query parameters, up to a maximum of ten institutions per query.  Versioning note: API versions 2019-05-29 and earlier allow use of the `public_key` parameter instead of the `client_id` and `secret` parameters to authenticate to this endpoint. The `public_key` parameter has since been deprecated; all customers are encouraged to use `client_id` and `secret` instead.
     * @summary Search institutions
     * @param {InstitutionsSearchRequest} institutionsSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    institutionsSearch(institutionsSearchRequest: InstitutionsSearchRequest, options?: any): AxiosPromise<InstitutionsSearchResponse>;
    /**
     * The `/investments/auth/get` endpoint allows developers to receive user-authorized data to facilitate the transfer of holdings
     * @summary Get data needed to authorize an investments transfer
     * @param {InvestmentsAuthGetRequest} investmentsAuthGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsAuthGet(investmentsAuthGetRequest: InvestmentsAuthGetRequest, options?: any): AxiosPromise<InvestmentsAuthGetResponse>;
    /**
     * The `/investments/holdings/get` endpoint allows developers to receive user-authorized stock position data for `investment`-type accounts.
     * @summary Get Investment holdings
     * @param {InvestmentsHoldingsGetRequest} investmentsHoldingsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsHoldingsGet(investmentsHoldingsGetRequest: InvestmentsHoldingsGetRequest, options?: any): AxiosPromise<InvestmentsHoldingsGetResponse>;
    /**
     * `/investments/refresh` is an optional endpoint for users of the Investments product. It initiates an on-demand extraction to fetch the newest investment holdings and transactions for an Item. This on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Investments-enabled Item. If changes to investments are discovered after calling `/investments/refresh`, Plaid will fire webhooks: [`HOLDINGS: DEFAULT_UPDATE`](https://plaid.com/docs/api/products/investments/#holdings-default_update) if any new holdings are detected, and [`INVESTMENTS_TRANSACTIONS: DEFAULT_UPDATE`](https://plaid.com/docs/api/products/investments/#investments_transactions-default_update) if any new investment transactions are detected. This webhook will typically not fire in the Sandbox environment, due to the lack of dynamic investment transactions and holdings data. To test this webhook in Sandbox, call `/sandbox/item/fire_webhook`. Updated holdings and investment transactions can be fetched by calling `/investments/holdings/get` and `/investments/transactions/get`. Note that the `/investments/refresh` endpoint is not supported by all institutions. If called on an Item from an institution that does not support this functionality, it will return a `PRODUCT_NOT_SUPPORTED` error.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/investments/refresh` is offered as an add-on to Investments and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh investment data
     * @param {InvestmentsRefreshRequest} investmentsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsRefresh(investmentsRefreshRequest: InvestmentsRefreshRequest, options?: any): AxiosPromise<InvestmentsRefreshResponse>;
    /**
     * The `/investments/transactions/get` endpoint allows developers to retrieve up to 24 months of user-authorized transaction data for investment accounts.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Due to the potentially large number of investment transactions associated with an Item, results are paginated. Manipulate the count and offset parameters in conjunction with the `total_investment_transactions` response body field to fetch all available investment transactions.  Note that Investments does not have a webhook to indicate when initial transaction data has loaded (unless you use the `async_update` option). Instead, if transactions data is not ready when `/investments/transactions/get` is first called, Plaid will wait for the data. For this reason, calling `/investments/transactions/get` immediately after Link may take up to one to two minutes to return.  Data returned by the asynchronous investments extraction flow (when `async_update` is set to true) may not be immediately available to `/investments/transactions/get`. To be alerted when the data is ready to be fetched, listen for the `HISTORICAL_UPDATE` webhook. If no investments history is ready when `/investments/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.
     * @summary Get investment transactions
     * @param {InvestmentsTransactionsGetRequest} investmentsTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    investmentsTransactionsGet(investmentsTransactionsGetRequest: InvestmentsTransactionsGetRequest, options?: any): AxiosPromise<InvestmentsTransactionsGetResponse>;
    /**
     * Retrieve detailed information about a specific `Issue`. This endpoint returns a single `Issue` object.
     * @summary Get an Issue
     * @param {IssuesGetRequest} issuesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    issuesGet(issuesGetRequest: IssuesGetRequest, options?: any): AxiosPromise<IssuesGetResponse>;
    /**
     * Search for an issue associated with one of the following identifiers:  `item_id`, `link_session_id` or Link session `request_id`.  This endpoint returns a list of `Issue` objects, with an empty list indicating that no issues are associated with the provided identifier. At least one of the identifiers must be provided to perform the search.
     * @summary Search for an Issue
     * @param {IssuesSearchRequest} issuesSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    issuesSearch(issuesSearchRequest: IssuesSearchRequest, options?: any): AxiosPromise<IssuesSearchResponse>;
    /**
     * Allows a user to subscribe to updates on a specific `Issue` using a POST method. Subscribers will receive webhook notifications when the issue status changes, particularly when resolved.
     * @summary Subscribe to an Issue
     * @param {IssuesSubscribeRequest} issuesSubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    issuesSubscribe(issuesSubscribeRequest: IssuesSubscribeRequest, options?: any): AxiosPromise<IssuesSubscribeResponse>;
    /**
     * By default, the `access_token` associated with an Item does not expire and should be stored in a persistent, secure manner.  You can use the `/item/access_token/invalidate` endpoint to rotate the `access_token` associated with an Item. The endpoint returns a new `access_token` and immediately invalidates the previous `access_token`.
     * @summary Invalidate access_token
     * @param {ItemAccessTokenInvalidateRequest} itemAccessTokenInvalidateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemAccessTokenInvalidate(itemAccessTokenInvalidateRequest: ItemAccessTokenInvalidateRequest, options?: any): AxiosPromise<ItemAccessTokenInvalidateResponse>;
    /**
     * List a historical log of user consent events
     * @summary List a historical log of user consent events
     * @param {ItemActivityListRequest} itemActivityListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemActivityList(itemActivityListRequest: ItemActivityListRequest, options?: any): AxiosPromise<ItemActivityListResponse>;
    /**
     * List a user’s connected applications
     * @summary List a user’s connected applications
     * @param {ItemApplicationListRequest} itemApplicationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemApplicationList(itemApplicationListRequest: ItemApplicationListRequest, options?: any): AxiosPromise<ItemApplicationListResponse>;
    /**
     * Enable consumers to update product access on selected accounts for an application.
     * @summary Update the scopes of access for a particular application
     * @param {ItemApplicationScopesUpdateRequest} itemApplicationScopesUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemApplicationScopesUpdate(itemApplicationScopesUpdateRequest: ItemApplicationScopesUpdateRequest, options?: any): AxiosPromise<ItemApplicationScopesUpdateResponse>;
    /**
     * Unlink a user’s connected application. On an unlink request, Plaid will immediately revoke the Application’s access to the User’s data.  The User will have to redo the OAuth authentication process in order to restore functionality.  This endpoint only removes ongoing data access permissions, therefore the User will need to reach out to the Application itself in order to disable and delete their account and delete any data that the Application already received (if the Application does not do so by default).  This endpoint should be called in real time as the User is unlinking an Application, and should not be batched in order to ensure that the change is reflected as soon as possible.
     * @summary Unlink a user’s connected application
     * @param {ItemApplicationUnlinkRequest} itemApplicationUnlinkRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemApplicationUnlink(itemApplicationUnlinkRequest: ItemApplicationUnlinkRequest, options?: any): AxiosPromise<ItemApplicationUnlinkResponse>;
    /**
     * Note: As of July 2020, the `/item/public_token/create` endpoint is deprecated. Instead, use `/link/token/create` with an `access_token` to create a Link token for use with [update mode](https://plaid.com/docs/link/update-mode).  If you need your user to take action to restore or resolve an error associated with an Item, generate a public token with the `/item/public_token/create` endpoint and then initialize Link with that `public_token`.  A `public_token` is one-time use and expires after 30 minutes. You use a `public_token` to initialize Link in [update mode](https://plaid.com/docs/link/update-mode) for a particular Item. You can generate a `public_token` for an Item even if you did not use Link to create the Item originally.  The `/item/public_token/create` endpoint is **not** used to create your initial `public_token`. If you have not already received an `access_token` for a specific Item, use Link to obtain your `public_token` instead. See the [Quickstart](https://plaid.com/docs/quickstart) for more information.
     * @summary Create public token
     * @param {ItemPublicTokenCreateRequest} itemPublicTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemCreatePublicToken(itemPublicTokenCreateRequest: ItemPublicTokenCreateRequest, options?: any): AxiosPromise<ItemPublicTokenCreateResponse>;
    /**
     * Returns information about the status of an Item.
     * @summary Retrieve an Item
     * @param {ItemGetRequest} itemGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemGet(itemGetRequest: ItemGetRequest, options?: any): AxiosPromise<ItemGetResponse>;
    /**
     * `/item/import` creates an Item via your Plaid Exchange Integration and returns an `access_token`. As part of an `/item/import` request, you will include a User ID (`user_auth.user_id`) and Authentication Token (`user_auth.auth_token`) that enable data aggregation through your Plaid Exchange API endpoints. These authentication principals are to be chosen by you.  Upon creating an Item via `/item/import`, Plaid will automatically begin an extraction of that Item through the Plaid Exchange infrastructure you have already integrated.
     * @summary Import Item
     * @param {ItemImportRequest} itemImportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemImport(itemImportRequest: ItemImportRequest, options?: any): AxiosPromise<ItemImportResponse>;
    /**
     * Exchange a Link `public_token` for an API `access_token`. Link hands off the `public_token` client-side via the `onSuccess` callback once a user has successfully created an Item. The `public_token` is ephemeral and expires after 30 minutes. An `access_token` does not expire, but can be revoked by calling `/item/remove`.  The response also includes an `item_id` that should be stored with the `access_token`. The `item_id` is used to identify an Item in a webhook. The `item_id` can also be retrieved by making an `/item/get` request.
     * @summary Exchange public token for an access token
     * @param {ItemPublicTokenExchangeRequest} itemPublicTokenExchangeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemPublicTokenExchange(itemPublicTokenExchangeRequest: ItemPublicTokenExchangeRequest, options?: any): AxiosPromise<ItemPublicTokenExchangeResponse>;
    /**
     * The `/item/remove` endpoint allows you to remove an Item. Once removed, the `access_token`, as well as any processor tokens or bank account tokens associated with the Item, is no longer valid and cannot be used to access any data that was associated with the Item.   Calling `/item/remove` is a recommended best practice when offboarding users or if a user chooses to disconnect an account linked via Plaid. For subscription products, such as Transactions, Liabilities, and Investments, calling `/item/remove` is required to end subscription billing for the Item. For money movement products such as Auth and Transfer, if the Item is at an institution that uses Tokenized Account Numbers (TANs), such as Chase or PNC, calling `/item/remove` will invalidate the TAN, and subsequent ACH transfer attempts using that TAN will be returned.  In Limited Production, calling `/item/remove` does not impact the number of remaining Limited Production Items you have available.  Removing an Item does not affect any Asset Reports or Audit Copies you have already created, which will remain accessible until you remove access to them specifically using the `/asset_report/remove` endpoint.  Also note that for certain OAuth-based institutions, an Item removed via `/item/remove` may still show as an active connection in the institution\'s OAuth permission manager.  API versions 2019-05-29 and earlier return a `removed` boolean as part of the response.
     * @summary Remove an Item
     * @param {ItemRemoveRequest} itemRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemRemove(itemRemoveRequest: ItemRemoveRequest, options?: any): AxiosPromise<ItemRemoveResponse>;
    /**
     * The POST `/item/webhook/update` allows you to update the webhook URL associated with an Item. This request triggers a [`WEBHOOK_UPDATE_ACKNOWLEDGED`](https://plaid.com/docs/api/items/#webhook_update_acknowledged) webhook to the newly specified webhook URL.
     * @summary Update Webhook URL
     * @param {ItemWebhookUpdateRequest} itemWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    itemWebhookUpdate(itemWebhookUpdateRequest: ItemWebhookUpdateRequest, options?: any): AxiosPromise<ItemWebhookUpdateResponse>;
    /**
     * The `/liabilities/get` endpoint returns various details about an Item with loan or credit accounts. Liabilities data is available primarily for US financial institutions, with some limited coverage of Canadian institutions. Currently supported account types are account type `credit` with account subtype `credit card` or `paypal`, and account type `loan` with account subtype `student` or `mortgage`. To limit accounts listed in Link to types and subtypes supported by Liabilities, you can use the `account_filters` parameter when [creating a Link token](https://plaid.com/docs/api/link/#linktokencreate).  The types of information returned by Liabilities can include balances and due dates, loan terms, and account details such as original loan amount and guarantor. Data is refreshed approximately once per day; the latest data can be retrieved by calling `/liabilities/get`.
     * @summary Retrieve Liabilities data
     * @param {LiabilitiesGetRequest} liabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    liabilitiesGet(liabilitiesGetRequest: LiabilitiesGetRequest, options?: any): AxiosPromise<LiabilitiesGetResponse>;
    /**
     * Use the `/link_delivery/create` endpoint to create a Hosted Link session.
     * @summary Create Hosted Link session
     * @param {LinkDeliveryCreateRequest} linkDeliveryCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkDeliveryCreate(linkDeliveryCreateRequest: LinkDeliveryCreateRequest, options?: any): AxiosPromise<LinkDeliveryCreateResponse>;
    /**
     * Use the `/link_delivery/get` endpoint to get the status of a Hosted Link session.
     * @summary Get Hosted Link session
     * @param {LinkDeliveryGetRequest} linkDeliveryGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkDeliveryGet(linkDeliveryGetRequest: LinkDeliveryGetRequest, options?: any): AxiosPromise<LinkDeliveryGetResponse>;
    /**
     * Exchange an OAuth `link_correlation_id` for the corresponding `link_token`. The `link_correlation_id` is only available for \'payment_initiation\' products and is provided to the client via the OAuth `redirect_uri` as a query parameter. The `link_correlation_id` is ephemeral and expires in a brief period, after which it can no longer be exchanged for the \'link_token\'.
     * @summary Exchange the Link Correlation Id for a Link Token
     * @param {LinkOAuthCorrelationIdExchangeRequest} linkOAuthCorrelationIdExchangeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkOauthCorrelationIdExchange(linkOAuthCorrelationIdExchangeRequest: LinkOAuthCorrelationIdExchangeRequest, options?: any): AxiosPromise<LinkOAuthCorrelationIdExchangeResponse>;
    /**
     * The `/link/token/create` endpoint creates a `link_token`, which is required as a parameter when initializing Link. Once Link has been initialized, it returns a `public_token`. For most Plaid products, the `public_token` is saved and exchanged for an `access_token` via `/item/public_token/exchange` as part of the main Link flow. For more details, see the [Link flow overview](https://plaid.com/docs/link/#link-flow-overview).  A `link_token` generated by `/link/token/create` is also used to initialize other Link flows, such as the [update mode](https://plaid.com/docs/link/update-mode) flow for tokens with expired credentials, or the Identity Verification flow.
     * @summary Create Link Token
     * @param {LinkTokenCreateRequest} linkTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkTokenCreate(linkTokenCreateRequest: LinkTokenCreateRequest, options?: any): AxiosPromise<LinkTokenCreateResponse>;
    /**
     * The `/link/token/get` endpoint gets information about a Link session, including all callbacks fired during the session along with their metadata, including the public token. This endpoint is used with Link flows that don\'t provide a public token via frontend callbacks, such as the [Hosted Link flow](https://plaid.com/docs/link/hosted-link/) and the [Multi-Item Link flow](https://plaid.com/docs/link/multi-item-link/). It also can be useful for debugging purposes.
     * @summary Get Link Token
     * @param {LinkTokenGetRequest} linkTokenGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    linkTokenGet(linkTokenGetRequest: LinkTokenGetRequest, options?: any): AxiosPromise<LinkTokenGetResponse>;
    /**
     * This endpoint allows you to retrieve the Network Insights from a list of `access_tokens`.
     * @summary Retrieve network insights for the provided `access_tokens`
     * @param {NetworkInsightsReportGetRequest} networkInsightsReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    networkInsightsReportGet(networkInsightsReportGetRequest: NetworkInsightsReportGetRequest, options?: any): AxiosPromise<NetworkInsightsReportGetResponse>;
    /**
     * The `/network/status/get` endpoint can be used to check whether Plaid has a matching profile for the user. This is useful for determining if a user is eligible for a streamlined experience, such as Layer.  Note: it is strongly recommended to check for Layer eligibility in the frontend. `/network/status/get` should only be used for checking Layer eligibility if a frontend check is not possible for your use case. For instructions on performing a frontend eligibility check, see the [Layer documentation](https://plaid.com/docs/layer/#integration-overview).
     * @summary Check a user\'s Plaid Network status
     * @param {NetworkStatusGetRequest} networkStatusGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    networkStatusGet(networkStatusGetRequest: NetworkStatusGetRequest, options?: any): AxiosPromise<NetworkStatusGetResponse>;
    /**
     * The `/partner/customer/create` endpoint is used by reseller partners to create end customers. To create end customers, it should be called in the Production environment only, even when creating Sandbox API keys. If called in the Sandbox environment, it will return a sample response, but no customer will be created and the API keys will not be valid.
     * @summary Creates a new end customer for a Plaid reseller.
     * @param {PartnerCustomerCreateRequest} partnerCustomerCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerCreate(partnerCustomerCreateRequest: PartnerCustomerCreateRequest, options?: any): AxiosPromise<PartnerCustomerCreateResponse>;
    /**
     * The `/partner/customer/enable` endpoint is used by reseller partners to enable an end customer in the full Production environment.
     * @summary Enables a Plaid reseller\'s end customer in the Production environment.
     * @param {PartnerCustomerEnableRequest} partnerCustomerEnableRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerEnable(partnerCustomerEnableRequest: PartnerCustomerEnableRequest, options?: any): AxiosPromise<PartnerCustomerEnableResponse>;
    /**
     * The `/partner/customer/get` endpoint is used by reseller partners to retrieve data about a single end customer.
     * @summary Returns a Plaid reseller\'s end customer.
     * @param {PartnerCustomerGetRequest} partnerCustomerGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerGet(partnerCustomerGetRequest: PartnerCustomerGetRequest, options?: any): AxiosPromise<PartnerCustomerGetResponse>;
    /**
     * The `/partner/customer/oauth_institutions/get` endpoint is used by reseller partners to retrieve OAuth-institution registration information about a single end customer. To learn how to set up a webhook to listen to status update events, visit the [reseller documentation](https://plaid.com/docs/account/resellers/#enabling-end-customers).
     * @summary Returns OAuth-institution registration information for a given end customer.
     * @param {PartnerCustomerOAuthInstitutionsGetRequest} partnerCustomerOAuthInstitutionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerOauthInstitutionsGet(partnerCustomerOAuthInstitutionsGetRequest: PartnerCustomerOAuthInstitutionsGetRequest, options?: any): AxiosPromise<PartnerCustomerOAuthInstitutionsGetResponse>;
    /**
     * The `/partner/customer/remove` endpoint is used by reseller partners to remove an end customer. Removing an end customer will remove it from view in the Plaid Dashboard and deactivate its API keys. This endpoint can only be used to remove an end customer that has not yet been enabled in full Production.
     * @summary Removes a Plaid reseller\'s end customer.
     * @param {PartnerCustomerRemoveRequest} partnerCustomerRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    partnerCustomerRemove(partnerCustomerRemoveRequest: PartnerCustomerRemoveRequest, options?: any): AxiosPromise<PartnerCustomerRemoveResponse>;
    /**
     * The `/payment_initiation/consent/create` endpoint is used to create a payment consent, which can be used to initiate payments on behalf of the user. Payment consents are created with `UNAUTHORISED` status by default and must be authorised by the user before payments can be initiated.  Consents can be limited in time and scope, and have constraints that describe limitations for payments.
     * @summary Create payment consent
     * @param {PaymentInitiationConsentCreateRequest} paymentInitiationConsentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentCreate(paymentInitiationConsentCreateRequest: PaymentInitiationConsentCreateRequest, options?: any): AxiosPromise<PaymentInitiationConsentCreateResponse>;
    /**
     * The `/payment_initiation/consent/get` endpoint can be used to check the status of a payment consent, as well as to receive basic information such as recipient and constraints.
     * @summary Get payment consent
     * @param {PaymentInitiationConsentGetRequest} paymentInitiationConsentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentGet(paymentInitiationConsentGetRequest: PaymentInitiationConsentGetRequest, options?: any): AxiosPromise<PaymentInitiationConsentGetResponse>;
    /**
     * The `/payment_initiation/consent/payment/execute` endpoint can be used to execute payments using payment consent.
     * @summary Execute a single payment using consent
     * @param {PaymentInitiationConsentPaymentExecuteRequest} paymentInitiationConsentPaymentExecuteRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentPaymentExecute(paymentInitiationConsentPaymentExecuteRequest: PaymentInitiationConsentPaymentExecuteRequest, options?: any): AxiosPromise<PaymentInitiationConsentPaymentExecuteResponse>;
    /**
     * The `/payment_initiation/consent/revoke` endpoint can be used to revoke the payment consent. Once the consent is revoked, it is not possible to initiate payments using it.
     * @summary Revoke payment consent
     * @param {PaymentInitiationConsentRevokeRequest} paymentInitiationConsentRevokeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationConsentRevoke(paymentInitiationConsentRevokeRequest: PaymentInitiationConsentRevokeRequest, options?: any): AxiosPromise<PaymentInitiationConsentRevokeResponse>;
    /**
     * After creating a payment recipient, you can use the `/payment_initiation/payment/create` endpoint to create a payment to that recipient.  Payments can be one-time or standing order (recurring) and can be denominated in either EUR, GBP or other chosen [currency](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-create-request-amount-currency).  If making domestic GBP-denominated payments, your recipient must have been created with BACS numbers. In general, EUR-denominated payments will be sent via SEPA Credit Transfer, GBP-denominated payments will be sent via the Faster Payments network and for non-Eurozone markets typically via the local payment scheme, but the payment network used will be determined by the institution. Payments sent via Faster Payments will typically arrive immediately, while payments sent via SEPA Credit Transfer or other local payment schemes will typically arrive in one business day.  Standing orders (recurring payments) must be denominated in GBP and can only be sent to recipients in the UK. Once created, standing order payments cannot be modified or canceled via the API. An end user can cancel or modify a standing order directly on their banking application or website, or by contacting the bank. Standing orders will follow the payment rules of the underlying rails (Faster Payments in UK). Payments can be sent Monday to Friday, excluding bank holidays. If the pre-arranged date falls on a weekend or bank holiday, the payment is made on the next working day. It is not possible to guarantee the exact time the payment will reach the recipient’s account, although at least 90% of standing order payments are sent by 6am.  In Limited Production, payments must be below 5 GBP or other chosen [currency](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-create-request-amount-currency), and standing orders, variable recurring payments, and Virtual Accounts are not supported.
     * @summary Create a payment
     * @param {PaymentInitiationPaymentCreateRequest} paymentInitiationPaymentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentCreate(paymentInitiationPaymentCreateRequest: PaymentInitiationPaymentCreateRequest, options?: any): AxiosPromise<PaymentInitiationPaymentCreateResponse>;
    /**
     * The `/payment_initiation/payment/get` endpoint can be used to check the status of a payment, as well as to receive basic information such as recipient and payment amount. In the case of standing orders, the `/payment_initiation/payment/get` endpoint will provide information about the status of the overall standing order itself; the API cannot be used to retrieve payment status for individual payments within a standing order.
     * @summary Get payment details
     * @param {PaymentInitiationPaymentGetRequest} paymentInitiationPaymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentGet(paymentInitiationPaymentGetRequest: PaymentInitiationPaymentGetRequest, options?: any): AxiosPromise<PaymentInitiationPaymentGetResponse>;
    /**
     * The `/payment_initiation/payment/list` endpoint can be used to retrieve all created payments. By default, the 10 most recent payments are returned. You can request more payments and paginate through the results using the optional `count` and `cursor` parameters.
     * @summary List payments
     * @param {PaymentInitiationPaymentListRequest} paymentInitiationPaymentListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentList(paymentInitiationPaymentListRequest: PaymentInitiationPaymentListRequest, options?: any): AxiosPromise<PaymentInitiationPaymentListResponse>;
    /**
     * Reverse a settled payment from a Plaid virtual account.  The original payment must be in a settled state to be refunded. To refund partially, specify the amount as part of the request. If the amount is not specified, the refund amount will be equal to all of the remaining payment amount that has not been refunded yet.  The refund will go back to the source account that initiated the payment. The original payment must have been initiated to a Plaid virtual account so that this account can be used to initiate the refund.  Providing counterparty information such as date of birth and address increases  the likelihood of refund being successful without human intervention.
     * @summary Reverse an existing payment
     * @param {PaymentInitiationPaymentReverseRequest} paymentInitiationPaymentReverseRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationPaymentReverse(paymentInitiationPaymentReverseRequest: PaymentInitiationPaymentReverseRequest, options?: any): AxiosPromise<PaymentInitiationPaymentReverseResponse>;
    /**
     * Create a payment recipient for payment initiation.  The recipient must be in Europe, within a country that is a member of the Single Euro Payment Area (SEPA) or a non-Eurozone country [supported](https://plaid.com/global) by Plaid. For a standing order (recurring) payment, the recipient must be in the UK.  It is recommended to use `bacs` in the UK and `iban` in EU.  The endpoint is idempotent: if a developer has already made a request with the same payment details, Plaid will return the same `recipient_id`.
     * @summary Create payment recipient
     * @param {PaymentInitiationRecipientCreateRequest} paymentInitiationRecipientCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationRecipientCreate(paymentInitiationRecipientCreateRequest: PaymentInitiationRecipientCreateRequest, options?: any): AxiosPromise<PaymentInitiationRecipientCreateResponse>;
    /**
     * Get details about a payment recipient you have previously created.
     * @summary Get payment recipient
     * @param {PaymentInitiationRecipientGetRequest} paymentInitiationRecipientGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationRecipientGet(paymentInitiationRecipientGetRequest: PaymentInitiationRecipientGetRequest, options?: any): AxiosPromise<PaymentInitiationRecipientGetResponse>;
    /**
     * The `/payment_initiation/recipient/list` endpoint list the payment recipients that you have previously created.
     * @summary List payment recipients
     * @param {PaymentInitiationRecipientListRequest} paymentInitiationRecipientListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentInitiationRecipientList(paymentInitiationRecipientListRequest: PaymentInitiationRecipientListRequest, options?: any): AxiosPromise<PaymentInitiationRecipientListResponse>;
    /**
     * Use `/payment_profile/create` endpoint to create a new payment profile. To initiate the account linking experience, call `/link/token/create` and provide the `payment_profile_token` in the `transfer.payment_profile_token` field. You can then use the `payment_profile_token` when creating transfers using `/transfer/authorization/create` and `/transfer/create`.
     * @summary Create payment profile
     * @param {PaymentProfileCreateRequest} paymentProfileCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentProfileCreate(paymentProfileCreateRequest: PaymentProfileCreateRequest, options?: any): AxiosPromise<PaymentProfileCreateResponse>;
    /**
     * Use `/payment_profile/get` endpoint to get the status of a given Payment Profile.
     * @summary Get payment profile
     * @param {PaymentProfileGetRequest} paymentProfileGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentProfileGet(paymentProfileGetRequest: PaymentProfileGetRequest, options?: any): AxiosPromise<PaymentProfileGetResponse>;
    /**
     * Use the `/payment_profile/remove` endpoint to remove a given Payment Profile. Once it’s removed, it can no longer be used to create transfers.
     * @summary Remove payment profile
     * @param {PaymentProfileRemoveRequest} paymentProfileRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    paymentProfileRemove(paymentProfileRemoveRequest: PaymentProfileRemoveRequest, options?: any): AxiosPromise<PaymentProfileRemoveResponse>;
    /**
     * This endpoint returns the account associated with a given processor token.  This endpoint retrieves cached information, rather than extracting fresh information from the institution. As a result, the account balance returned may not be up-to-date; for realtime balance information, use `/processor/balance/get` instead. Note that some information is nullable.
     * @summary Retrieve the account associated with a processor token
     * @param {ProcessorAccountGetRequest} processorAccountGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorAccountGet(processorAccountGetRequest: ProcessorAccountGetRequest, options?: any): AxiosPromise<ProcessorAccountGetResponse>;
    /**
     * Used to create a token suitable for sending to Apex to enable Plaid-Apex integrations.
     * @summary Create Apex bank account token
     * @param {ProcessorApexProcessorTokenCreateRequest} processorApexProcessorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorApexProcessorTokenCreate(processorApexProcessorTokenCreateRequest: ProcessorApexProcessorTokenCreateRequest, options?: any): AxiosPromise<ProcessorTokenCreateResponse>;
    /**
     * The `/processor/auth/get` endpoint returns the bank account and bank identification number (such as the routing number, for US accounts), for a checking, savings, or cash management account that\'\'s associated with a given `processor_token`. The endpoint also returns high-level account data and balances when available.  Versioning note: API versions 2019-05-29 and earlier use a different schema for the `numbers` object returned by this endpoint. For details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2020-09-14).
     * @summary Retrieve Auth data
     * @param {ProcessorAuthGetRequest} processorAuthGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorAuthGet(processorAuthGetRequest: ProcessorAuthGetRequest, options?: any): AxiosPromise<ProcessorAuthGetResponse>;
    /**
     * The `/processor/balance/get` endpoint returns the real-time balance for each of an Item\'s accounts. While other endpoints may return a balance object, only `/processor/balance/get` forces the available and current balance fields to be refreshed rather than cached.
     * @summary Retrieve Balance data
     * @param {ProcessorBalanceGetRequest} processorBalanceGetRequest The &#x60;/processor/balance/get&#x60; endpoint returns the real-time balance for the account associated with a given &#x60;processor_token&#x60;.  The current balance is the total amount of funds in the account. The available balance is the current balance less any outstanding holds or debits that have not yet posted to the account.  Note that not all institutions calculate the available balance. In the event that available balance is unavailable from the institution, Plaid will return an available balance value of &#x60;null&#x60;.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorBalanceGet(processorBalanceGetRequest: ProcessorBalanceGetRequest, options?: any): AxiosPromise<ProcessorBalanceGetResponse>;
    /**
     * Use the `/processor/bank_transfer/create` endpoint to initiate a new bank transfer as a processor
     * @summary Create a bank transfer as a processor
     * @param {ProcessorBankTransferCreateRequest} processorBankTransferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorBankTransferCreate(processorBankTransferCreateRequest: ProcessorBankTransferCreateRequest, options?: any): AxiosPromise<ProcessorBankTransferCreateResponse>;
    /**
     * The `/processor/identity/get` endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses.
     * @summary Retrieve Identity data
     * @param {ProcessorIdentityGetRequest} processorIdentityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorIdentityGet(processorIdentityGetRequest: ProcessorIdentityGetRequest, options?: any): AxiosPromise<ProcessorIdentityGetResponse>;
    /**
     * The `/processor/identity/match` endpoint generates a match score, which indicates how well the provided identity data matches the identity information on file with the account holder\'s financial institution.  Fields within the `balances` object will always be null when retrieved by `/identity/match`. Instead, use the free `/accounts/get` endpoint to request balance cached data, or `/accounts/balance/get` for real-time data.
     * @summary Retrieve identity match score
     * @param {ProcessorIdentityMatchRequest} processorIdentityMatchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorIdentityMatch(processorIdentityMatchRequest: ProcessorIdentityMatchRequest, options?: any): AxiosPromise<ProcessorIdentityMatchResponse>;
    /**
     * This endpoint returns the stock position data of the account associated with a given processor token.
     * @summary Retrieve Investment Holdings
     * @param {ProcessorInvestmentsHoldingsGetRequest} processorInvestmentsHoldingsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorInvestmentsHoldingsGet(processorInvestmentsHoldingsGetRequest: ProcessorInvestmentsHoldingsGetRequest, options?: any): AxiosPromise<ProcessorInvestmentsHoldingsGetResponse>;
    /**
     * The `/processor/investments/transactions/get` endpoint allows developers to retrieve up to 24 months of user-authorized transaction data for the investment account associated with the processor token.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Due to the potentially large number of investment transactions associated with the account, results are paginated. Manipulate the count and offset parameters in conjunction with the `total_investment_transactions` response body field to fetch all available investment transactions.  Note that Investments does not have a webhook to indicate when initial transaction data has loaded (unless you use the `async_update` option). Instead, if transactions data is not ready when `/processor/investments/transactions/get` is first called, Plaid will wait for the data. For this reason, calling `/processor/investments/transactions/get` immediately after Link may take up to one to two minutes to return.  Data returned by the asynchronous investments extraction flow (when `async_update` is set to true) may not be immediately available to `/processor/investments/transactions/get`. To be alerted when the data is ready to be fetched, listen for the `HISTORICAL_UPDATE` webhook. If no investments history is ready when `/processor/investments/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.  To receive Investments Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get investment transactions data
     * @param {ProcessorInvestmentsTransactionsGetRequest} processorInvestmentsTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorInvestmentsTransactionsGet(processorInvestmentsTransactionsGetRequest: ProcessorInvestmentsTransactionsGetRequest, options?: any): AxiosPromise<ProcessorInvestmentsTransactionsGetResponse>;
    /**
     * The `/processor/liabilities/get` endpoint returns various details about a loan or credit account. Liabilities data is available primarily for US financial institutions, with some limited coverage of Canadian institutions. Currently supported account types are account type `credit` with account subtype `credit card` or `paypal`, and account type `loan` with account subtype `student` or `mortgage`.  The types of information returned by Liabilities can include balances and due dates, loan terms, and account details such as original loan amount and guarantor. Data is refreshed approximately once per day; the latest data can be retrieved by calling `/processor/liabilities/get`.  Note: This request may take some time to complete if `liabilities` was not specified as an initial product when creating the processor token. This is because Plaid must communicate directly with the institution to retrieve the additional data.
     * @summary Retrieve Liabilities data
     * @param {ProcessorLiabilitiesGetRequest} processorLiabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorLiabilitiesGet(processorLiabilitiesGetRequest: ProcessorLiabilitiesGetRequest, options?: any): AxiosPromise<ProcessorLiabilitiesGetResponse>;
    /**
     * After calling `/processor/signal/evaluate`, call `/processor/signal/decision/report` to report whether the transaction was initiated.  If you are using the [Plaid Transfer product](https://www.plaid.com/docs/transfer) to create transfers, it is not necessary to use this endpoint, as Plaid already knows whether the transfer was initiated.
     * @summary Report whether you initiated an ACH transaction
     * @param {ProcessorSignalDecisionReportRequest} processorSignalDecisionReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalDecisionReport(processorSignalDecisionReportRequest: ProcessorSignalDecisionReportRequest, options?: any): AxiosPromise<ProcessorSignalDecisionReportResponse>;
    /**
     * Use `/processor/signal/evaluate` to evaluate a planned ACH transaction as a processor to get a return risk assessment (such as a risk score and risk tier) and additional risk signals.  In order to obtain a valid score for an ACH transaction, Plaid must have an access token for the account, and the Item must be healthy (receiving product updates) or have recently been in a healthy state. If the transaction does not meet eligibility requirements, an error will be returned corresponding to the underlying cause. If `/processor/signal/evaluate` is called on the same transaction multiple times within a 24-hour period, cached results may be returned. For more information please refer to our error documentation on [item errors](/docs/errors/item/) and [Link in Update Mode](/docs/link/update-mode/).  Note: This request may take some time to complete if Signal is being added to an existing Item. This is because Plaid must communicate directly with the institution when retrieving the data for the first time. To reduce this latency, you can call `/signal/prepare` on the Item before you need to request Signal data.
     * @summary Evaluate a planned ACH transaction
     * @param {ProcessorSignalEvaluateRequest} processorSignalEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalEvaluate(processorSignalEvaluateRequest: ProcessorSignalEvaluateRequest, options?: any): AxiosPromise<ProcessorSignalEvaluateResponse>;
    /**
     * When a processor token is not initialized with Signal, call `/processor/signal/prepare` to opt-in that processor token to the Signal data collection process, which will improve the accuracy of the Signal score.  If this endpoint is called with a processor token that is already initialized with Signal, it will return a 200 response and will not modify the processor token.
     * @summary Opt-in a processor token to Signal
     * @param {ProcessorSignalPrepareRequest} processorSignalPrepareRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalPrepare(processorSignalPrepareRequest: ProcessorSignalPrepareRequest, options?: any): AxiosPromise<ProcessorSignalPrepareResponse>;
    /**
     * Call the `/processor/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/processor/signal/evaluate` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio.  If you are using the [Plaid Transfer product](https://www.plaid.com/docs/transfer) to create transfers, it is not necessary to use this endpoint, as Plaid already knows whether the transfer was returned.
     * @summary Report a return for an ACH transaction
     * @param {ProcessorSignalReturnReportRequest} processorSignalReturnReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorSignalReturnReport(processorSignalReturnReportRequest: ProcessorSignalReturnReportRequest, options?: any): AxiosPromise<ProcessorSignalReturnReportResponse>;
    /**
     *  Used to create a token suitable for sending to Stripe to enable Plaid-Stripe integrations. For a detailed guide on integrating Stripe, see [Add Stripe to your app](https://plaid.com/docs/auth/partnerships/stripe/).  Note that the Stripe bank account token is a one-time use token. To store bank account information for later use, you can use a Stripe customer object and create an associated bank account from the token, or you can use a Stripe Custom account and create an associated external bank account from the token. This bank account information should work indefinitely, unless the user\'s bank account information changes or they revoke Plaid\'s permissions to access their account. Stripe bank account information cannot be modified once the bank account token has been created. If you ever need to change the bank account details used by Stripe for a specific customer, have the user go through Link again and create a new bank account token from the new `access_token`.  To revoke a bank account token, the entire underlying access token must be revoked using `/item/remove`.
     * @summary Create Stripe bank account token
     * @param {ProcessorStripeBankAccountTokenCreateRequest} processorStripeBankAccountTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorStripeBankAccountTokenCreate(processorStripeBankAccountTokenCreateRequest: ProcessorStripeBankAccountTokenCreateRequest, options?: any): AxiosPromise<ProcessorStripeBankAccountTokenCreateResponse>;
    /**
     * Used to create a token suitable for sending to one of Plaid\'s partners to enable integrations. Note that Stripe partnerships use bank account tokens instead; see `/processor/stripe/bank_account_token/create` for creating tokens for use with Stripe integrations. If using multiple processors, multiple different processor tokens can be created for a single access token. Once created, a processor token for a given Item cannot be modified or updated. To revoke the processor\'s access, the entire Item must be deleted by calling `/item/remove`.
     * @summary Create processor token
     * @param {ProcessorTokenCreateRequest} processorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenCreate(processorTokenCreateRequest: ProcessorTokenCreateRequest, options?: any): AxiosPromise<ProcessorTokenCreateResponse>;
    /**
     * Used to get a processor token\'s product permissions. The `products` field will be an empty list if the processor can access all available products.
     * @summary Get a processor token\'s product permissions
     * @param {ProcessorTokenPermissionsGetRequest} processorTokenPermissionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenPermissionsGet(processorTokenPermissionsGetRequest: ProcessorTokenPermissionsGetRequest, options?: any): AxiosPromise<ProcessorTokenPermissionsGetResponse>;
    /**
     * Used to control a processor\'s access to products on the given processor token. By default, a processor will have access to all available products on the corresponding item. To restrict access to a particular set of products, call this endpoint with the desired products. To restore access to all available products, call this endpoint with an empty list. This endpoint can be called multiple times as your needs and your processor\'s needs change.
     * @summary Control a processor\'s access to products
     * @param {ProcessorTokenPermissionsSetRequest} processorTokenPermissionsSetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenPermissionsSet(processorTokenPermissionsSetRequest: ProcessorTokenPermissionsSetRequest, options?: any): AxiosPromise<ProcessorTokenPermissionsSetResponse>;
    /**
     * This endpoint allows you, the processor, to update the webhook URL associated with a processor token. This request triggers a `WEBHOOK_UPDATE_ACKNOWLEDGED` webhook to the newly specified webhook URL.
     * @summary Update a processor token\'s webhook URL
     * @param {ProcessorTokenWebhookUpdateRequest} processorTokenWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTokenWebhookUpdate(processorTokenWebhookUpdateRequest: ProcessorTokenWebhookUpdateRequest, options?: any): AxiosPromise<ProcessorTokenWebhookUpdateResponse>;
    /**
     * The `/processor/transactions/get` endpoint allows developers to receive user-authorized transaction data for credit, depository, and some loan-type accounts (only those with account subtype `student`; coverage may be limited). Transaction data is standardized across financial institutions, and in many cases transactions are linked to a clean name, entity type, location, and category. Similarly, account data is standardized and returned with a clean name, number, balance, and other meta information where available.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Transactions are not immutable and can also be removed altogether by the institution; a removed transaction will no longer appear in `/processor/transactions/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).  Due to the potentially large number of transactions associated with a processor token, results are paginated. Manipulate the `count` and `offset` parameters in conjunction with the `total_transactions` response body field to fetch all available transactions.  Data returned by `/processor/transactions/get` will be the data available for the processor token as of the most recent successful check for new transactions. Plaid typically checks for new data multiple times a day, but these checks may occur less frequently, such as once a day, depending on the institution. To force Plaid to check for new transactions, you can use the `/processor/transactions/refresh` endpoint.  Note that data may not be immediately available to `/processor/transactions/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `transactions`, or upon the first call to `/processor/transactions/get`, if it wasn\'t. If no transaction history is ready when `/processor/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get transaction data
     * @param {ProcessorTransactionsGetRequest} processorTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsGet(processorTransactionsGetRequest: ProcessorTransactionsGetRequest, options?: any): AxiosPromise<ProcessorTransactionsGetResponse>;
    /**
     * The `/processor/transactions/recurring/get` endpoint allows developers to receive a summary of the recurring outflow and inflow streams (expenses and deposits) from a user’s checking, savings or credit card accounts. Additionally, Plaid provides key insights about each recurring stream including the category, merchant, last amount, and more. Developers can use these insights to build tools and experiences that help their users better manage cash flow, monitor subscriptions, reduce spend, and stay on track with bill payments.  This endpoint is offered as an add-on to Transactions. To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.  This endpoint can only be called on a processor token that has already been initialized with Transactions (either during Link, by specifying it in `/link/token/create`; or after Link, by calling `/processor/transactions/get` or `/processor/transactions/sync`). Once all historical transactions have been fetched, call `/processor/transactions/recurring/get` to receive the Recurring Transactions streams and subscribe to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook. To know when historical transactions have been fetched, if you are using `/processor/transactions/sync` listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#SyncUpdatesAvailableWebhook-historical-update-complete) webhook and check that the `historical_update_complete` field in the payload is `true`. If using `/processor/transactions/get`, listen for the [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhook.  After the initial call, you can call `/processor/transactions/recurring/get` endpoint at any point in the future to retrieve the latest summary of recurring streams. Listen to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook to be notified when new updates are available.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Fetch recurring transaction streams
     * @param {ProcessorTransactionsRecurringGetRequest} processorTransactionsRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsRecurringGet(processorTransactionsRecurringGetRequest: ProcessorTransactionsRecurringGetRequest, options?: any): AxiosPromise<ProcessorTransactionsRecurringGetResponse>;
    /**
     * `/processor/transactions/refresh` is an optional endpoint for users of the Transactions product. It initiates an on-demand extraction to fetch the newest transactions for a processor token. This on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Transactions-enabled processor token. If changes to transactions are discovered after calling `/processor/transactions/refresh`, Plaid will fire a webhook: for `/transactions/sync` users, [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) will be fired if there are any transactions updated, added, or removed. For users of both `/processor/transactions/sync` and `/processor/transactions/get`, [`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/products/transactions/#transactions_removed) will be fired if any removed transactions are detected, and [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/transactions/#default_update) will be fired if any new transactions are detected. New transactions can be fetched by calling `/processor/transactions/get` or `/processor/transactions/sync`. Note that the `/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) non-depository accounts and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item that contains only non-depository accounts from that institution.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/processor/transactions/refresh` is offered as an add-on to Transactions and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh transaction data
     * @param {ProcessorTransactionsRefreshRequest} processorTransactionsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsRefresh(processorTransactionsRefreshRequest: ProcessorTransactionsRefreshRequest, options?: any): AxiosPromise<ProcessorTransactionsRefreshResponse>;
    /**
     *  The `/processor/transactions/sync` endpoint retrieves transactions associated with an Item and can fetch updates using a cursor to track which updates have already been seen.  For important instructions on integrating with `/processor/transactions/sync`, see the [Transactions integration overview](https://plaid.com/docs/transactions/#integration-overview). If you are migrating from an existing integration using `/processor/transactions/get`, see the [Transactions Sync migration guide](https://plaid.com/docs/transactions/sync-migration/).  This endpoint supports `credit`, `depository`, and some `loan`-type accounts (only those with account subtype `student`). For `investments` accounts, use `/investments/transactions/get` instead.  When retrieving paginated updates, track both the `next_cursor` from the latest response and the original cursor from the first call in which `has_more` was `true`; if a call to `/processor/transactions/sync` fails when retrieving a paginated update (e.g due to the [`TRANSACTIONS_SYNC_MUTATION_DURING_PAGINATION`](https://plaid.com/docs/errors/transactions/#transactions_sync_mutation_during_pagination) error), the entire pagination request loop must be restarted beginning with the cursor for the first page of the update, rather than retrying only the single request that failed.  If transactions data is not yet available for the Item, which can happen if the Item was not initialized with transactions during the `/link/token/create` call or if `/processor/transactions/sync` was called within a few seconds of Item creation, `/processor/transactions/sync` will return empty transactions arrays.   Plaid typically checks for new transactions data between one and four times per day, depending on the institution. To find out when transactions were last updated for an Item, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, use the `/processor/transactions/refresh` endpoint.  To be alerted when new transactions are available, listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) webhook.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get incremental transaction updates on a processor token
     * @param {ProcessorTransactionsSyncRequest} processorTransactionsSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    processorTransactionsSync(processorTransactionsSyncRequest: ProcessorTransactionsSyncRequest, options?: any): AxiosPromise<ProcessorTransactionsSyncResponse>;
    /**
     * The `/profile/network_status/get` endpoint can be used to check whether Plaid has a matching profile for the user.
     * @summary Check a user\'s Plaid Network status
     * @param {ProfileNetworkStatusGetRequest} profileNetworkStatusGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    profileNetworkStatusGet(profileNetworkStatusGetRequest: ProfileNetworkStatusGetRequest, options?: any): AxiosPromise<ProfileNetworkStatusGetResponse>;
    /**
     * Use the `/sandbox/bank_income/fire_webhook` endpoint to manually trigger a Bank Income webhook in the Sandbox environment.
     * @summary Manually fire a bank income webhook in sandbox
     * @param {SandboxBankIncomeFireWebhookRequest} sandboxBankIncomeFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxBankIncomeFireWebhook(sandboxBankIncomeFireWebhookRequest: SandboxBankIncomeFireWebhookRequest, options?: any): AxiosPromise<SandboxBankIncomeFireWebhookResponse>;
    /**
     * Use the `/sandbox/bank_transfer/fire_webhook` endpoint to manually trigger a Bank Transfers webhook in the Sandbox environment.
     * @summary Manually fire a Bank Transfer webhook
     * @param {SandboxBankTransferFireWebhookRequest} sandboxBankTransferFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxBankTransferFireWebhook(sandboxBankTransferFireWebhookRequest: SandboxBankTransferFireWebhookRequest, options?: any): AxiosPromise<SandboxBankTransferFireWebhookResponse>;
    /**
     * Use the `/sandbox/bank_transfer/simulate` endpoint to simulate a bank transfer event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/bank_transfer/event/sync` or `/bank_transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a bank transfer event in Sandbox
     * @param {SandboxBankTransferSimulateRequest} sandboxBankTransferSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxBankTransferSimulate(sandboxBankTransferSimulateRequest: SandboxBankTransferSimulateRequest, options?: any): AxiosPromise<SandboxBankTransferSimulateResponse>;
    /**
     * Use the `/sandbox/cra/cashflow_updates/update` endpoint to manually trigger an update for cashflow updates (Monitoring) in the Sandbox environment.
     * @summary Trigger an update for Cashflow Updates
     * @param {SandboxCraCashflowUpdatesUpdateRequest} sandboxCraCashflowUpdatesUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxCraCashflowUpdatesUpdate(sandboxCraCashflowUpdatesUpdateRequest: SandboxCraCashflowUpdatesUpdateRequest, options?: any): AxiosPromise<SandboxCraCashflowUpdatesUpdateResponse>;
    /**
     * Use the `/sandbox/income/fire_webhook` endpoint to manually trigger a Payroll or Document Income webhook in the Sandbox environment.
     * @summary Manually fire an Income webhook
     * @param {SandboxIncomeFireWebhookRequest} sandboxIncomeFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxIncomeFireWebhook(sandboxIncomeFireWebhookRequest: SandboxIncomeFireWebhookRequest, options?: any): AxiosPromise<SandboxIncomeFireWebhookResponse>;
    /**
     * The `/sandbox/item/fire_webhook` endpoint is used to test that code correctly handles webhooks. This endpoint can trigger the following webhooks:  `DEFAULT_UPDATE`: Webhook to be fired for a given Sandbox Item simulating a default update event for the respective product as specified with the `webhook_type` in the request body. Valid Sandbox `DEFAULT_UPDATE` webhook types include: `AUTH`, `IDENTITY`, `TRANSACTIONS`, `INVESTMENTS_TRANSACTIONS`, `LIABILITIES`, `HOLDINGS`. If the Item does not support the product, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `NEW_ACCOUNTS_AVAILABLE`: Fired to indicate that a new account is available on the Item and you can launch update mode to request access to it.  `SMS_MICRODEPOSITS_VERIFICATION`: Fired when a given same day micro-deposit item is verified via SMS verification.  `LOGIN_REPAIRED`: Fired when an Item recovers from the `ITEM_LOGIN_REQUIRED` without the user going through update mode in your app.  `PENDING_DISCONNECT`: Fired when an Item will stop working in the near future (e.g. due to a planned bank migration) and must be sent through update mode to continue working.   `RECURRING_TRANSACTIONS_UPDATE`: Recurring Transactions webhook to be fired for a given Sandbox Item. If the Item does not support Recurring Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `SYNC_UPDATES_AVAILABLE`: Transactions webhook to be fired for a given Sandbox Item.  If the Item does not support Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `PRODUCT_READY`: Assets webhook to be fired when a given asset report has been successfully generated. If the Item does not support Assets, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `ERROR`: Assets webhook to be fired when asset report generation has failed. If the Item does not support Assets, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `USER_PERMISSION_REVOKED`: Indicates an end user has revoked the permission that they previously granted to access an Item. May not always fire upon revocation, as some institutions’ consent portals do not trigger this webhook. Upon receiving this webhook, it is recommended to delete any stored data from Plaid associated with the account or Item.  `USER_ACCOUNT_REVOKED`: Fired when an end user has revoked access to their account on the Data Provider\'s portal. This webhook is currently sent only for Chase and PNC Items, but may be sent in the future for other financial institutions. Upon receiving this webhook, it is recommended to delete any stored data from Plaid associated with the account or Item.  Note that this endpoint is provided for developer ease-of-use and is not required for testing webhooks; webhooks will also fire in Sandbox under the same conditions that they would in Production (except for webhooks of type `TRANSFER`).
     * @summary Fire a test webhook
     * @param {SandboxItemFireWebhookRequest} sandboxItemFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxItemFireWebhook(sandboxItemFireWebhookRequest: SandboxItemFireWebhookRequest, options?: any): AxiosPromise<SandboxItemFireWebhookResponse>;
    /**
     * `/sandbox/item/reset_login/` forces an Item into an `ITEM_LOGIN_REQUIRED` state in order to simulate an Item whose login is no longer valid. This makes it easy to test Link\'s [update mode](https://plaid.com/docs/link/update-mode) flow in the Sandbox environment.  After calling `/sandbox/item/reset_login`, You can then use Plaid Link update mode to restore the Item to a good state. An `ITEM_LOGIN_REQUIRED` webhook will also be fired after a call to this endpoint, if one is associated with the Item.   In the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error state automatically after 30 days, even if this endpoint is not called.
     * @summary Force a Sandbox Item into an error state
     * @param {SandboxItemResetLoginRequest} sandboxItemResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxItemResetLogin(sandboxItemResetLoginRequest: SandboxItemResetLoginRequest, options?: any): AxiosPromise<SandboxItemResetLoginResponse>;
    /**
     * The `/sandbox/item/set_verification_status` endpoint can be used to change the verification status of an Item in in the Sandbox in order to simulate the Automated Micro-deposit flow.  For more information on testing Automated Micro-deposits in Sandbox, see [Auth full coverage testing](https://plaid.com/docs/auth/coverage/testing#).
     * @summary Set verification status for Sandbox account
     * @param {SandboxItemSetVerificationStatusRequest} sandboxItemSetVerificationStatusRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxItemSetVerificationStatus(sandboxItemSetVerificationStatusRequest: SandboxItemSetVerificationStatusRequest, options?: any): AxiosPromise<SandboxItemSetVerificationStatusResponse>;
    /**
     * Save the selected accounts when connecting to the Platypus Oauth institution
     * @summary Save the selected accounts when connecting to the Platypus Oauth institution
     * @param {SandboxOauthSelectAccountsRequest} sandboxOauthSelectAccountsRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxOauthSelectAccounts(sandboxOauthSelectAccountsRequest: SandboxOauthSelectAccountsRequest, options?: any): AxiosPromise<{
        [key: string]: object;
    }>;
    /**
     * `/sandbox/payment_profile/reset_login/` forces a Payment Profile into a state where the login is no longer valid. This makes it easy to test update mode for Payment Profile in the Sandbox environment.   After calling `/sandbox/payment_profile/reset_login`, calls to the `/transfer/authorization/create` with the Payment Profile will result in a `decision_rationale` `PAYMENT_PROFILE_LOGIN_REQUIRED`. You can then use update mode for Payment Profile to restore it into a good state.   In order to invoke this endpoint, you must first [create a Payment Profile](https://plaid.com/docs/transfer/add-to-app/#create-a-payment-profile-optional) and [go through the Link flow](https://plaid.com/docs/transfer/add-to-app/#create-a-link-token).
     * @summary Reset the login of a Payment Profile
     * @param {SandboxPaymentProfileResetLoginRequest} sandboxPaymentProfileResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxPaymentProfileResetLogin(sandboxPaymentProfileResetLoginRequest: SandboxPaymentProfileResetLoginRequest, options?: any): AxiosPromise<SandboxPaymentProfileResetLoginResponse>;
    /**
     * Use the `/sandbox/payment/simulate` endpoint to simulate various payment events in the Sandbox environment. This endpoint will trigger the corresponding payment status webhook.
     * @summary Simulate a payment event in Sandbox
     * @param {SandboxPaymentSimulateRequest} sandboxPaymentSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxPaymentSimulate(sandboxPaymentSimulateRequest: SandboxPaymentSimulateRequest, options?: any): AxiosPromise<SandboxPaymentSimulateResponse>;
    /**
     * Use the `/sandbox/processor_token/create` endpoint to create a valid `processor_token` for an arbitrary institution ID and test credentials. The created `processor_token` corresponds to a new Sandbox Item. You can then use this `processor_token` with the `/processor/` API endpoints in Sandbox. You can also use `/sandbox/processor_token/create` with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data.
     * @summary Create a test Item and processor token
     * @param {SandboxProcessorTokenCreateRequest} sandboxProcessorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxProcessorTokenCreate(sandboxProcessorTokenCreateRequest: SandboxProcessorTokenCreateRequest, options?: any): AxiosPromise<SandboxProcessorTokenCreateResponse>;
    /**
     * Use the `/sandbox/public_token/create` endpoint to create a valid `public_token`  for an arbitrary institution ID, initial products, and test credentials. The created `public_token` maps to a new Sandbox Item. You can then call `/item/public_token/exchange` to exchange the `public_token` for an `access_token` and perform all API actions. `/sandbox/public_token/create` can also be used with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data, or with Plaid\'s [pre-populated Sandbox test accounts](https://plaid.com/docs/sandbox/test-credentials/).
     * @summary Create a test Item
     * @param {SandboxPublicTokenCreateRequest} sandboxPublicTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxPublicTokenCreate(sandboxPublicTokenCreateRequest: SandboxPublicTokenCreateRequest, options?: any): AxiosPromise<SandboxPublicTokenCreateResponse>;
    /**
     * Use the `/sandbox/transfer/fire_webhook` endpoint to manually trigger a `TRANSFER_EVENTS_UPDATE` webhook in the Sandbox environment.
     * @summary Manually fire a Transfer webhook
     * @param {SandboxTransferFireWebhookRequest} sandboxTransferFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferFireWebhook(sandboxTransferFireWebhookRequest: SandboxTransferFireWebhookRequest, options?: any): AxiosPromise<SandboxTransferFireWebhookResponse>;
    /**
     * Use the `/sandbox/transfer/ledger/deposit/simulate` endpoint to simulate a ledger deposit event in the Sandbox environment.
     * @summary Simulate a ledger deposit event in Sandbox
     * @param {SandboxTransferLedgerDepositSimulateRequest} sandboxTransferLedgerDepositSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferLedgerDepositSimulate(sandboxTransferLedgerDepositSimulateRequest: SandboxTransferLedgerDepositSimulateRequest, options?: any): AxiosPromise<SandboxTransferLedgerDepositSimulateResponse>;
    /**
     * Use the `/sandbox/transfer/ledger/simulate_available` endpoint to simulate converting pending balance to available balance for all originators in the Sandbox environment.
     * @summary Simulate converting pending balance to available balance
     * @param {SandboxTransferLedgerSimulateAvailableRequest} sandboxTransferLedgerSimulateAvailableRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferLedgerSimulateAvailable(sandboxTransferLedgerSimulateAvailableRequest: SandboxTransferLedgerSimulateAvailableRequest, options?: any): AxiosPromise<SandboxTransferLedgerSimulateAvailableResponse>;
    /**
     * Use the `/sandbox/transfer/ledger/withdraw/simulate` endpoint to simulate a ledger withdraw event in the Sandbox environment.
     * @summary Simulate a ledger withdraw event in Sandbox
     * @param {SandboxTransferLedgerWithdrawSimulateRequest} sandboxTransferLedgerWithdrawSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferLedgerWithdrawSimulate(sandboxTransferLedgerWithdrawSimulateRequest: SandboxTransferLedgerWithdrawSimulateRequest, options?: any): AxiosPromise<SandboxTransferLedgerWithdrawSimulateResponse>;
    /**
     * Use the `/sandbox/transfer/refund/simulate` endpoint to simulate a refund event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/transfer/event/sync` or `/transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a refund event in Sandbox
     * @param {SandboxTransferRefundSimulateRequest} sandboxTransferRefundSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferRefundSimulate(sandboxTransferRefundSimulateRequest: SandboxTransferRefundSimulateRequest, options?: any): AxiosPromise<SandboxTransferRefundSimulateResponse>;
    /**
     * Use the `/sandbox/transfer/repayment/simulate` endpoint to trigger the creation of a repayment. As a side effect of calling this route, a repayment is created that includes all unreimbursed returns of guaranteed transfers. If there are no such returns, an 400 error is returned.
     * @summary Trigger the creation of a repayment
     * @param {SandboxTransferRepaymentSimulateRequest} sandboxTransferRepaymentSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferRepaymentSimulate(sandboxTransferRepaymentSimulateRequest: SandboxTransferRepaymentSimulateRequest, options?: any): AxiosPromise<SandboxTransferRepaymentSimulateResponse>;
    /**
     * Use the `/sandbox/transfer/simulate` endpoint to simulate a transfer event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/transfer/event/sync` or `/transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a transfer event in Sandbox
     * @param {SandboxTransferSimulateRequest} sandboxTransferSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferSimulate(sandboxTransferSimulateRequest: SandboxTransferSimulateRequest, options?: any): AxiosPromise<SandboxTransferSimulateResponse>;
    /**
     * Use the `/sandbox/transfer/sweep/simulate` endpoint to create a sweep and associated events in the Sandbox environment. Upon calling this endpoint, all transfers with a sweep status of `swept` will become `swept_settled`, all `posted` or `pending` transfers with a sweep status of `unswept` will become `swept`, and all `returned` transfers with a sweep status of `swept` will become `return_swept`.
     * @summary Simulate creating a sweep
     * @param {SandboxTransferSweepSimulateRequest} sandboxTransferSweepSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferSweepSimulate(sandboxTransferSweepSimulateRequest: SandboxTransferSweepSimulateRequest, options?: any): AxiosPromise<SandboxTransferSweepSimulateResponse>;
    /**
     * Use the `/sandbox/transfer/test_clock/advance` endpoint to advance a `test_clock` in the Sandbox environment.  A test clock object represents an independent timeline and has a `virtual_time` field indicating the current timestamp of the timeline. A test clock can be advanced by incrementing `virtual_time`, but may never go back to a lower `virtual_time`.  If a test clock is advanced, we will simulate the changes that ought to occur during the time that elapsed.  For example, a client creates a weekly recurring transfer with a test clock set at t. When the client advances the test clock by setting `virtual_time` = t + 15 days, 2 new originations should be created, along with the webhook events.  The advancement of the test clock from its current `virtual_time` should be limited such that there are no more than 20 originations resulting from the advance operation on each `recurring_transfer` associated with the `test_clock`.  For example, if the recurring transfer associated with this test clock originates once every 4 weeks, you can advance the `virtual_time` up to 80 weeks on each API call.
     * @summary Advance a test clock
     * @param {SandboxTransferTestClockAdvanceRequest} sandboxTransferTestClockAdvanceRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockAdvance(sandboxTransferTestClockAdvanceRequest: SandboxTransferTestClockAdvanceRequest, options?: any): AxiosPromise<SandboxTransferTestClockAdvanceResponse>;
    /**
     * Use the `/sandbox/transfer/test_clock/create` endpoint to create a `test_clock` in the Sandbox environment.  A test clock object represents an independent timeline and has a `virtual_time` field indicating the current timestamp of the timeline. Test clocks are used for testing recurring transfers in Sandbox.  A test clock can be associated with up to 5 recurring transfers.
     * @summary Create a test clock
     * @param {SandboxTransferTestClockCreateRequest} sandboxTransferTestClockCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockCreate(sandboxTransferTestClockCreateRequest: SandboxTransferTestClockCreateRequest, options?: any): AxiosPromise<SandboxTransferTestClockCreateResponse>;
    /**
     * Use the `/sandbox/transfer/test_clock/get` endpoint to get a `test_clock` in the Sandbox environment.
     * @summary Get a test clock
     * @param {SandboxTransferTestClockGetRequest} sandboxTransferTestClockGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockGet(sandboxTransferTestClockGetRequest: SandboxTransferTestClockGetRequest, options?: any): AxiosPromise<SandboxTransferTestClockGetResponse>;
    /**
     * Use the `/sandbox/transfer/test_clock/list` endpoint to see a list of all your test clocks in the Sandbox environment, by ascending `virtual_time`. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired test clocks.
     * @summary List test clocks
     * @param {SandboxTransferTestClockListRequest} sandboxTransferTestClockListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxTransferTestClockList(sandboxTransferTestClockListRequest: SandboxTransferTestClockListRequest, options?: any): AxiosPromise<SandboxTransferTestClockListResponse>;
    /**
     * `/sandbox/user/reset_login/` functions the same as `/sandbox/item/reset_login`, but will modify Items related to a User. This endpoint forces each Item into an `ITEM_LOGIN_REQUIRED` state in order to simulate an Item whose login is no longer valid. This makes it easy to test Link\'s [update mode](https://plaid.com/docs/link/update-mode) flow in the Sandbox environment.  After calling `/sandbox/user/reset_login`, You can then use Plaid Link update mode to restore Items associated with the User to a good state. An `ITEM_LOGIN_REQUIRED` webhook will also be fired after a call to this endpoint, if one is associated with the Item.   In the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error state automatically after 30 days, even if this endpoint is not called.
     * @summary Force item(s) for a Sandbox User into an error state
     * @param {SandboxUserResetLoginRequest} sandboxUserResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sandboxUserResetLogin(sandboxUserResetLoginRequest: SandboxUserResetLoginRequest, options?: any): AxiosPromise<SandboxUserResetLoginResponse>;
    /**
     * After calling `/signal/evaluate`, call `/signal/decision/report` to report whether the transaction was initiated.
     * @summary Report whether you initiated an ACH transaction
     * @param {SignalDecisionReportRequest} signalDecisionReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalDecisionReport(signalDecisionReportRequest: SignalDecisionReportRequest, options?: any): AxiosPromise<SignalDecisionReportResponse>;
    /**
     * Use `/signal/evaluate` to evaluate a planned ACH transaction to get a return risk assessment (such as a risk score and risk tier) and additional risk signals.  In order to obtain a valid score for an ACH transaction, Plaid must have an access token for the account, and the Item must be healthy (receiving product updates) or have recently been in a healthy state. If the transaction does not meet eligibility requirements, an error will be returned corresponding to the underlying cause. If `/signal/evaluate` is called on the same transaction multiple times within a 24-hour period, cached results may be returned. For more information please refer to the error documentation on [Item errors](/docs/errors/item/) and [Link in Update Mode](/docs/link/update-mode/).  Note: This request may take some time to complete if Signal is being added to an existing Item. This is because Plaid must communicate directly with the institution when retrieving the data for the first time.
     * @summary Evaluate a planned ACH transaction
     * @param {SignalEvaluateRequest} signalEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalEvaluate(signalEvaluateRequest: SignalEvaluateRequest, options?: any): AxiosPromise<SignalEvaluateResponse>;
    /**
     * When an Item is not initialized with Signal, call `/signal/prepare` to opt-in that Item to the Signal data collection process, developing a Signal score. This should be done on Items where Signal was added in the `additional_consented_products` array but not in the `products`, `optional_products`, or `required_if_supported_products` array. If `/signal/prepare` is skipped on an Item that is not initialized with Signal, the initial call to `/signal/evaluate` on that Item will be less accurate, because Signal will have access to less data for computing the Signal score.  If run on an Item that is already initialized with Signal, this endpoint will return a 200 response and will not modify the Item.
     * @summary Opt-in an Item to Signal
     * @param {SignalPrepareRequest} signalPrepareRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalPrepare(signalPrepareRequest: SignalPrepareRequest, options?: any): AxiosPromise<SignalPrepareResponse>;
    /**
     * Call the `/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/signal/evaluate` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio.
     * @summary Report a return for an ACH transaction
     * @param {SignalReturnReportRequest} signalReturnReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalReturnReport(signalReturnReportRequest: SignalReturnReportRequest, options?: any): AxiosPromise<SignalReturnReportResponse>;
    /**
     * Use `/signal/schedule` to schedule a planned ACH transaction.
     * @summary Schedule a planned ACH transaction
     * @param {SignalScheduleRequest} signalScheduleRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    signalSchedule(signalScheduleRequest: SignalScheduleRequest, options?: any): AxiosPromise<SignalScheduleResponse>;
    /**
     * The `/statements/download` endpoint retrieves a single statement PDF in binary format.  The response will contain a `Plaid-Content-Hash` header containing a SHA 256 checksum of the statement. This can be used to verify that the file being sent by Plaid is the same file that was downloaded to your system.
     * @summary Retrieve a single statement.
     * @param {StatementsDownloadRequest} statementsDownloadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    statementsDownload(statementsDownloadRequest: StatementsDownloadRequest, options?: any): AxiosPromise<any>;
    /**
     * The `/statements/list` endpoint retrieves a list of all statements associated with an item.
     * @summary Retrieve a list of all statements associated with an item.
     * @param {StatementsListRequest} statementsListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    statementsList(statementsListRequest: StatementsListRequest, options?: any): AxiosPromise<StatementsListResponse>;
    /**
     * `/statements/refresh` initiates an on-demand extraction to fetch the statements for the provided dates.
     * @summary Refresh statements data.
     * @param {StatementsRefreshRequest} statementsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    statementsRefresh(statementsRefreshRequest: StatementsRefreshRequest, options?: any): AxiosPromise<StatementsRefreshResponse>;
    /**
     * The `/beta/transactions/v1/enhance` endpoint enriches raw transaction data provided directly by clients.  The product is currently in beta.
     * @summary enhance locally-held transaction data
     * @param {TransactionsEnhanceGetRequest} transactionsEnhanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsEnhance(transactionsEnhanceGetRequest: TransactionsEnhanceGetRequest, options?: any): AxiosPromise<TransactionsEnhanceGetResponse>;
    /**
     * The `/transactions/enrich` endpoint enriches raw transaction data generated by your own banking products or retrieved from other non-Plaid sources.
     * @summary Enrich locally-held transaction data
     * @param {TransactionsEnrichRequest} transactionsEnrichRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsEnrich(transactionsEnrichRequest: TransactionsEnrichRequest, options?: any): AxiosPromise<TransactionsEnrichResponse>;
    /**
     * Note: All new implementations are encouraged to use `/transactions/sync` rather than `/transactions/get`. `/transactions/sync` provides the same functionality as `/transactions/get` and improves developer ease-of-use for handling transactions updates.  The `/transactions/get` endpoint allows developers to receive user-authorized transaction data for credit, depository, and some loan-type accounts (only those with account subtype `student`; coverage may be limited). For transaction history from investments accounts, use the [Investments endpoint](https://plaid.com/docs/api/products/investments/) instead. Transaction data is standardized across financial institutions, and in many cases transactions are linked to a clean name, entity type, location, and category. Similarly, account data is standardized and returned with a clean name, number, balance, and other meta information where available.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Transactions are not immutable and can also be removed altogether by the institution; a removed transaction will no longer appear in `/transactions/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).  Due to the potentially large number of transactions associated with an Item, results are paginated. Manipulate the `count` and `offset` parameters in conjunction with the `total_transactions` response body field to fetch all available transactions.  Data returned by `/transactions/get` will be the data available for the Item as of the most recent successful check for new transactions. Plaid typically checks for new data multiple times a day, but these checks may occur less frequently, such as once a day, depending on the institution. To find out when the Item was last updated, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, you can use the `/transactions/refresh` endpoint.  Note that data may not be immediately available to `/transactions/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `transactions`, or upon the first call to `/transactions/get`, if it wasn\'t. To be alerted when transaction data is ready to be fetched, listen for the [`INITIAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#initial_update) and [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhooks. If no transaction history is ready when `/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.
     * @summary Get transaction data
     * @param {TransactionsGetRequest} transactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsGet(transactionsGetRequest: TransactionsGetRequest, options?: any): AxiosPromise<TransactionsGetResponse>;
    /**
     * The `/transactions/recurring/get` endpoint allows developers to receive a summary of the recurring outflow and inflow streams (expenses and deposits) from a user’s checking, savings or credit card accounts. Additionally, Plaid provides key insights about each recurring stream including the category, merchant, last amount, and more. Developers can use these insights to build tools and experiences that help their users better manage cash flow, monitor subscriptions, reduce spend, and stay on track with bill payments.  This endpoint is offered as an add-on to Transactions. To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.  This endpoint can only be called on an Item that has already been initialized with Transactions (either during Link, by specifying it in `/link/token/create`; or after Link, by calling `/transactions/get` or `/transactions/sync`).   When using Recurring Transactions, for best results, make sure to use the [`days_requested`](https://plaid.com/docs/api/link/#link-token-create-request-transactions-days-requested) parameter to request at least 180 days of history when initializing Items with Transactions. Once all historical transactions have been fetched, call `/transactions/recurring/get` to receive the Recurring Transactions streams and subscribe to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook. To know when historical transactions have been fetched, if you are using `/transactions/sync` listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#SyncUpdatesAvailableWebhook-historical-update-complete) webhook and check that the `historical_update_complete` field in the payload is `true`. If using `/transactions/get`, listen for the [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhook.  After the initial call, you can call `/transactions/recurring/get` endpoint at any point in the future to retrieve the latest summary of recurring streams. Listen to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook to be notified when new updates are available.
     * @summary Fetch recurring transaction streams
     * @param {TransactionsRecurringGetRequest} transactionsRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRecurringGet(transactionsRecurringGetRequest: TransactionsRecurringGetRequest, options?: any): AxiosPromise<TransactionsRecurringGetResponse>;
    /**
     * `/transactions/refresh` is an optional endpoint that initiates an on-demand extraction to fetch the newest transactions for an Item. The on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Transactions-enabled Item. The Item must already have Transactions added as a product in order to call `/transactions/refresh`.  If changes to transactions are discovered after calling `/transactions/refresh`, Plaid will fire a webhook: for `/transactions/sync` users, [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) will be fired if there are any transactions updated, added, or removed. For users of both `/transactions/sync` and `/transactions/get`, [`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/products/transactions/#transactions_removed) will be fired if any removed transactions are detected, and [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/transactions/#default_update) will be fired if any new transactions are detected. New transactions can be fetched by calling `/transactions/get` or `/transactions/sync`.  Note that the `/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) non-depository accounts and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item that contains only non-depository accounts from that institution.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/transactions/refresh` is offered as an optional add-on to Transactions and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh transaction data
     * @param {TransactionsRefreshRequest} transactionsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRefresh(transactionsRefreshRequest: TransactionsRefreshRequest, options?: any): AxiosPromise<TransactionsRefreshResponse>;
    /**
     * The `/transactions/rules/v1/create` endpoint creates transaction categorization rules.  Rules will be applied on the Item\'s transactions returned in `/transactions/get` response.  The product is currently in beta. To request access, contact transactions-feedback@plaid.com.
     * @summary Create transaction category rule
     * @param {TransactionsRulesCreateRequest} transactionsRulesCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRulesCreate(transactionsRulesCreateRequest: TransactionsRulesCreateRequest, options?: any): AxiosPromise<TransactionsRulesCreateResponse>;
    /**
     * The `/transactions/rules/v1/list` returns a list of transaction rules created for the Item associated with the access token.
     * @summary Return a list of rules created for the Item associated with the access token.
     * @param {TransactionsRulesListRequest} transactionsRulesListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRulesList(transactionsRulesListRequest: TransactionsRulesListRequest, options?: any): AxiosPromise<TransactionsRulesListResponse>;
    /**
     * The `/transactions/rules/v1/remove` endpoint is used to remove a transaction rule.
     * @summary Remove transaction rule
     * @param {TransactionsRulesRemoveRequest} transactionsRulesRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsRulesRemove(transactionsRulesRemoveRequest: TransactionsRulesRemoveRequest, options?: any): AxiosPromise<TransactionsRulesRemoveResponse>;
    /**
     * The `/transactions/sync` endpoint retrieves transactions associated with an Item and can fetch updates using a cursor to track which updates have already been seen.  For important instructions on integrating with `/transactions/sync`, see the [Transactions integration overview](https://plaid.com/docs/transactions/#integration-overview). If you are migrating from an existing integration using `/transactions/get`, see the [Transactions Sync migration guide](https://plaid.com/docs/transactions/sync-migration/).  This endpoint supports `credit`, `depository`, and some `loan`-type accounts (only those with account subtype `student`). For `investments` accounts, use `/investments/transactions/get` instead.   When retrieving paginated updates, track both the `next_cursor` from the latest response and the original cursor from the first call in which `has_more` was `true`; if a call to `/transactions/sync` fails when retrieving a paginated update (e.g due to the [`TRANSACTIONS_SYNC_MUTATION_DURING_PAGINATION`](https://plaid.com/docs/errors/transactions/#transactions_sync_mutation_during_pagination) error), the entire pagination request loop must be restarted beginning with the cursor for the first page of the update, rather than retrying only the single request that failed.  If transactions data is not yet available for the Item, which can happen if the Item was not initialized with transactions during the `/link/token/create` call or if `/transactions/sync` was called within a few seconds of Item creation, `/transactions/sync` will return empty transactions arrays.   Plaid typically checks for new transactions data between one and four times per day, depending on the institution. To find out when transactions were last updated for an Item, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, use the `/transactions/refresh` endpoint.  To be alerted when new transactions are available, listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) webhook.
     * @summary Get incremental transaction updates on an Item
     * @param {TransactionsSyncRequest} transactionsSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsSync(transactionsSyncRequest: TransactionsSyncRequest, options?: any): AxiosPromise<TransactionsSyncResponse>;
    /**
     * The `/beta/transactions/user_insights/v1/get` gets user insights for clients who have enriched data with `/transactions/enrich`.  The product is currently in beta.
     * @summary Obtain user insights based on transactions sent through /transactions/enrich
     * @param {TransactionsUserInsightsGetRequest} transactionsUserInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transactionsUserInsightsGet(transactionsUserInsightsGetRequest: TransactionsUserInsightsGetRequest, options?: any): AxiosPromise<TransactionsUserInsightsGetResponse>;
    /**
     * Use the `/transfer/authorization/cancel` endpoint to cancel a transfer authorization. A transfer authorization is eligible for cancellation if it has not yet been used to create a transfer.
     * @summary Cancel a transfer authorization
     * @param {TransferAuthorizationCancelRequest} transferAuthorizationCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferAuthorizationCancel(transferAuthorizationCancelRequest: TransferAuthorizationCancelRequest, options?: any): AxiosPromise<TransferAuthorizationCancelResponse>;
    /**
     * Use the `/transfer/authorization/create` endpoint to authorize a transfer. This endpoint must be called prior to calling `/transfer/create`. The transfer authorization will expire if not used after one hour. (You can contact your account manager to change the default authorization lifetime.)   There are four possible outcomes to calling this endpoint:     - If the `authorization.decision` in the response is `declined`, the proposed transfer has failed the risk check and you cannot proceed with the transfer.     - If the `authorization.decision` is `user_action_required`, additional user input is needed, usually to fix a broken bank connection, before Plaid can properly assess the risk. You need to launch Link in update mode to complete the required user action. When calling `/link/token/create` to get a new Link token, instead of providing `access_token` in the request, you should set [`transfer.authorization_id`](https://plaid.com/docs/api/link/#link-token-create-request-transfer-authorization-id) as the `authorization.id`. After the Link flow is completed, you may re-attempt the authorization.    - If the `authorization.decision` is `approved`, and the `authorization.rationale_code` is `null`, the transfer has passed the risk check and you can proceed to call `/transfer/create`.      - If the `authorization.decision` is `approved` and the `authorization.rationale_code` is non-`null`, the risk check could not be run: you may proceed with the transfer, but should perform your own risk evaluation. For more details, see the response schema.  In Plaid\'s Sandbox environment the decisions will be returned as follows:    - To approve a transfer with `null` rationale code, make an authorization request with an `amount` less than the available balance in the account.    - To approve a transfer with the rationale code `MANUALLY_VERIFIED_ITEM`, create an Item in Link through the [Same Day Micro-deposits flow](https://plaid.com/docs/auth/coverage/testing/#testing-same-day-micro-deposits).    - To get an authorization decision of `user_action_required`, [reset the login for an Item](https://plaid.com/docs/sandbox/#item_login_required).    - To decline a transfer with the rationale code `NSF`, the available balance on the account must be less than the authorization `amount`. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.    - To decline a transfer with the rationale code `RISK`, the available balance on the account must be exactly $0. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.
     * @summary Create a transfer authorization
     * @param {TransferAuthorizationCreateRequest} transferAuthorizationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferAuthorizationCreate(transferAuthorizationCreateRequest: TransferAuthorizationCreateRequest, options?: any): AxiosPromise<TransferAuthorizationCreateResponse>;
    /**
     * (Deprecated) Use the `/transfer/balance/get` endpoint to view a balance held with Plaid.
     * @summary (Deprecated) Retrieve a balance held with Plaid
     * @param {TransferBalanceGetRequest} transferBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferBalanceGet(transferBalanceGetRequest: TransferBalanceGetRequest, options?: any): AxiosPromise<TransferBalanceGetResponse>;
    /**
     * Use the `/transfer/cancel` endpoint to cancel a transfer.  A transfer is eligible for cancellation if the `cancellable` property returned by `/transfer/get` is `true`.
     * @summary Cancel a transfer
     * @param {TransferCancelRequest} transferCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferCancel(transferCancelRequest: TransferCancelRequest, options?: any): AxiosPromise<TransferCancelResponse>;
    /**
     * Use the `/transfer/capabilities/get` endpoint to determine the RTP eligibility information of an account to be used with Transfer. This endpoint works on all Transfer-capable Items, including those created by `/transfer/migrate_account`. To simulate RTP eligibility in Sandbox, log in using the username `user_good` and password `pass_good` and use the first two checking and savings accounts in the \"First Platypus Bank\" institution (ending in 0000 or 1111), which will return `true`. Any other account will return `false`.
     * @summary Get RTP eligibility information of a transfer
     * @param {TransferCapabilitiesGetRequest} transferCapabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferCapabilitiesGet(transferCapabilitiesGetRequest: TransferCapabilitiesGetRequest, options?: any): AxiosPromise<TransferCapabilitiesGetResponse>;
    /**
     * Use the `/transfer/configuration/get` endpoint to view your transfer product configurations.
     * @summary Get transfer product configuration
     * @param {TransferConfigurationGetRequest} transferConfigurationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferConfigurationGet(transferConfigurationGetRequest: TransferConfigurationGetRequest, options?: any): AxiosPromise<TransferConfigurationGetResponse>;
    /**
     * Use the `/transfer/create` endpoint to initiate a new transfer. This endpoint is retryable and idempotent; if a transfer with the provided `transfer_id` has already been created, it will return the transfer details without creating a new transfer. A transfer may still be created if a 500 error is returned; to detect this scenario, use [Transfer events](https://plaid.com/docs/transfer/reconciling-transfers/).
     * @summary Create a transfer
     * @param {TransferCreateRequest} transferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferCreate(transferCreateRequest: TransferCreateRequest, options?: any): AxiosPromise<TransferCreateResponse>;
    /**
     * Third-party sender customers can use `/transfer/diligence/document/upload` endpoint to upload a document on behalf of its end customer (i.e. originator) to Plaid. You’ll need to send a request of type multipart/form-data. You must provide the `client_id` in the `PLAID-CLIENT-ID` header and `secret` in the `PLAID-SECRET` header.
     * @summary Upload transfer diligence document on behalf of the originator
     * @param {TransferDiligenceDocumentUploadRequest} transferDiligenceDocumentUploadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferDiligenceDocumentUpload(transferDiligenceDocumentUploadRequest: TransferDiligenceDocumentUploadRequest, options?: any): AxiosPromise<TransferDiligenceDocumentUploadResponse>;
    /**
     * Use the `/transfer/diligence/submit` endpoint to submit transfer diligence on behalf of the originator (i.e., the end customer).
     * @summary Submit transfer diligence on behalf of the originator
     * @param {TransferDiligenceSubmitRequest} transferDiligenceSubmitRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferDiligenceSubmit(transferDiligenceSubmitRequest: TransferDiligenceSubmitRequest, options?: any): AxiosPromise<TransferDiligenceSubmitResponse>;
    /**
     * Use the `/transfer/event/list` endpoint to get a list of transfer events based on specified filter criteria.
     * @summary List transfer events
     * @param {TransferEventListRequest} transferEventListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferEventList(transferEventListRequest: TransferEventListRequest, options?: any): AxiosPromise<TransferEventListResponse>;
    /**
     * `/transfer/event/sync` allows you to request up to the next 25 transfer events that happened after a specific `event_id`. Use the `/transfer/event/sync` endpoint to guarantee you have seen all transfer events.
     * @summary Sync transfer events
     * @param {TransferEventSyncRequest} transferEventSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferEventSync(transferEventSyncRequest: TransferEventSyncRequest, options?: any): AxiosPromise<TransferEventSyncResponse>;
    /**
     * The `/transfer/get` endpoint fetches information about the transfer corresponding to the given `transfer_id` or `authorization_id`. One of `transfer_id` or `authorization_id` must be populated but not both.
     * @summary Retrieve a transfer
     * @param {TransferGetRequest} transferGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferGet(transferGetRequest: TransferGetRequest, options?: any): AxiosPromise<TransferGetResponse>;
    /**
     * Use the `/transfer/intent/create` endpoint to generate a transfer intent object and invoke the Transfer UI.
     * @summary Create a transfer intent object to invoke the Transfer UI
     * @param {TransferIntentCreateRequest} transferIntentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferIntentCreate(transferIntentCreateRequest: TransferIntentCreateRequest, options?: any): AxiosPromise<TransferIntentCreateResponse>;
    /**
     * Use the `/transfer/intent/get` endpoint to retrieve more information about a transfer intent.
     * @summary Retrieve more information about a transfer intent
     * @param {TransferIntentGetRequest} transferIntentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferIntentGet(transferIntentGetRequest: TransferIntentGetRequest, options?: any): AxiosPromise<TransferIntentGetResponse>;
    /**
     * Use the `/transfer/ledger/deposit` endpoint to deposit funds into Plaid Ledger.
     * @summary Deposit funds into a Plaid Ledger balance
     * @param {TransferLedgerDepositRequest} transferLedgerDepositRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerDeposit(transferLedgerDepositRequest: TransferLedgerDepositRequest, options?: any): AxiosPromise<TransferLedgerDepositResponse>;
    /**
     * Use the `/transfer/ledger/distribute` endpoint to move available balance between the ledgers of the platform and one of its originators.
     * @summary Move available balance between the ledgers of the platform and one of its originators
     * @param {TransferLedgerDistributeRequest} transferLedgerDistributeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerDistribute(transferLedgerDistributeRequest: TransferLedgerDistributeRequest, options?: any): AxiosPromise<TransferLedgerDistributeResponse>;
    /**
     * Use the `/transfer/ledger/get` endpoint to view a balance on the ledger held with Plaid.
     * @summary Retrieve Plaid Ledger balance
     * @param {TransferLedgerGetRequest} transferLedgerGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerGet(transferLedgerGetRequest: TransferLedgerGetRequest, options?: any): AxiosPromise<TransferLedgerGetResponse>;
    /**
     * Use the `/transfer/ledger/withdraw` endpoint to withdraw funds from a Plaid Ledger balance.
     * @summary Withdraw funds from a Plaid Ledger balance
     * @param {TransferLedgerWithdrawRequest} transferLedgerWithdrawRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferLedgerWithdraw(transferLedgerWithdrawRequest: TransferLedgerWithdrawRequest, options?: any): AxiosPromise<TransferLedgerWithdrawResponse>;
    /**
     * Use the `/transfer/list` endpoint to see a list of all your transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired transfers.
     * @summary List transfers
     * @param {TransferListRequest} transferListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferList(transferListRequest: TransferListRequest, options?: any): AxiosPromise<TransferListResponse>;
    /**
     * Use the `/transfer/metrics/get` endpoint to view your transfer product usage metrics.
     * @summary Get transfer product usage metrics
     * @param {TransferMetricsGetRequest} transferMetricsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferMetricsGet(transferMetricsGetRequest: TransferMetricsGetRequest, options?: any): AxiosPromise<TransferMetricsGetResponse>;
    /**
     * As an alternative to adding Items via Link, you can also use the `/transfer/migrate_account` endpoint to migrate known account and routing numbers to Plaid Items. This endpoint is also required when adding an Item for use with wire transfers; if you intend to create wire transfers on this account, you must provide `wire_routing_number`. Note that Items created in this way are not compatible with endpoints for other products, such as `/accounts/balance/get`, and can only be used with Transfer endpoints.  If you require access to other endpoints, create the Item through Link instead.  Access to `/transfer/migrate_account` is not enabled by default; to obtain access, contact your Plaid Account Manager.
     * @summary Migrate account into Transfers
     * @param {TransferMigrateAccountRequest} transferMigrateAccountRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferMigrateAccount(transferMigrateAccountRequest: TransferMigrateAccountRequest, options?: any): AxiosPromise<TransferMigrateAccountResponse>;
    /**
     * Use the `/transfer/originator/create` endpoint to create a new originator and return an `originator_client_id`.
     * @summary Create a new originator
     * @param {TransferOriginatorCreateRequest} transferOriginatorCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorCreate(transferOriginatorCreateRequest: TransferOriginatorCreateRequest, options?: any): AxiosPromise<TransferOriginatorCreateResponse>;
    /**
     * Use the `/transfer/originator/funding_account/update` endpoint to update the funding account associated with the originator.
     * @summary Update the funding account associated with the originator
     * @param {TransferOriginatorFundingAccountUpdateRequest} transferOriginatorFundingAccountUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorFundingAccountUpdate(transferOriginatorFundingAccountUpdateRequest: TransferOriginatorFundingAccountUpdateRequest, options?: any): AxiosPromise<TransferOriginatorFundingAccountUpdateResponse>;
    /**
     * The `/transfer/originator/get` endpoint gets status updates for an originator\'s onboarding process. This information is also available via the Transfer page on the Plaid dashboard.
     * @summary Get status of an originator\'s onboarding
     * @param {TransferOriginatorGetRequest} transferOriginatorGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorGet(transferOriginatorGetRequest: TransferOriginatorGetRequest, options?: any): AxiosPromise<TransferOriginatorGetResponse>;
    /**
     * The `/transfer/originator/list` endpoint gets status updates for all of your originators\' onboarding. This information is also available via the Plaid dashboard.
     * @summary Get status of all originators\' onboarding
     * @param {TransferOriginatorListRequest} transferOriginatorListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferOriginatorList(transferOriginatorListRequest: TransferOriginatorListRequest, options?: any): AxiosPromise<TransferOriginatorListResponse>;
    /**
     * The `/transfer/platform/originator/create` endpoint allows gathering information about the originator specific to the Scaled Platform Transfer offering, including the originator\'s agreement to legal terms required before accepting any further information related to the originator.
     * @summary Create an originator for scaled platform customers
     * @param {TransferPlatformOriginatorCreateRequest} transferPlatformOriginatorCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferPlatformOriginatorCreate(transferPlatformOriginatorCreateRequest: TransferPlatformOriginatorCreateRequest, options?: any): AxiosPromise<TransferPlatformOriginatorCreateResponse>;
    /**
     * Use the `/transfer/platform/person/create` endpoint to create a person record associated with an originator and optionally submit person-specific requirements.
     * @summary Create a person associated with an originator
     * @param {TransferPlatformPersonCreateRequest} transferPlatformPersonCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferPlatformPersonCreate(transferPlatformPersonCreateRequest: TransferPlatformPersonCreateRequest, options?: any): AxiosPromise<TransferPlatformPersonCreateResponse>;
    /**
     * The `/transfer/platform/requirement/submit` endpoint allows platforms to submit onboarding requirements for an originator as part of the Scaled Platform Transfer offering.
     * @summary Submit onboarding requirements for Scaled Platform originators
     * @param {TransferPlatformRequirementSubmitRequest} transferPlatformRequirementSubmitRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferPlatformRequirementSubmit(transferPlatformRequirementSubmitRequest: TransferPlatformRequirementSubmitRequest, options?: any): AxiosPromise<TransferPlatformRequirementSubmitResponse>;
    /**
     * The `/transfer/questionnaire/create` endpoint generates a Plaid-hosted onboarding UI URL. Redirect the originator to this URL to provide their due diligence information and agree to Plaid’s terms for ACH money movement.
     * @summary Generate a Plaid-hosted onboarding UI URL.
     * @param {TransferQuestionnaireCreateRequest} transferQuestionnaireCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferQuestionnaireCreate(transferQuestionnaireCreateRequest: TransferQuestionnaireCreateRequest, options?: any): AxiosPromise<TransferQuestionnaireCreateResponse>;
    /**
     * Use the `/transfer/recurring/cancel` endpoint to cancel a recurring transfer.  Scheduled transfer that hasn\'t been submitted to bank will be cancelled.
     * @summary Cancel a recurring transfer.
     * @param {TransferRecurringCancelRequest} transferRecurringCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringCancel(transferRecurringCancelRequest: TransferRecurringCancelRequest, options?: any): AxiosPromise<TransferRecurringCancelResponse>;
    /**
     * Use the `/transfer/recurring/create` endpoint to initiate a new recurring transfer. This capability is not currently supported for Transfer UI or Platform Payments (beta) customers.
     * @summary Create a recurring transfer
     * @param {TransferRecurringCreateRequest} transferRecurringCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringCreate(transferRecurringCreateRequest: TransferRecurringCreateRequest, options?: any): AxiosPromise<TransferRecurringCreateResponse>;
    /**
     * The `/transfer/recurring/get` fetches information about the recurring transfer corresponding to the given `recurring_transfer_id`.
     * @summary Retrieve a recurring transfer
     * @param {TransferRecurringGetRequest} transferRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringGet(transferRecurringGetRequest: TransferRecurringGetRequest, options?: any): AxiosPromise<TransferRecurringGetResponse>;
    /**
     * Use the `/transfer/recurring/list` endpoint to see a list of all your recurring transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired recurring transfers.
     * @summary List recurring transfers
     * @param {TransferRecurringListRequest} transferRecurringListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRecurringList(transferRecurringListRequest: TransferRecurringListRequest, options?: any): AxiosPromise<TransferRecurringListResponse>;
    /**
     * Use the `/transfer/refund/cancel` endpoint to cancel a refund.  A refund is eligible for cancellation if it has not yet been submitted to the payment network.
     * @summary Cancel a refund
     * @param {TransferRefundCancelRequest} transferRefundCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRefundCancel(transferRefundCancelRequest: TransferRefundCancelRequest, options?: any): AxiosPromise<TransferRefundCancelResponse>;
    /**
     * Use the `/transfer/refund/create` endpoint to create a refund for a transfer. A transfer can be refunded if the transfer was initiated in the past 180 days.  Refunds come out of the available balance of the ledger used for the original debit transfer. If there are not enough funds in the available balance to cover the refund amount, the refund will be rejected. You can create a refund at any time. Plaid does not impose any hold time on refunds.
     * @summary Create a refund
     * @param {TransferRefundCreateRequest} transferRefundCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRefundCreate(transferRefundCreateRequest: TransferRefundCreateRequest, options?: any): AxiosPromise<TransferRefundCreateResponse>;
    /**
     * The `/transfer/refund/get` endpoint fetches information about the refund corresponding to the given `refund_id`.
     * @summary Retrieve a refund
     * @param {TransferRefundGetRequest} transferRefundGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRefundGet(transferRefundGetRequest: TransferRefundGetRequest, options?: any): AxiosPromise<TransferRefundGetResponse>;
    /**
     * The `/transfer/repayment/list` endpoint fetches repayments matching the given filters. Repayments are returned in reverse-chronological order (most recent first) starting at the given `start_time`.
     * @summary Lists historical repayments
     * @param {TransferRepaymentListRequest} transferRepaymentListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRepaymentList(transferRepaymentListRequest: TransferRepaymentListRequest, options?: any): AxiosPromise<TransferRepaymentListResponse>;
    /**
     * The `/transfer/repayment/return/list` endpoint retrieves the set of returns that were batched together into the specified repayment. The sum of amounts of returns retrieved by this request equals the amount of the repayment.
     * @summary List the returns included in a repayment
     * @param {TransferRepaymentReturnListRequest} transferRepaymentReturnListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferRepaymentReturnList(transferRepaymentReturnListRequest: TransferRepaymentReturnListRequest, options?: any): AxiosPromise<TransferRepaymentReturnListResponse>;
    /**
     * The `/transfer/sweep/get` endpoint fetches a sweep corresponding to the given `sweep_id`.
     * @summary Retrieve a sweep
     * @param {TransferSweepGetRequest} transferSweepGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferSweepGet(transferSweepGetRequest: TransferSweepGetRequest, options?: any): AxiosPromise<TransferSweepGetResponse>;
    /**
     * The `/transfer/sweep/list` endpoint fetches sweeps matching the given filters.
     * @summary List sweeps
     * @param {TransferSweepListRequest} transferSweepListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    transferSweepList(transferSweepListRequest: TransferSweepListRequest, options?: any): AxiosPromise<TransferSweepListResponse>;
    /**
     * Returns user permissioned account data including identity and Item access tokens.
     * @summary Retrieve User Account
     * @param {UserAccountSessionGetRequest} userAccountSessionGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userAccountSessionGet(userAccountSessionGetRequest: UserAccountSessionGetRequest, options?: any): AxiosPromise<UserAccountSessionGetResponse>;
    /**
     * This endpoint should be called for each of your end users before they begin a Plaid Check or Income flow, or a Multi-Item Link flow. This provides you a single token to access all data associated with the user. You should only create one per end user.  The `consumer_report_user_identity` object must be present in order to create a Plaid Check Consumer Report for a user. If it is not provided during the `/user/create` call, it can be added later by calling `/user/update`. Plaid Check Consumer Reports can only be created for US-based users; the user\'s address country must be `US`.  If you call the endpoint multiple times with the same `client_user_id`, the first creation call will succeed and the rest will fail with an error message indicating that the user has been created for the given `client_user_id`.  Ensure that you store the `user_token` along with your user\'s identifier in your database, as it is not possible to retrieve a previously created `user_token`.
     * @summary Create user
     * @param {UserCreateRequest} userCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userCreate(userCreateRequest: UserCreateRequest, options?: any): AxiosPromise<UserCreateResponse>;
    /**
     * Returns Items associated with a User along with their corresponding statuses.
     * @summary Get Items associated with a User
     * @param {UserItemsGetRequest} userItemsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userItemsGet(userItemsGetRequest: UserItemsGetRequest, options?: any): AxiosPromise<UserItemsGetResponse>;
    /**
     * `/user/remove` deletes a user token and and associated information, including any Items associated with the token.  Any subsequent calls to retrieve information using the same user token will result in an error stating the user does not exist.
     * @summary Remove user
     * @param {UserRemoveRequest} userRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userRemove(userRemoveRequest: UserRemoveRequest, options?: any): AxiosPromise<UserRemoveResponse>;
    /**
     * This endpoint is used to create a third-party user token. This token can be shared with and used by a specified third-party client to access data associated with the user through supported endpoints.  Ensure you store the `third_party_user_token` along with the `user_token` and `third_party_client_id`, as it is not possible to retrieve a previously created `third_party_user_token`.
     * @summary Create a third-party user token
     * @param {UserThirdPartyTokenCreateRequest} userThirdPartyTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userThirdPartyTokenCreate(userThirdPartyTokenCreateRequest: UserThirdPartyTokenCreateRequest, options?: any): AxiosPromise<UserThirdPartyTokenCreateResponse>;
    /**
     * This endpoint is used to delete a third-party user token. Once removed, the token can longer be used to access data associated with the user.   Any subsequent calls to retrieve information using the same third-party user token will result in an error stating the third-party user token does not exist.
     * @summary Remove a third-party user token
     * @param {UserThirdPartyTokenRemoveRequest} userThirdPartyTokenRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userThirdPartyTokenRemove(userThirdPartyTokenRemoveRequest: UserThirdPartyTokenRemoveRequest, options?: any): AxiosPromise<UserThirdPartyTokenRemoveResponse>;
    /**
     * This endpoint is used to update user information associated with an existing `user_token`. It can also be used to enable an existing `user_token` for use with Consumer Reports by Plaid Check, by adding a `consumer_report_user_identity` object to the user. Plaid Check Consumer Reports can only be created for US-based users; the user\'s address country must be `US`.
     * @summary Update user information
     * @param {UserUpdateRequest} userUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    userUpdate(userUpdateRequest: UserUpdateRequest, options?: any): AxiosPromise<UserUpdateResponse>;
    /**
     * Create an e-wallet. The response is the newly created e-wallet object.
     * @summary Create an e-wallet
     * @param {WalletCreateRequest} walletCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletCreate(walletCreateRequest: WalletCreateRequest, options?: any): AxiosPromise<WalletCreateResponse>;
    /**
     * Fetch an e-wallet. The response includes the current balance.
     * @summary Fetch an e-wallet
     * @param {WalletGetRequest} walletGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletGet(walletGetRequest: WalletGetRequest, options?: any): AxiosPromise<WalletGetResponse>;
    /**
     * This endpoint lists all e-wallets in descending order of creation.
     * @summary Fetch a list of e-wallets
     * @param {WalletListRequest} walletListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletList(walletListRequest: WalletListRequest, options?: any): AxiosPromise<WalletListResponse>;
    /**
     * Execute a transaction using the specified e-wallet. Specify the e-wallet to debit from, the counterparty to credit to, the idempotency key to prevent duplicate transactions, the amount and reference for the transaction. Transactions will settle in seconds to several days, depending on the underlying payment rail.
     * @summary Execute a transaction using an e-wallet
     * @param {WalletTransactionExecuteRequest} walletTransactionExecuteRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletTransactionExecute(walletTransactionExecuteRequest: WalletTransactionExecuteRequest, options?: any): AxiosPromise<WalletTransactionExecuteResponse>;
    /**
     * Fetch a specific e-wallet transaction
     * @summary Fetch an e-wallet transaction
     * @param {WalletTransactionGetRequest} walletTransactionGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletTransactionGet(walletTransactionGetRequest: WalletTransactionGetRequest, options?: any): AxiosPromise<WalletTransactionGetResponse>;
    /**
     * This endpoint lists the latest transactions of the specified e-wallet. Transactions are returned in descending order by the `created_at` time.
     * @summary List e-wallet transactions
     * @param {WalletTransactionListRequest} walletTransactionListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    walletTransactionList(walletTransactionListRequest: WalletTransactionListRequest, options?: any): AxiosPromise<WalletTransactionListResponse>;
    /**
     * Create a new entity watchlist screening to check your customer against watchlists defined in the associated entity watchlist program. If your associated program has ongoing screening enabled, this is the profile information that will be used to monitor your customer over time.
     * @summary Create a watchlist screening for an entity
     * @param {WatchlistScreeningEntityCreateRequest} watchlistScreeningEntityCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityCreate(watchlistScreeningEntityCreateRequest: WatchlistScreeningEntityCreateRequest, options?: any): AxiosPromise<WatchlistScreeningEntityCreateResponse>;
    /**
     * Retrieve an entity watchlist screening.
     * @summary Get an entity screening
     * @param {WatchlistScreeningEntityGetRequest} watchlistScreeningEntityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityGet(watchlistScreeningEntityGetRequest: WatchlistScreeningEntityGetRequest, options?: any): AxiosPromise<WatchlistScreeningEntityGetResponse>;
    /**
     * List all changes to the entity watchlist screening in reverse-chronological order. If the watchlist screening has not been edited, no history will be returned.
     * @summary List history for entity watchlist screenings
     * @param {WatchlistScreeningEntityHistoryListRequest} watchlistScreeningEntityHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityHistoryList(watchlistScreeningEntityHistoryListRequest: WatchlistScreeningEntityHistoryListRequest, options?: any): AxiosPromise<WatchlistScreeningEntityHistoryListResponse>;
    /**
     * List all hits for the entity watchlist screening.
     * @summary List hits for entity watchlist screenings
     * @param {WatchlistScreeningEntityHitListRequest} watchlistScreeningEntityHitListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityHitList(watchlistScreeningEntityHitListRequest: WatchlistScreeningEntityHitListRequest, options?: any): AxiosPromise<WatchlistScreeningEntityHitListResponse>;
    /**
     * List all entity screenings.
     * @summary List entity watchlist screenings
     * @param {WatchlistScreeningEntityListRequest} watchlistScreeningEntityListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityList(watchlistScreeningEntityListRequest: WatchlistScreeningEntityListRequest, options?: any): AxiosPromise<WatchlistScreeningEntityListResponse>;
    /**
     * Get an entity watchlist screening program
     * @summary Get entity watchlist screening program
     * @param {WatchlistScreeningEntityProgramGetRequest} watchlistScreeningEntityProgramGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityProgramGet(watchlistScreeningEntityProgramGetRequest: WatchlistScreeningEntityProgramGetRequest, options?: any): AxiosPromise<WatchlistScreeningEntityProgramGetResponse>;
    /**
     * List all entity watchlist screening programs
     * @summary List entity watchlist screening programs
     * @param {WatchlistScreeningEntityProgramListRequest} watchlistScreeningEntityProgramListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityProgramList(watchlistScreeningEntityProgramListRequest: WatchlistScreeningEntityProgramListRequest, options?: any): AxiosPromise<WatchlistScreeningEntityProgramListResponse>;
    /**
     * Create a review for an entity watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary Create a review for an entity watchlist screening
     * @param {WatchlistScreeningEntityReviewCreateRequest} watchlistScreeningEntityReviewCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityReviewCreate(watchlistScreeningEntityReviewCreateRequest: WatchlistScreeningEntityReviewCreateRequest, options?: any): AxiosPromise<WatchlistScreeningEntityReviewCreateResponse>;
    /**
     * List all reviews for a particular entity watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary List reviews for entity watchlist screenings
     * @param {WatchlistScreeningEntityReviewListRequest} watchlistScreeningEntityReviewListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityReviewList(watchlistScreeningEntityReviewListRequest: WatchlistScreeningEntityReviewListRequest, options?: any): AxiosPromise<WatchlistScreeningEntityReviewListResponse>;
    /**
     * Update an entity watchlist screening.
     * @summary Update an entity screening
     * @param {WatchlistScreeningEntityUpdateRequest} watchlistScreeningEntityUpdateRequest The entity screening was successfully updated.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningEntityUpdate(watchlistScreeningEntityUpdateRequest: WatchlistScreeningEntityUpdateRequest, options?: any): AxiosPromise<WatchlistScreeningEntityUpdateResponse>;
    /**
     * Create a new Watchlist Screening to check your customer against watchlists defined in the associated Watchlist Program. If your associated program has ongoing screening enabled, this is the profile information that will be used to monitor your customer over time.
     * @summary Create a watchlist screening for a person
     * @param {WatchlistScreeningIndividualCreateRequest} watchlistScreeningIndividualCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualCreate(watchlistScreeningIndividualCreateRequest: WatchlistScreeningIndividualCreateRequest, options?: any): AxiosPromise<WatchlistScreeningIndividualCreateResponse>;
    /**
     * Retrieve a previously created individual watchlist screening
     * @summary Retrieve an individual watchlist screening
     * @param {WatchlistScreeningIndividualGetRequest} watchlistScreeningIndividualGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualGet(watchlistScreeningIndividualGetRequest: WatchlistScreeningIndividualGetRequest, options?: any): AxiosPromise<WatchlistScreeningIndividualGetResponse>;
    /**
     * List all changes to the individual watchlist screening in reverse-chronological order. If the watchlist screening has not been edited, no history will be returned.
     * @summary List history for individual watchlist screenings
     * @param {WatchlistScreeningIndividualHistoryListRequest} watchlistScreeningIndividualHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualHistoryList(watchlistScreeningIndividualHistoryListRequest: WatchlistScreeningIndividualHistoryListRequest, options?: any): AxiosPromise<WatchlistScreeningIndividualHistoryListResponse>;
    /**
     * List all hits found by Plaid for a particular individual watchlist screening.
     * @summary List hits for individual watchlist screening
     * @param {WatchlistScreeningIndividualHitListRequest} watchlistScreeningIndividualHitListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualHitList(watchlistScreeningIndividualHitListRequest: WatchlistScreeningIndividualHitListRequest, options?: any): AxiosPromise<WatchlistScreeningIndividualHitListResponse>;
    /**
     * List previously created watchlist screenings for individuals
     * @summary List Individual Watchlist Screenings
     * @param {WatchlistScreeningIndividualListRequest} watchlistScreeningIndividualListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualList(watchlistScreeningIndividualListRequest: WatchlistScreeningIndividualListRequest, options?: any): AxiosPromise<WatchlistScreeningIndividualListResponse>;
    /**
     * Get an individual watchlist screening program
     * @summary Get individual watchlist screening program
     * @param {WatchlistScreeningIndividualProgramGetRequest} watchlistScreeningIndividualProgramGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualProgramGet(watchlistScreeningIndividualProgramGetRequest: WatchlistScreeningIndividualProgramGetRequest, options?: any): AxiosPromise<WatchlistScreeningIndividualProgramGetResponse>;
    /**
     * List all individual watchlist screening programs
     * @summary List individual watchlist screening programs
     * @param {WatchlistScreeningIndividualProgramListRequest} watchlistScreeningIndividualProgramListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualProgramList(watchlistScreeningIndividualProgramListRequest: WatchlistScreeningIndividualProgramListRequest, options?: any): AxiosPromise<WatchlistScreeningIndividualProgramListResponse>;
    /**
     * Create a review for the individual watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary Create a review for an individual watchlist screening
     * @param {WatchlistScreeningIndividualReviewCreateRequest} watchlistScreeningIndividualReviewCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualReviewCreate(watchlistScreeningIndividualReviewCreateRequest: WatchlistScreeningIndividualReviewCreateRequest, options?: any): AxiosPromise<WatchlistScreeningIndividualReviewCreateResponse>;
    /**
     * List all reviews for the individual watchlist screening.
     * @summary List reviews for individual watchlist screenings
     * @param {WatchlistScreeningIndividualReviewListRequest} watchlistScreeningIndividualReviewListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualReviewList(watchlistScreeningIndividualReviewListRequest: WatchlistScreeningIndividualReviewListRequest, options?: any): AxiosPromise<WatchlistScreeningIndividualReviewListResponse>;
    /**
     * Update a specific individual watchlist screening. This endpoint can be used to add additional customer information, correct outdated information, add a reference id, assign the individual to a reviewer, and update which program it is associated with. Please note that you may not update `search_terms` and `status` at the same time since editing `search_terms` may trigger an automatic `status` change.
     * @summary Update individual watchlist screening
     * @param {WatchlistScreeningIndividualUpdateRequest} watchlistScreeningIndividualUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    watchlistScreeningIndividualUpdate(watchlistScreeningIndividualUpdateRequest: WatchlistScreeningIndividualUpdateRequest, options?: any): AxiosPromise<WatchlistScreeningIndividualUpdateResponse>;
    /**
     * Plaid signs all outgoing webhooks and provides JSON Web Tokens (JWTs) so that you can verify the authenticity of any incoming webhooks to your application. A message signature is included in the `Plaid-Verification` header.  The `/webhook_verification_key/get` endpoint provides a JSON Web Key (JWK) that can be used to verify a JWT.
     * @summary Get webhook verification key
     * @param {WebhookVerificationKeyGetRequest} webhookVerificationKeyGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    webhookVerificationKeyGet(webhookVerificationKeyGetRequest: WebhookVerificationKeyGetRequest, options?: any): AxiosPromise<WebhookVerificationKeyGetResponse>;
};
/**
 * PlaidApi - object-oriented interface
 * @export
 * @class PlaidApi
 * @extends {BaseAPI}
 */
export declare class PlaidApi extends BaseAPI {
    /**
     * The `/accounts/balance/get` endpoint returns the real-time balance for each of an Item\'s accounts. While other endpoints, such as `/accounts/get`, return a balance object, only `/accounts/balance/get` forces the available and current balance fields to be refreshed rather than cached. This endpoint can be used for existing Items that were added via any of Plaid’s other products. This endpoint can be used as long as Link has been initialized with any other product, `balance` itself is not a product that can be used to initialize Link. As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.
     * @summary Retrieve real-time balance data
     * @param {AccountsBalanceGetRequest} accountsBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    accountsBalanceGet(accountsBalanceGetRequest: AccountsBalanceGetRequest, options?: any): Promise<import("axios").AxiosResponse<AccountsGetResponse, any>>;
    /**
     * The `/accounts/get` endpoint can be used to retrieve a list of accounts associated with any linked Item. Plaid will only return active bank accounts — that is, accounts that are not closed and are capable of carrying a balance. To return new accounts that were created after the user linked their Item, you can listen for the [`NEW_ACCOUNTS_AVAILABLE`](https://plaid.com/docs/api/items/#new_accounts_available) webhook and then use Link\'s [update mode](https://plaid.com/docs/link/update-mode/) to request that the user share this new account with you.  `/accounts/get` is free to use and retrieves cached information, rather than extracting fresh information from the institution. The balance returned will reflect the balance at the time of the last successful Item update. If the Item is enabled for a regularly updating product, such as Transactions, Investments, or Liabilities, the balance will typically update about once a day, as long as the Item is healthy. If the Item is enabled only for products that do not frequently update, such as Auth or Identity, balance data may be much older.  For realtime balance information, use the paid endpoint `/accounts/balance/get` instead.
     * @summary Retrieve accounts
     * @param {AccountsGetRequest} accountsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    accountsGet(accountsGetRequest: AccountsGetRequest, options?: any): Promise<import("axios").AxiosResponse<AccountsGetResponse, any>>;
    /**
     * Allows financial institutions to retrieve information about Plaid clients for the purpose of building control-tower experiences
     * @summary Retrieve information about a Plaid application
     * @param {ApplicationGetRequest} applicationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    applicationGet(applicationGetRequest: ApplicationGetRequest, options?: any): Promise<import("axios").AxiosResponse<ApplicationGetResponse, any>>;
    /**
     * Plaid can provide an Audit Copy of any Asset Report directly to a participating third party on your behalf. For example, Plaid can supply an Audit Copy directly to Fannie Mae on your behalf if you participate in the Day 1 Certainty™ program. An Audit Copy contains the same underlying data as the Asset Report.  To grant access to an Audit Copy, use the `/asset_report/audit_copy/create` endpoint to create an `audit_copy_token` and then pass that token to the third party who needs access. Each third party has its own `auditor_id`, for example `fannie_mae`. You’ll need to create a separate Audit Copy for each third party to whom you want to grant access to the Report.
     * @summary Create Asset Report Audit Copy
     * @param {AssetReportAuditCopyCreateRequest} assetReportAuditCopyCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    assetReportAuditCopyCreate(assetReportAuditCopyCreateRequest: AssetReportAuditCopyCreateRequest, options?: any): Promise<import("axios").AxiosResponse<AssetReportAuditCopyCreateResponse, any>>;
    /**
     * `/asset_report/audit_copy/get` allows auditors to get a copy of an Asset Report that was previously shared via the `/asset_report/audit_copy/create` endpoint.  The caller of `/asset_report/audit_copy/create` must provide the `audit_copy_token` to the auditor.  This token can then be used to call `/asset_report/audit_copy/create`.
     * @summary Retrieve an Asset Report Audit Copy
     * @param {AssetReportAuditCopyGetRequest} assetReportAuditCopyGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    assetReportAuditCopyGet(assetReportAuditCopyGetRequest: AssetReportAuditCopyGetRequest, options?: any): Promise<import("axios").AxiosResponse<AssetReportGetResponse, any>>;
    /**
     * The `/asset_report/audit_copy/remove` endpoint allows you to remove an Audit Copy. Removing an Audit Copy invalidates the `audit_copy_token` associated with it, meaning both you and any third parties holding the token will no longer be able to use it to access Report data. Items associated with the Asset Report, the Asset Report itself and other Audit Copies of it are not affected and will remain accessible after removing the given Audit Copy.
     * @summary Remove Asset Report Audit Copy
     * @param {AssetReportAuditCopyRemoveRequest} assetReportAuditCopyRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    assetReportAuditCopyRemove(assetReportAuditCopyRemoveRequest: AssetReportAuditCopyRemoveRequest, options?: any): Promise<import("axios").AxiosResponse<AssetReportAuditCopyRemoveResponse, any>>;
    /**
     * The `/asset_report/create` endpoint initiates the process of creating an Asset Report, which can then be retrieved by passing the `asset_report_token` return value to the `/asset_report/get` or `/asset_report/pdf/get` endpoints.  The Asset Report takes some time to be created and is not available immediately after calling `/asset_report/create`. The exact amount of time to create the report will vary depending on how many days of history are requested and will typically range from a few seconds to about one minute. When the Asset Report is ready to be retrieved using `/asset_report/get` or `/asset_report/pdf/get`, Plaid will fire a `PRODUCT_READY` webhook. For full details of the webhook schema, see [Asset Report webhooks](https://plaid.com/docs/api/products/assets/#webhooks).  The `/asset_report/create` endpoint creates an Asset Report at a moment in time. Asset Reports are immutable. To get an updated Asset Report, use the `/asset_report/refresh` endpoint.
     * @summary Create an Asset Report
     * @param {AssetReportCreateRequest} assetReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    assetReportCreate(assetReportCreateRequest: AssetReportCreateRequest, options?: any): Promise<import("axios").AxiosResponse<AssetReportCreateResponse, any>>;
    /**
     * By default, an Asset Report will contain all of the accounts on a given Item. In some cases, you may not want the Asset Report to contain all accounts. For example, you might have the end user choose which accounts are relevant in Link using the Account Select view, which you can enable in the dashboard. Or, you might always exclude certain account types or subtypes, which you can identify by using the `/accounts/get` endpoint. To narrow an Asset Report to only a subset of accounts, use the `/asset_report/filter` endpoint.  To exclude certain Accounts from an Asset Report, first use the `/asset_report/create` endpoint to create the report, then send the `asset_report_token` along with a list of `account_ids` to exclude to the `/asset_report/filter` endpoint, to create a new Asset Report which contains only a subset of the original Asset Report\'s data.  Because Asset Reports are immutable, calling `/asset_report/filter` does not alter the original Asset Report in any way; rather, `/asset_report/filter` creates a new Asset Report with a new token and id. Asset Reports created via `/asset_report/filter` do not contain new Asset data, and are not billed.  Plaid will fire a [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook once generation of the filtered Asset Report has completed.
     * @summary Filter Asset Report
     * @param {AssetReportFilterRequest} assetReportFilterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    assetReportFilter(assetReportFilterRequest: AssetReportFilterRequest, options?: any): Promise<import("axios").AxiosResponse<AssetReportFilterResponse, any>>;
    /**
     * The `/asset_report/get` endpoint retrieves the Asset Report in JSON format. Before calling `/asset_report/get`, you must first create the Asset Report using `/asset_report/create` (or filter an Asset Report using `/asset_report/filter`) and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  By default, an Asset Report includes transaction descriptions as returned by the bank, as opposed to parsed and categorized by Plaid. You can also receive cleaned and categorized transactions, as well as additional insights like merchant name or location information. We call this an Asset Report with Insights. An Asset Report with Insights provides transaction category, location, and merchant information in addition to the transaction strings provided in a standard Asset Report. To retrieve an Asset Report with Insights, call `/asset_report/get` endpoint with `include_insights` set to `true`.  For latency-sensitive applications, you can optionally call `/asset_report/create` with `options.add_ons` set to `[\"fast_assets\"]`. This will cause Plaid to create two versions of the Asset Report: one with only current and available balance and identity information, and then later on the complete Asset Report. You will receive separate webhooks for each version of the Asset Report.
     * @summary Retrieve an Asset Report
     * @param {AssetReportGetRequest} assetReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    assetReportGet(assetReportGetRequest: AssetReportGetRequest, options?: any): Promise<import("axios").AxiosResponse<AssetReportGetResponse, any>>;
    /**
     * The `/asset_report/pdf/get` endpoint retrieves the Asset Report in PDF format. Before calling `/asset_report/pdf/get`, you must first create the Asset Report using `/asset_report/create` (or filter an Asset Report using `/asset_report/filter`) and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  The response to `/asset_report/pdf/get` is the PDF binary data. The `request_id`  is returned in the `Plaid-Request-ID` header.  [View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf).
     * @summary Retrieve a PDF Asset Report
     * @param {AssetReportPDFGetRequest} assetReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    assetReportPdfGet(assetReportPDFGetRequest: AssetReportPDFGetRequest, options?: any): Promise<import("axios").AxiosResponse<any, any>>;
    /**
     * An Asset Report is an immutable snapshot of a user\'s assets. In order to \"refresh\" an Asset Report you created previously, you can use the `/asset_report/refresh` endpoint to create a new Asset Report based on the old one, but with the most recent data available.  The new Asset Report will contain the same Items as the original Report, as well as the same filters applied by any call to `/asset_report/filter`. By default, the new Asset Report will also use the same parameters you submitted with your original `/asset_report/create` request, but the original `days_requested` value and the values of any parameters in the `options` object can be overridden with new values. To change these arguments, simply supply new values for them in your request to `/asset_report/refresh`. Submit an empty string (\"\") for any previously-populated fields you would like set as empty.
     * @summary Refresh an Asset Report
     * @param {AssetReportRefreshRequest} assetReportRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    assetReportRefresh(assetReportRefreshRequest: AssetReportRefreshRequest, options?: any): Promise<import("axios").AxiosResponse<AssetReportRefreshResponse, any>>;
    /**
     * The `/item/remove` endpoint allows you to invalidate an `access_token`, meaning you will not be able to create new Asset Reports with it. Removing an Item does not affect any Asset Reports or Audit Copies you have already created, which will remain accessible until you remove them specifically.  The `/asset_report/remove` endpoint allows you to remove access to an Asset Report. Removing an Asset Report invalidates its `asset_report_token`, meaning you will no longer be able to use it to access Report data or create new Audit Copies. Removing an Asset Report does not affect the underlying Items, but does invalidate any `audit_copy_tokens` associated with the Asset Report.
     * @summary Delete an Asset Report
     * @param {AssetReportRemoveRequest} assetReportRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    assetReportRemove(assetReportRemoveRequest: AssetReportRemoveRequest, options?: any): Promise<import("axios").AxiosResponse<AssetReportRemoveResponse, any>>;
    /**
     * The `/auth/get` endpoint returns the bank account and bank identification numbers (such as routing numbers, for US accounts) associated with an Item\'s checking, savings, and cash management accounts, along with high-level account data and balances when available.  Versioning note: In API version 2017-03-08, the schema of the `numbers` object returned by this endpoint is substantially different. For details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2018-05-22).
     * @summary Retrieve auth data
     * @param {AuthGetRequest} authGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    authGet(authGetRequest: AuthGetRequest, options?: any): Promise<import("axios").AxiosResponse<AuthGetResponse, any>>;
    /**
     * Use the `/bank_transfer/balance/get` endpoint to see the available balance in your bank transfer account. Debit transfers increase this balance once their status is posted. Credit transfers decrease this balance when they are created.  The transactable balance shows the amount in your account that you are able to use for transfers, and is essentially your available balance minus your minimum balance.  Note that this endpoint can only be used with FBO accounts, when using Bank Transfers in the Full Service configuration. It cannot be used on your own account when using Bank Transfers in the BTS Platform configuration.
     * @summary Get balance of your Bank Transfer account
     * @param {BankTransferBalanceGetRequest} bankTransferBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    bankTransferBalanceGet(bankTransferBalanceGetRequest: BankTransferBalanceGetRequest, options?: any): Promise<import("axios").AxiosResponse<BankTransferBalanceGetResponse, any>>;
    /**
     * Use the `/bank_transfer/cancel` endpoint to cancel a bank transfer.  A transfer is eligible for cancelation if the `cancellable` property returned by `/bank_transfer/get` is `true`.
     * @summary Cancel a bank transfer
     * @param {BankTransferCancelRequest} bankTransferCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    bankTransferCancel(bankTransferCancelRequest: BankTransferCancelRequest, options?: any): Promise<import("axios").AxiosResponse<BankTransferCancelResponse, any>>;
    /**
     * Use the `/bank_transfer/create` endpoint to initiate a new bank transfer.
     * @summary Create a bank transfer
     * @param {BankTransferCreateRequest} bankTransferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    bankTransferCreate(bankTransferCreateRequest: BankTransferCreateRequest, options?: any): Promise<import("axios").AxiosResponse<BankTransferCreateResponse, any>>;
    /**
     * Use the `/bank_transfer/event/list` endpoint to get a list of Plaid-initiated ACH or bank transfer events based on specified filter criteria. When using Auth with micro-deposit verification enabled, this endpoint can be used to fetch status updates on ACH micro-deposits. For more details, see [micro-deposit events](https://plaid.com/docs/auth/coverage/microdeposit-events/).
     * @summary List bank transfer events
     * @param {BankTransferEventListRequest} bankTransferEventListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    bankTransferEventList(bankTransferEventListRequest: BankTransferEventListRequest, options?: any): Promise<import("axios").AxiosResponse<BankTransferEventListResponse, any>>;
    /**
     * `/bank_transfer/event/sync` allows you to request up to the next 25 Plaid-initiated bank transfer events that happened after a specific `event_id`. When using Auth with micro-deposit verification enabled, this endpoint can be used to fetch status updates on ACH micro-deposits. For more details, see [micro-deposit events](https://www.plaid.com/docs/auth/coverage/microdeposit-events/).
     * @summary Sync bank transfer events
     * @param {BankTransferEventSyncRequest} bankTransferEventSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    bankTransferEventSync(bankTransferEventSyncRequest: BankTransferEventSyncRequest, options?: any): Promise<import("axios").AxiosResponse<BankTransferEventSyncResponse, any>>;
    /**
     * The `/bank_transfer/get` fetches information about the bank transfer corresponding to the given `bank_transfer_id`.
     * @summary Retrieve a bank transfer
     * @param {BankTransferGetRequest} bankTransferGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    bankTransferGet(bankTransferGetRequest: BankTransferGetRequest, options?: any): Promise<import("axios").AxiosResponse<BankTransferGetResponse, any>>;
    /**
     * Use the `/bank_transfer/list` endpoint to see a list of all your bank transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired bank transfers.
     * @summary List bank transfers
     * @param {BankTransferListRequest} bankTransferListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    bankTransferList(bankTransferListRequest: BankTransferListRequest, options?: any): Promise<import("axios").AxiosResponse<BankTransferListResponse, any>>;
    /**
     * As an alternative to adding Items via Link, you can also use the `/bank_transfer/migrate_account` endpoint to migrate known account and routing numbers to Plaid Items.  Note that Items created in this way are not compatible with endpoints for other products, such as `/accounts/balance/get`, and can only be used with Bank Transfer endpoints.  If you require access to other endpoints, create the Item through Link instead.  Access to `/bank_transfer/migrate_account` is not enabled by default; to obtain access, contact your Plaid Account Manager.
     * @summary Migrate account into Bank Transfers
     * @param {BankTransferMigrateAccountRequest} bankTransferMigrateAccountRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    bankTransferMigrateAccount(bankTransferMigrateAccountRequest: BankTransferMigrateAccountRequest, options?: any): Promise<import("axios").AxiosResponse<BankTransferMigrateAccountResponse, any>>;
    /**
     * The `/bank_transfer/sweep/get` endpoint fetches information about the sweep corresponding to the given `sweep_id`.
     * @summary Retrieve a sweep
     * @param {BankTransferSweepGetRequest} bankTransferSweepGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    bankTransferSweepGet(bankTransferSweepGetRequest: BankTransferSweepGetRequest, options?: any): Promise<import("axios").AxiosResponse<BankTransferSweepGetResponse, any>>;
    /**
     * The `/bank_transfer/sweep/list` endpoint fetches information about the sweeps matching the given filters.
     * @summary List sweeps
     * @param {BankTransferSweepListRequest} bankTransferSweepListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    bankTransferSweepList(bankTransferSweepListRequest: BankTransferSweepListRequest, options?: any): Promise<import("axios").AxiosResponse<BankTransferSweepListResponse, any>>;
    /**
     * Use `/beacon/account_risk/v1/evaluate` to get risk insights for a linked account.
     * @summary Evaluate risk of a bank account
     * @param {BeaconAccountRiskEvaluateRequest} beaconAccountRiskEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconAccountRiskEvaluate(beaconAccountRiskEvaluateRequest: BeaconAccountRiskEvaluateRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconAccountRiskEvaluateResponse, any>>;
    /**
     * Returns a Beacon Duplicate for a given Beacon Duplicate id.  A Beacon Duplicate represents a pair of similar Beacon Users within your organization.  Two Beacon User revisions are returned for each Duplicate record in either the `beacon_user1` or `beacon_user2` response fields.  The `analysis` field in the response indicates which fields matched between `beacon_user1` and `beacon_user2`.
     * @summary Get a Beacon Duplicate
     * @param {BeaconDuplicateGetRequest} beaconDuplicateGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconDuplicateGet(beaconDuplicateGetRequest: BeaconDuplicateGetRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconDuplicateGetResponse, any>>;
    /**
     * Create a fraud report for a given Beacon User.
     * @summary Create a Beacon Report
     * @param {BeaconReportCreateRequest} beaconReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconReportCreate(beaconReportCreateRequest: BeaconReportCreateRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconReportCreateResponse, any>>;
    /**
     * Returns a Beacon report for a given Beacon report id.
     * @summary Get a Beacon Report
     * @param {BeaconReportGetRequest} beaconReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconReportGet(beaconReportGetRequest: BeaconReportGetRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconReportGetResponse, any>>;
    /**
     * Use the `/beacon/report/list` endpoint to view all Beacon Reports you created for a specific Beacon User. The reports returned by this endpoint are exclusively reports you created for a specific user. A Beacon User can only have one active report at a time, but a new report can be created if a previous report has been deleted. The results from this endpoint are paginated; the `next_cursor` field will be populated if there is another page of results that can be retrieved. To fetch the next page, pass the `next_cursor` value as the `cursor` parameter in the next request.
     * @summary List Beacon Reports for a Beacon User
     * @param {BeaconReportListRequest} beaconReportListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconReportList(beaconReportListRequest: BeaconReportListRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconReportListResponse, any>>;
    /**
     * Returns a Beacon Report Syndication for a given Beacon Report Syndication id.
     * @summary Get a Beacon Report Syndication
     * @param {BeaconReportSyndicationGetRequest} beaconReportSyndicationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconReportSyndicationGet(beaconReportSyndicationGetRequest: BeaconReportSyndicationGetRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconReportSyndicationGetResponse, any>>;
    /**
     * Use the `/beacon/report_syndication/list` endpoint to view all Beacon Reports that have been syndicated to a specific Beacon User. This endpoint returns Beacon Report Syndications which are references to Beacon Reports created either by you, or another Beacon customer, that matched the specified Beacon User. A Beacon User can have multiple active Beacon Report Syndications at once. The results from this endpoint are paginated; the `next_cursor` field will be populated if there is another page of results that can be retrieved. To fetch the next page, pass the `next_cursor` value as the `cursor` parameter in the next request.
     * @summary List Beacon Report Syndications for a Beacon User
     * @param {BeaconReportSyndicationListRequest} beaconReportSyndicationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconReportSyndicationList(beaconReportSyndicationListRequest: BeaconReportSyndicationListRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconReportSyndicationListResponse, any>>;
    /**
     * Get Account Insights for all Accounts linked to this Beacon User. The insights for each account are computed based on the information that was last retrieved from the financial institution.
     * @summary Get Account Insights for a Beacon User
     * @param {BeaconUserAccountInsightsGetRequest} beaconUserAccountInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconUserAccountInsightsGet(beaconUserAccountInsightsGetRequest: BeaconUserAccountInsightsGetRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconUserAccountInsightsGetResponse, any>>;
    /**
     * Create and scan a Beacon User against your Beacon Program, according to your program\'s settings.  When you submit a new user to `/beacon/user/create`, several checks are performed immediately:    - The user\'s PII (provided within the `user` object) is searched against all other users within the Beacon Program you specified. If a match is found that violates your program\'s \"Duplicate Information Filtering\" settings, the user will be returned with a status of `pending_review`.    - The user\'s PII is also searched against all fraud reports created by your organization across all of your Beacon Programs. If the user\'s data matches a fraud report that your team created, the user will be returned with a status of `rejected`.    - Finally, the user\'s PII is searched against all fraud report shared with the Beacon Network by other companies. If a matching fraud report is found, the user will be returned with a `pending_review` status if your program has enabled automatic flagging based on network fraud.
     * @summary Create a Beacon User
     * @param {BeaconUserCreateRequest} beaconUserCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconUserCreate(beaconUserCreateRequest: BeaconUserCreateRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconUserCreateResponse, any>>;
    /**
     * Fetch a Beacon User.  The Beacon User is returned with all of their associated information and a `status` based on the Beacon Network duplicate record and fraud checks.
     * @summary Get a Beacon User
     * @param {BeaconUserGetRequest} beaconUserGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconUserGet(beaconUserGetRequest: BeaconUserGetRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconUserGetResponse, any>>;
    /**
     * List all changes to the Beacon User in reverse-chronological order.
     * @summary List a Beacon User\'s history
     * @param {BeaconUserHistoryListRequest} beaconUserHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconUserHistoryList(beaconUserHistoryListRequest: BeaconUserHistoryListRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconUserHistoryListResponse, any>>;
    /**
     * Update the status of a Beacon User.  When updating a Beacon User\'s status via this endpoint, Plaid validates that the status change is consistent with the related state for this Beacon User. Specifically, we will check:  1. Whether there are any associated Beacon Reports connected to the Beacon User, and 2. Whether there are any confirmed Beacon Report Syndications connected to the Beacon User.  When updating a Beacon User\'s status to \"rejected\", we enforce that either a Beacon Report has been created for the Beacon User or a Beacon Report Syndication has been confirmed. When updating a Beacon User\'s status to \"cleared\", we enforce that there are no active Beacon Reports or confirmed Beacon Report Syndications associated with the user. If you previously created a Beacon Report for this user, you must delete it before updating the Beacon User\'s status to \"cleared\". There are no restrictions on updating a Beacon User\'s status to \"pending_review\".  If these conditions are not met, the request will be rejected with an error explaining the issue.
     * @summary Review a Beacon User
     * @param {BeaconUserReviewRequest} beaconUserReviewRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconUserReview(beaconUserReviewRequest: BeaconUserReviewRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconUserGetResponse, any>>;
    /**
     * Update the identity data for a Beacon User in your Beacon Program or add new accounts to the Beacon User.  Similar to `/beacon/user/create`, several checks are performed immediately when you submit an identity data change to `/beacon/user/update`:    - The user\'s updated PII is searched against all other users within the Beacon Program you specified. If a match is found that violates your program\'s \"Duplicate Information Filtering\" settings, the user will be returned with a status of `pending_review`.    - The user\'s updated PII is also searched against all fraud reports created by your organization across all of your Beacon Programs. If the user\'s data matches a fraud report that your team created, the user will be returned with a status of `rejected`.    - Finally, the user\'s PII is searched against all fraud report shared with the Beacon Network by other companies. If a matching fraud report is found, the user will be returned with a `pending_review` status if your program has enabled automatic flagging based on network fraud.  Plaid maintains a version history for each Beacon User, so the Beacon User\'s identity data before and after the update is retained as separate versions.
     * @summary Update the identity data of a Beacon User
     * @param {BeaconUserUpdateRequest} beaconUserUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    beaconUserUpdate(beaconUserUpdateRequest: BeaconUserUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<BeaconUserUpdateResponse, any>>;
    /**
     * Send a request to the `/categories/get` endpoint to get detailed information on categories returned by Plaid. This endpoint does not require authentication.  All implementations are recommended to use the newer `personal_finance_category` taxonomy instead of the older `category` taxonomy supported by this endpoint. The [`personal_finance_category taxonomy` CSV file](https://plaid.com/documents/transactions-personal-finance-category-taxonomy.csv) is available for download and is not accessible via API.
     * @summary Get categories
     * @param {object} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    categoriesGet(body: object, options?: any): Promise<import("axios").AxiosResponse<CategoriesGetResponse, any>>;
    /**
     * List a historical log of Item consent events. Consent logs are only available for events occurring on or after November 7, 2024. Up to three years of consent logs will be available via the endpoint.
     * @summary List a historical log of item consent events
     * @param {ConsentEventsGetRequest} consentEventsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    consentEventsGet(consentEventsGetRequest: ConsentEventsGetRequest, options?: any): Promise<import("axios").AxiosResponse<ConsentEventsGetResponse, any>>;
    /**
     * Retrieves all existing CRB Bank Income and Base reports for the consumer in PDF format.  Response is PDF binary data. The `request_id` is returned in the `Plaid-Request-ID` header.
     * @summary Retrieve a PDF Reports
     * @param {ConsumerReportPDFGetRequest} consumerReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    consumerReportPdfGet(consumerReportPDFGetRequest: ConsumerReportPDFGetRequest, options?: any): Promise<import("axios").AxiosResponse<any, any>>;
    /**
     * `/cra/bank_income/create` creates a CRA report for income verification
     * @summary Create a CRA report for income verification
     * @param {CraBankIncomeCreateRequest} craBankIncomeCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craBankIncomeCreate(craBankIncomeCreateRequest: CraBankIncomeCreateRequest, options?: any): Promise<import("axios").AxiosResponse<CraBankIncomeCreateResponse, any>>;
    /**
     * `/cra/bank_income/get` returns the bank income report(s) for a specified user.
     * @summary Retrieve information from the bank accounts used for income verification
     * @param {CraBankIncomeGetRequest} craBankIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craBankIncomeGet(craBankIncomeGetRequest: CraBankIncomeGetRequest, options?: any): Promise<import("axios").AxiosResponse<CraBankIncomeGetResponse, any>>;
    /**
     * This endpoint allows you to retrieve the Base Report for your user, allowing you to receive comprehensive bank account and cash flow data. You should call this endpoint after you\'ve received a `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn\'t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.
     * @summary Retrieve a Base Report
     * @param {CraCheckReportBaseReportGetRequest} craCheckReportBaseReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craCheckReportBaseReportGet(craCheckReportBaseReportGetRequest: CraCheckReportBaseReportGetRequest, options?: any): Promise<import("axios").AxiosResponse<CraCheckReportBaseReportGetResponse, any>>;
    /**
     * This endpoint allows you to retrieve the Cashflow Insights report for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the insights, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `cra_cashflow_insights` product or have generated a report using `/cra/check_report/create`, we will generate the insights when you call this endpoint. In this case, you may optionally provide parameters under `options` to configure which insights you want to receive.
     * @summary Retrieve cash flow insights from your user\'s banking data
     * @param {CraCheckReportCashflowInsightsGetRequest} craCheckReportCashflowInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craCheckReportCashflowInsightsGet(craCheckReportCashflowInsightsGetRequest: CraCheckReportCashflowInsightsGetRequest, options?: any): Promise<import("axios").AxiosResponse<CraCheckReportCashflowInsightsGetResponse, any>>;
    /**
     * `/cra/check_report/create` creates a Consumer Report powered by Plaid Check. You can call this endpoint to create a new report if `consumer_report_permissible_purpose` was omitted during Link token creation. If you did provide a `consumer_report_permissible_purpose` during Link token creation, then Plaid Check will automatically begin creating a Consumer Report once the user completes the Link process, and it is not necessary to call `/cra/check_report/create` before retrieving the report.   `/cra/check_report/create` can also be used to refresh data in an existing report. A Consumer Report will last for 24 hours before expiring; you should call any `/get` endpoints on the report before it expires. If a report expires, you can call `/cra/check_report/create` again to re-generate it. Note that refreshing or regenerating a report is a billable event.
     * @summary Create a Consumer Report
     * @param {CraCheckReportCreateRequest} craCheckReportCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craCheckReportCreate(craCheckReportCreateRequest: CraCheckReportCreateRequest, options?: any): Promise<import("axios").AxiosResponse<CraCheckReportCreateResponse, any>>;
    /**
     * This endpoint allows you to retrieve the Income Insights report for your user.  You should call this endpoint after you\'ve received a `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.
     * @summary Retrieve cash flow information from your user\'s banks
     * @param {CraCheckReportIncomeInsightsGetRequest} craCheckReportIncomeInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craCheckReportIncomeInsightsGet(craCheckReportIncomeInsightsGetRequest: CraCheckReportIncomeInsightsGetRequest, options?: any): Promise<import("axios").AxiosResponse<CraCheckReportIncomeInsightsGetResponse, any>>;
    /**
     * This endpoint allows you to retrieve the Network Insights product for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `cra_network_attributes` product or have generated a report using `/cra/check_report/create`, we will generate the attributes when you call this endpoint.
     * @summary Retrieve network attributes for the user
     * @param {CraCheckReportNetworkInsightsGetRequest} craCheckReportNetworkInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craCheckReportNetworkInsightsGet(craCheckReportNetworkInsightsGetRequest: CraCheckReportNetworkInsightsGetRequest, options?: any): Promise<import("axios").AxiosResponse<CraCheckReportNetworkInsightsGetResponse, any>>;
    /**
     * This endpoint allows you to retrieve the Partner Insights report for your user. You should call this endpoint after you\'ve received the `CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn’t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.  If you did not initialize Link with the `credit_partner_insights` product or have generated a report using `/cra/check_report/create`, we will call our partners to generate the insights when you call this endpoint. In this case, you may optionally provide parameters under `options` to configure which insights you want to receive.
     * @summary Retrieve cash flow insights from partners
     * @param {CraCheckReportPartnerInsightsGetRequest} craCheckReportPartnerInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craCheckReportPartnerInsightsGet(craCheckReportPartnerInsightsGetRequest: CraCheckReportPartnerInsightsGetRequest, options?: any): Promise<import("axios").AxiosResponse<CraCheckReportPartnerInsightsGetResponse, any>>;
    /**
     * `/cra/check_report/pdf/get` retrieves the most recent Consumer Report in PDF format. By default, the most recent Base Report (if it exists) for the user will be returned. To request that the most recent Income Insights report be included in the PDF as well, use the `add-ons` field.
     * @summary Retrieve Consumer Reports as a PDF
     * @param {CraCheckReportPDFGetRequest} craCheckReportPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craCheckReportPdfGet(craCheckReportPDFGetRequest: CraCheckReportPDFGetRequest, options?: any): Promise<import("axios").AxiosResponse<any, any>>;
    /**
     * `/cra/loans/applications/register` registers loan applications and decisions.
     * @summary Register loan applications and decisions.
     * @param {CraLoansApplicationsRegisterRequest} craLoansApplicationsRegisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craLoansApplicationsRegister(craLoansApplicationsRegisterRequest: CraLoansApplicationsRegisterRequest, options?: any): Promise<import("axios").AxiosResponse<CraLoansApplicationsRegisterResponse, any>>;
    /**
     * `/cra/loans/register` registers a list of loans to their applicants.
     * @summary Register a list of loans to their applicants.
     * @param {CRALoansRegisterRequest} cRALoansRegisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craLoansRegister(cRALoansRegisterRequest: CRALoansRegisterRequest, options?: any): Promise<import("axios").AxiosResponse<CraLoansRegisterResponse, any>>;
    /**
     * `/cra/loans/unregister` indicates the loans have reached a final status and no further updates are expected.
     * @summary Unregister a list of loans.
     * @param {CraLoansUnregisterRequest} craLoansUnregisterRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craLoansUnregister(craLoansUnregisterRequest: CraLoansUnregisterRequest, options?: any): Promise<import("axios").AxiosResponse<CraLoanUnregisterResponse, any>>;
    /**
     * `/cra/loans/update` updates loan information such as the status and payment history.
     * @summary Updates loan data.
     * @param {CraLoansUpdateRequest} craLoansUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craLoansUpdate(craLoansUpdateRequest: CraLoansUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<CraLoansUpdateResponse, any>>;
    /**
     * This endpoint allows you to retrieve a Monitoring Insights report by passing in the `user_token` referred to in the webhook you received.
     * @summary Retrieve a Monitoring Insights Report
     * @param {CraMonitoringInsightsGetRequest} craMonitoringInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craMonitoringInsightsGet(craMonitoringInsightsGetRequest: CraMonitoringInsightsGetRequest, options?: any): Promise<import("axios").AxiosResponse<CraMonitoringInsightsGetResponse, any>>;
    /**
     * This endpoint allows you to subscribe to insights for a user\'s linked CRA items, which are updated every day (best-effort).
     * @summary Subscribe to Monitoring Insights
     * @param {CraMonitoringInsightsSubscribeRequest} craMonitoringInsightsSubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craMonitoringInsightsSubscribe(craMonitoringInsightsSubscribeRequest: CraMonitoringInsightsSubscribeRequest, options?: any): Promise<import("axios").AxiosResponse<CraMonitoringInsightsSubscribeResponse, any>>;
    /**
     * This endpoint allows you to unsubscribe from previously subscribed Monitoring Insights.
     * @summary Unsubscribe from Monitoring Insights
     * @param {CraMonitoringInsightsUnsubscribeRequest} craMonitoringInsightsUnsubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craMonitoringInsightsUnsubscribe(craMonitoringInsightsUnsubscribeRequest: CraMonitoringInsightsUnsubscribeRequest, options?: any): Promise<import("axios").AxiosResponse<CraMonitoringInsightsUnsubscribeResponse, any>>;
    /**
     * `/cra/partner_insights/get` returns cash flow insights for a specified user.
     * @summary Retrieve cash flow insights from the bank accounts used for income verification
     * @param {CraPartnerInsightsGetRequest} craPartnerInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    craPartnerInsightsGet(craPartnerInsightsGetRequest: CraPartnerInsightsGetRequest, options?: any): Promise<import("axios").AxiosResponse<CraPartnerInsightsGetResponse, any>>;
    /**
     * The `/payment_initiation/payment/token/create` endpoint has been deprecated. New Plaid customers will be unable to use this endpoint, and existing customers are encouraged to migrate to the newer, `link_token`-based flow. The recommended flow is to provide the `payment_id` to `/link/token/create`, which returns a `link_token` used to initialize Link.  The `/payment_initiation/payment/token/create` is used to create a `payment_token`, which can then be used in Link initialization to enter a payment initiation flow. You can only use a `payment_token` once. If this attempt fails, the end user aborts the flow, or the token expires, you will need to create a new payment token. Creating a new payment token does not require end user input.
     * @summary Create payment token
     * @param {PaymentInitiationPaymentTokenCreateRequest} paymentInitiationPaymentTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    createPaymentToken(paymentInitiationPaymentTokenCreateRequest: PaymentInitiationPaymentTokenCreateRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationPaymentTokenCreateResponse, any>>;
    /**
     * The `credit/asset_report/freddie_mac/get` endpoint retrieves the Asset Report in Freddie Mac\'s JSON format.
     * @summary Retrieve an Asset Report with Freddie Mac format. Only Freddie Mac can use this endpoint.
     * @param {{ [key: string]: object; }} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditAssetReportFreddieMacGet(requestBody: {
        [key: string]: object;
    }, options?: any): Promise<import("axios").AxiosResponse<AssetReportFreddieGetResponse, any>>;
    /**
     * Plaid can create an Audit Copy token of an Asset Report and/or Income Report to share with participating Government Sponsored Entity (GSE). If you participate in the Day 1 Certainty™ program, Plaid can supply an Audit Copy token directly to Fannie Mae on your behalf. An Audit Copy token contains the same underlying data as the Asset Report and/or Income Report (result of /credit/payroll_income/get).  Use the `/credit/audit_copy_token/create` endpoint to create an `audit_copy_token` and then pass that token to the GSE who needs access.
     * @summary Create Asset or Income Report Audit Copy Token
     * @param {CreditAuditCopyTokenCreateRequest} creditAuditCopyTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditAuditCopyTokenCreate(creditAuditCopyTokenCreateRequest: CreditAuditCopyTokenCreateRequest, options?: any): Promise<import("axios").AxiosResponse<CreditAuditCopyTokenCreateResponse, any>>;
    /**
     * The `/credit/audit_copy_token/update` endpoint updates an existing  Audit Copy Token by adding the report tokens in the `report_tokens` field to the `audit_copy_token`. If the Audit Copy Token already contains a report of a certain type, it will be replaced with the token provided in the `report_tokens` field.
     * @summary Update an Audit Copy Token
     * @param {CreditAuditCopyTokenUpdateRequest} creditAuditCopyTokenUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditAuditCopyTokenUpdate(creditAuditCopyTokenUpdateRequest: CreditAuditCopyTokenUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<CreditAuditCopyTokenUpdateResponse, any>>;
    /**
     * `/credit/bank_employment/get` returns the employment report(s) derived from bank transaction data for a specified user.
     * @summary Retrieve information from the bank accounts used for employment verification
     * @param {CreditBankEmploymentGetRequest} creditBankEmploymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditBankEmploymentGet(creditBankEmploymentGetRequest: CreditBankEmploymentGetRequest, options?: any): Promise<import("axios").AxiosResponse<CreditBankEmploymentGetResponse, any>>;
    /**
     * `/credit/bank_income/get` returns the bank income report(s) for a specified user. A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use [Multi-Item Link](https://plaid.com/docs/link/multi-item-link). To return older reports, use the `options.count` field.
     * @summary Retrieve information from the bank accounts used for income verification
     * @param {CreditBankIncomeGetRequest} creditBankIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditBankIncomeGet(creditBankIncomeGetRequest: CreditBankIncomeGetRequest, options?: any): Promise<import("axios").AxiosResponse<CreditBankIncomeGetResponse, any>>;
    /**
     * `/credit/bank_income/pdf/get` returns the most recent bank income report for a specified user in PDF format.  A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use [Multi-Item Link](https://plaid.com/docs/link/multi-item-link).
     * @summary Retrieve information from the bank accounts used for income verification in PDF format
     * @param {CreditBankIncomePDFGetRequest} creditBankIncomePDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditBankIncomePdfGet(creditBankIncomePDFGetRequest: CreditBankIncomePDFGetRequest, options?: any): Promise<import("axios").AxiosResponse<any, any>>;
    /**
     * `/credit/bank_income/refresh` refreshes the most recent bank income report data for a specific user. If the most recent bank income report is no longer valid (i.e. deleted), the endpoint will refresh the most recent valid report instead.
     * @summary Refresh a user\'s bank income information
     * @param {CreditBankIncomeRefreshRequest} creditBankIncomeRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditBankIncomeRefresh(creditBankIncomeRefreshRequest: CreditBankIncomeRefreshRequest, options?: any): Promise<import("axios").AxiosResponse<CreditBankIncomeRefreshResponse, any>>;
    /**
     * `/credit/bank_income/webhook/update` allows you to subscribe or unsubscribe a user for income webhook notifications. By default, all users start out unsubscribed.  If a user is subscribed, on significant changes to the user\'s income profile, you will receive a `BANK_INCOME_REFRESH_UPDATE` webhook, prompting you to refresh bank income data for the user.
     * @summary Subscribe and unsubscribe to proactive notifications for a user\'s income profile
     * @param {CreditBankIncomeWebhookUpdateRequest} creditBankIncomeWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditBankIncomeWebhookUpdate(creditBankIncomeWebhookUpdateRequest: CreditBankIncomeWebhookUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<CreditBankIncomeWebhookUpdateResponse, any>>;
    /**
     * `/credit/bank_statements/uploads/get` returns parsed data from bank statements uploaded by users as part of the Document Income flow. If your account is not enabled for Document Parsing, contact your account manager to request access.
     * @summary Retrieve data for a user\'s uploaded bank statements
     * @param {CreditBankStatementsUploadsGetRequest} creditBankStatementsUploadsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditBankStatementsUploadsGet(creditBankStatementsUploadsGetRequest: CreditBankStatementsUploadsGetRequest, options?: any): Promise<import("axios").AxiosResponse<CreditBankStatementsUploadsGetResponse, any>>;
    /**
     * `/credit/employment/get` returns a list of items with employment information from a user\'s payroll provider that was verified by an end user.
     * @summary Retrieve a summary of an individual\'s employment information
     * @param {CreditEmploymentGetRequest} creditEmploymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditEmploymentGet(creditEmploymentGetRequest: CreditEmploymentGetRequest, options?: any): Promise<import("axios").AxiosResponse<CreditEmploymentGetResponse, any>>;
    /**
     * The `credit/asset_report/freddie_mac/get` endpoint retrieves the Verification of Assets and Verification of Employment reports.
     * @summary Retrieve an Asset Report with Freddie Mac format (aka VOA - Verification Of Assets), and a Verification Of Employment (VOE) report if this one is available. Only Freddie Mac can use this endpoint.
     * @param {CreditFreddieMacReportsGetRequest} creditFreddieMacReportsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditFreddieMacReportsGet(creditFreddieMacReportsGetRequest: CreditFreddieMacReportsGetRequest, options?: any): Promise<import("axios").AxiosResponse<CreditFreddieMacReportsGetResponse, any>>;
    /**
     * This endpoint gets payroll income information for a specific user, either as a result of the user connecting to their payroll provider or uploading a pay related document.
     * @summary Retrieve a user\'s payroll information
     * @param {CreditPayrollIncomeGetRequest} creditPayrollIncomeGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditPayrollIncomeGet(creditPayrollIncomeGetRequest: CreditPayrollIncomeGetRequest, options?: any): Promise<import("axios").AxiosResponse<CreditPayrollIncomeGetResponse, any>>;
    /**
     * `/credit/payroll_income/parsing_config/update` updates the parsing configuration for a document income verification.
     * @summary Update the parsing configuration for a document income verification
     * @param {{ [key: string]: object; }} requestBody
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditPayrollIncomeParsingConfigUpdate(requestBody: {
        [key: string]: object;
    }, options?: any): Promise<import("axios").AxiosResponse<CreditPayrollIncomeParsingConfigUpdateResponse, any>>;
    /**
     * `/credit/payroll_income/precheck` is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification. If the user is eligible for digital verification, that information will be associated with the user token, and in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.  While all request fields are optional, providing `employer` data will increase the chance of receiving a useful result.  When testing in Sandbox, you can control the results by providing special test values in the `employer` and `access_tokens` fields. `employer_good` and `employer_bad` will result in `HIGH` and `LOW` confidence values, respectively. `employer_multi` will result in a `HIGH` confidence with multiple payroll options. Likewise, `access_good` and `access_bad` will result in `HIGH` and `LOW` confidence values, respectively. Any other value for `employer` and `access_tokens` in Sandbox will result in `UNKNOWN` confidence.
     * @summary Check income verification eligibility and optimize conversion
     * @param {CreditPayrollIncomePrecheckRequest} creditPayrollIncomePrecheckRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditPayrollIncomePrecheck(creditPayrollIncomePrecheckRequest: CreditPayrollIncomePrecheckRequest, options?: any): Promise<import("axios").AxiosResponse<CreditPayrollIncomePrecheckResponse, any>>;
    /**
     * `/credit/payroll_income/refresh` refreshes a given digital payroll income verification.
     * @summary Refresh a digital payroll income verification
     * @param {CreditPayrollIncomeRefreshRequest} creditPayrollIncomeRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditPayrollIncomeRefresh(creditPayrollIncomeRefreshRequest: CreditPayrollIncomeRefreshRequest, options?: any): Promise<import("axios").AxiosResponse<CreditPayrollIncomeRefreshResponse, any>>;
    /**
     * `/credit/payroll_income/risk_signals/get` can be used as part of the Document Income flow to assess a user-uploaded document for signs of potential fraud or tampering. It returns a risk score for each uploaded document that indicates the likelihood of the document being fraudulent, in addition to details on the individual risk signals contributing to the score.  To trigger risk signal generation for an Item, call `/link/token/create` with `parsing_config` set to include `risk_signals`, or call `/credit/payroll_income/parsing_config/update`. Once risk signal generation has been triggered, `/credit/payroll_income/risk_signals/get` can be called at any time after the `INCOME_VERIFICATION_RISK_SIGNALS` webhook has been fired.  `/credit/payroll_income/risk_signals/get` is offered as an add-on to Document Income and is billed separately. To request access to this endpoint, submit a product access request or contact your Plaid account manager.
     * @summary Retrieve fraud insights for a user\'s manually uploaded document(s).
     * @param {CreditPayrollIncomeRiskSignalsGetRequest} creditPayrollIncomeRiskSignalsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditPayrollIncomeRiskSignalsGet(creditPayrollIncomeRiskSignalsGetRequest: CreditPayrollIncomeRiskSignalsGetRequest, options?: any): Promise<import("axios").AxiosResponse<CreditPayrollIncomeRiskSignalsGetResponse, any>>;
    /**
     * Plaid can share an Asset Report directly with a participating third party on your behalf. The shared Asset Report is the exact same Asset Report originally created in `/asset_report/create`.  To grant a third party access to an Asset Report, use the `/credit/relay/create` endpoint to create a `relay_token` and then pass that token to your third party. Each third party has its own `secondary_client_id`; for example, `ce5bd328dcd34123456`. You\'ll need to create a separate `relay_token` for each third party that needs access to the report on your behalf.
     * @summary Create a relay token to share an Asset Report with a partner client
     * @param {CreditRelayCreateRequest} creditRelayCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditRelayCreate(creditRelayCreateRequest: CreditRelayCreateRequest, options?: any): Promise<import("axios").AxiosResponse<CreditRelayCreateResponse, any>>;
    /**
     * `/credit/relay/get` allows third parties to receive a report that was shared with them, using a `relay_token` that was created by the report owner.
     * @summary Retrieve the reports associated with a relay token that was shared with you
     * @param {CreditRelayGetRequest} creditRelayGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditRelayGet(creditRelayGetRequest: CreditRelayGetRequest, options?: any): Promise<import("axios").AxiosResponse<AssetReportGetResponse, any>>;
    /**
     * `/credit/relay/pdf/get` allows third parties to receive a pdf report that was shared with them, using a `relay_token` that was created by the report owner.  The `/credit/relay/pdf/get` endpoint retrieves the Asset Report in PDF format. Before calling `/credit/relay/pdf/get`, you must first create the Asset Report using `/credit/relay/create` and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.  The response to `/credit/relay/pdf/get` is the PDF binary data. The `request_id` is returned in the `Plaid-Request-ID` header.  [View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf).
     * @summary Retrieve the pdf reports associated with a relay token that was shared with you (beta)
     * @param {CreditRelayPDFGetRequest} creditRelayPDFGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditRelayPdfGet(creditRelayPDFGetRequest: CreditRelayPDFGetRequest, options?: any): Promise<import("axios").AxiosResponse<any, any>>;
    /**
     * The `/credit/relay/refresh` endpoint allows third parties to refresh a report that was relayed to them, using a `relay_token` that was created by the report owner. A new report will be created with the original report parameters, but with the most recent data available based on the `days_requested` value of the original report.
     * @summary Refresh a report of a relay token
     * @param {CreditRelayRefreshRequest} creditRelayRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditRelayRefresh(creditRelayRefreshRequest: CreditRelayRefreshRequest, options?: any): Promise<import("axios").AxiosResponse<CreditRelayRefreshResponse, any>>;
    /**
     * The `/credit/relay/remove` endpoint allows you to invalidate a `relay_token`. The third party holding the token will no longer be able to access or refresh the reports which the `relay_token` gives access to. The original report, associated Items, and other relay tokens that provide access to the same report are not affected and will remain accessible after removing the given `relay_token`.
     * @summary Remove relay token
     * @param {CreditRelayRemoveRequest} creditRelayRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditRelayRemove(creditRelayRemoveRequest: CreditRelayRemoveRequest, options?: any): Promise<import("axios").AxiosResponse<CreditRelayRemoveResponse, any>>;
    /**
     * The `/credit/audit_copy_token/remove` endpoint allows you to remove an Audit Copy. Removing an Audit Copy invalidates the `audit_copy_token` associated with it, meaning both you and any third parties holding the token will no longer be able to use it to access Report data. Items associated with the Report data and other Audit Copies of it are not affected and will remain accessible after removing the given Audit Copy.
     * @summary Remove an Audit Copy token
     * @param {CreditAuditCopyTokenRemoveRequest} creditAuditCopyTokenRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditReportAuditCopyRemove(creditAuditCopyTokenRemoveRequest: CreditAuditCopyTokenRemoveRequest, options?: any): Promise<import("axios").AxiosResponse<CreditAuditCopyTokenRemoveResponse, any>>;
    /**
     * This endpoint can be used for your end users after they complete the Link flow. This endpoint returns a list of Link sessions that your user completed, where each session includes the results from the Link flow.  These results include details about the Item that was created and some product related metadata (showing, for example, whether the user finished the bank income verification step).
     * @summary Retrieve Link sessions for your user
     * @param {CreditSessionsGetRequest} creditSessionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    creditSessionsGet(creditSessionsGetRequest: CreditSessionsGetRequest, options?: any): Promise<import("axios").AxiosResponse<CreditSessionsGetResponse, any>>;
    /**
     * The `/dashboard_user/get` endpoint provides details (such as email address) about a specific Dashboard user based on the `dashboard_user_id` field, which is returned in the `audit_trail` object of certain Monitor and Beacon endpoints. This can be used to identify the specific reviewer who performed a Dashboard action.
     * @summary Retrieve a dashboard user
     * @param {DashboardUserGetRequest} dashboardUserGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    dashboardUserGet(dashboardUserGetRequest: DashboardUserGetRequest, options?: any): Promise<import("axios").AxiosResponse<DashboardUserGetResponse, any>>;
    /**
     * The `/dashboard_user/list` endpoint provides details (such as email address) all Dashboard users associated with your account. This can use used to audit or track the list of reviewers for Monitor, Beacon, and Identity Verification products.
     * @summary List dashboard users
     * @param {DashboardUserListRequest} dashboardUserListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    dashboardUserList(dashboardUserListRequest: DashboardUserListRequest, options?: any): Promise<import("axios").AxiosResponse<DashboardUserListResponse, any>>;
    /**
     * This endpoint provides an alternative to `/deposit_switch/create` for customers who have not yet fully integrated with Plaid Exchange. Like `/deposit_switch/create`, it creates a deposit switch entity that will be persisted throughout the lifecycle of the switch.
     * @summary (Deprecated) Create a deposit switch without using Plaid Exchange
     * @param {DepositSwitchAltCreateRequest} depositSwitchAltCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    depositSwitchAltCreate(depositSwitchAltCreateRequest: DepositSwitchAltCreateRequest, options?: any): Promise<import("axios").AxiosResponse<DepositSwitchAltCreateResponse, any>>;
    /**
     * This endpoint creates a deposit switch entity that will be persisted throughout the lifecycle of the switch.
     * @summary (Deprecated) Create a deposit switch
     * @param {DepositSwitchCreateRequest} depositSwitchCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    depositSwitchCreate(depositSwitchCreateRequest: DepositSwitchCreateRequest, options?: any): Promise<import("axios").AxiosResponse<DepositSwitchCreateResponse, any>>;
    /**
     * This endpoint returns information related to how the user has configured their payroll allocation and the state of the switch. You can use this information to build logic related to the user\'s direct deposit allocation preferences.
     * @summary (Deprecated) Retrieve a deposit switch
     * @param {DepositSwitchGetRequest} depositSwitchGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    depositSwitchGet(depositSwitchGetRequest: DepositSwitchGetRequest, options?: any): Promise<import("axios").AxiosResponse<DepositSwitchGetResponse, any>>;
    /**
     * In order for the end user to take action, you will need to create a public token representing the deposit switch. This token is used to initialize Link. It can be used one time and expires after 30 minutes.
     * @summary (Deprecated) Create a deposit switch token
     * @param {DepositSwitchTokenCreateRequest} depositSwitchTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    depositSwitchTokenCreate(depositSwitchTokenCreateRequest: DepositSwitchTokenCreateRequest, options?: any): Promise<import("axios").AxiosResponse<DepositSwitchTokenCreateResponse, any>>;
    /**
     * `/employers/search` allows you the ability to search Plaid’s database of known employers, for use with Deposit Switch. You can use this endpoint to look up a user\'s employer in order to confirm that they are supported. Users with non-supported employers can then be routed out of the Deposit Switch flow.  The data in the employer database is currently limited. As the Deposit Switch and Income products progress through their respective beta periods, more employers are being regularly added. Because the employer database is frequently updated, we recommend that you do not cache or store data from this endpoint for more than a day.
     * @summary Search employer database
     * @param {EmployersSearchRequest} employersSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    employersSearch(employersSearchRequest: EmployersSearchRequest, options?: any): Promise<import("axios").AxiosResponse<EmployersSearchResponse, any>>;
    /**
     * `/employment/verification/get` returns a list of employments through a user payroll that was verified by an end user.  This endpoint has been deprecated; new integrations should use `/credit/employment/get` instead.
     * @summary (Deprecated) Retrieve a summary of an individual\'s employment information
     * @param {EmploymentVerificationGetRequest} employmentVerificationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    employmentVerificationGet(employmentVerificationGetRequest: EmploymentVerificationGetRequest, options?: any): Promise<import("axios").AxiosResponse<EmploymentVerificationGetResponse, any>>;
    /**
     * A generic webhook receiver endpoint for FDX Event Notifications
     * @summary Webhook receiver for fdx notifications
     * @param {FDXNotification} fDXNotification
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    fdxNotifications(fDXNotification: FDXNotification, options?: any): Promise<import("axios").AxiosResponse<void, any>>;
    /**
     * Get a specific recipient
     * @summary Get Recipient
     * @param {string} recipientId Recipient Identifier. Uniquely identifies the recipient
     * @param {string} [oAUTHSTATEID] The value that is passed into the OAuth URI \&#39;state\&#39; query parameter.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    getRecipient(recipientId: string, oAUTHSTATEID?: string, options?: any): Promise<import("axios").AxiosResponse<GetRecipientResponse, any>>;
    /**
     * Returns a list of Recipients
     * @summary Get Recipients
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    getRecipients(options?: any): Promise<import("axios").AxiosResponse<GetRecipientsResponse, any>>;
    /**
     * Use `/identity/documents/uploads/get` to retrieve identity details when using [Identity Document Upload](https://plaid.com/docs/identity/identity-document-upload/).
     * @summary Returns uploaded document identity
     * @param {IdentityDocumentsUploadsGetRequest} identityDocumentsUploadsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    identityDocumentsUploadsGet(identityDocumentsUploadsGetRequest: IdentityDocumentsUploadsGetRequest, options?: any): Promise<import("axios").AxiosResponse<IdentityDocumentsUploadsGetResponse, any>>;
    /**
     * The `/identity/get` endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses. Only name data is guaranteed to be returned; other fields will be empty arrays if not provided by the institution.  Note: In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29).
     * @summary Retrieve identity data
     * @param {IdentityGetRequest} identityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    identityGet(identityGetRequest: IdentityGetRequest, options?: any): Promise<import("axios").AxiosResponse<IdentityGetResponse, any>>;
    /**
     * The `/identity/match` endpoint generates a match score, which indicates how well the provided identity data matches the identity information on file with the account holder\'s financial institution.  Fields within the `balances` object will always be null when retrieved by `/identity/match`. Instead, use the free `/accounts/get` endpoint to request balance cached data, or `/accounts/balance/get` for real-time data.
     * @summary Retrieve identity match score
     * @param {IdentityMatchRequest} identityMatchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    identityMatch(identityMatchRequest: IdentityMatchRequest, options?: any): Promise<import("axios").AxiosResponse<IdentityMatchResponse, any>>;
    /**
     * `/identity/refresh` is an optional endpoint for users of the Identity product. It initiates an on-demand extraction to fetch the most up to date Identity information from the Financial Institution. This on-demand extraction takes place in addition to the periodic extractions that automatically occur for any Identity-enabled Item. If changes to Identity are discovered after calling `/identity/refresh`, Plaid will fire a webhook [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/identity/#default_update).  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/identity/refresh` is offered as an add-on to Identity and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh identity data
     * @param {IdentityRefreshRequest} identityRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    identityRefresh(identityRefreshRequest: IdentityRefreshRequest, options?: any): Promise<import("axios").AxiosResponse<IdentityRefreshResponse, any>>;
    /**
     * Try to autofill an Identity Verification based of the provided phone number, date of birth and country of residence.
     * @summary Create autofill for an Identity Verification
     * @param {IdentityVerificationAutofillCreateRequest} identityVerificationAutofillCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    identityVerificationAutofillCreate(identityVerificationAutofillCreateRequest: IdentityVerificationAutofillCreateRequest, options?: any): Promise<import("axios").AxiosResponse<IdentityVerificationAutofillCreateResponse, any>>;
    /**
     * Create a new Identity Verification for the user specified by the `client_user_id` field. The requirements and behavior of the verification are determined by the `template_id` provided. If you don\'t know whether the associated user already has an active Identity Verification, you can specify `\"is_idempotent\": true` in the request body. With idempotency enabled, a new Identity Verification will only be created if one does not already exist for the associated `client_user_id` and `template_id`. If an Identity Verification is found, it will be returned unmodified with an `200 OK` HTTP status code.  You can also use this endpoint to supply information you already have collected about the user; if any of these fields are specified, the screens prompting the user to enter them will be skipped during the Link flow.
     * @summary Create a new Identity Verification
     * @param {IdentityVerificationCreateRequest} identityVerificationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    identityVerificationCreate(identityVerificationCreateRequest: IdentityVerificationCreateRequest, options?: any): Promise<import("axios").AxiosResponse<IdentityVerificationCreateResponse, any>>;
    /**
     * Retrieve a previously created Identity Verification.
     * @summary Retrieve Identity Verification
     * @param {IdentityVerificationGetRequest} identityVerificationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    identityVerificationGet(identityVerificationGetRequest: IdentityVerificationGetRequest, options?: any): Promise<import("axios").AxiosResponse<IdentityVerificationGetResponse, any>>;
    /**
     * Filter and list Identity Verifications created by your account
     * @summary List Identity Verifications
     * @param {IdentityVerificationListRequest} identityVerificationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    identityVerificationList(identityVerificationListRequest: IdentityVerificationListRequest, options?: any): Promise<import("axios").AxiosResponse<IdentityVerificationListResponse, any>>;
    /**
     * Allow a customer to retry their Identity Verification
     * @summary Retry an Identity Verification
     * @param {IdentityVerificationRetryRequest} identityVerificationRetryRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    identityVerificationRetry(identityVerificationRetryRequest: IdentityVerificationRetryRequest, options?: any): Promise<import("axios").AxiosResponse<IdentityVerificationRetryResponse, any>>;
    /**
     * `/income/verification/create` begins the income verification process by returning an `income_verification_id`. You can then provide the `income_verification_id` to `/link/token/create` under the `income_verification` parameter in order to create a Link instance that will prompt the user to go through the income verification flow. Plaid will fire an `INCOME` webhook once the user completes the Payroll Income flow, or when the uploaded documents in the Document Income flow have finished processing.
     * @summary (Deprecated) Create an income verification instance
     * @param {IncomeVerificationCreateRequest} incomeVerificationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    incomeVerificationCreate(incomeVerificationCreateRequest: IncomeVerificationCreateRequest, options?: any): Promise<import("axios").AxiosResponse<IncomeVerificationCreateResponse, any>>;
    /**
     * `/income/verification/documents/download` provides the ability to download the source documents associated with the verification.  If Document Income was used, the documents will be those the user provided in Link. For Payroll Income, the most recent files available for download from the payroll provider will be available from this endpoint.  The response to `/income/verification/documents/download` is a ZIP file in binary data. If a `document_id` is passed, a single document will be contained in this file. If not, the response will contain all documents associated with the verification.  The `request_id` is returned in the `Plaid-Request-ID` header.
     * @summary (Deprecated) Download the original documents used for income verification
     * @param {IncomeVerificationDocumentsDownloadRequest} incomeVerificationDocumentsDownloadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    incomeVerificationDocumentsDownload(incomeVerificationDocumentsDownloadRequest: IncomeVerificationDocumentsDownloadRequest, options?: any): Promise<import("axios").AxiosResponse<any, any>>;
    /**
     * `/income/verification/paystubs/get` returns the information collected from the paystubs that were used to verify an end user\'s income. It can be called once the status of the verification has been set to `VERIFICATION_STATUS_PROCESSING_COMPLETE`, as reported by the `INCOME: verification_status` webhook. Attempting to call the endpoint before verification has been completed will result in an error.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.
     * @summary (Deprecated) Retrieve information from the paystubs used for income verification
     * @param {IncomeVerificationPaystubsGetRequest} incomeVerificationPaystubsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    incomeVerificationPaystubsGet(incomeVerificationPaystubsGetRequest: IncomeVerificationPaystubsGetRequest, options?: any): Promise<import("axios").AxiosResponse<IncomeVerificationPaystubsGetResponse, any>>;
    /**
     * `/income/verification/precheck` is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification and returns a `precheck_id` that can be provided to `/link/token/create`. If the user is eligible for digital verification, providing the `precheck_id` in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the `precheck_id` can still be provided to `/link/token/create` and the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.  While all request fields are optional, providing either `employer` or `transactions_access_tokens` data will increase the chance of receiving a useful result.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/precheck` instead.
     * @summary (Deprecated) Check digital income verification eligibility and optimize conversion
     * @param {IncomeVerificationPrecheckRequest} incomeVerificationPrecheckRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    incomeVerificationPrecheck(incomeVerificationPrecheckRequest: IncomeVerificationPrecheckRequest, options?: any): Promise<import("axios").AxiosResponse<IncomeVerificationPrecheckResponse, any>>;
    /**
     * `/income/verification/taxforms/get` returns the information collected from forms that were used to verify an end user\'\'s income. It can be called once the status of the verification has been set to `VERIFICATION_STATUS_PROCESSING_COMPLETE`, as reported by the `INCOME: verification_status` webhook. Attempting to call the endpoint before verification has been completed will result in an error.  This endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.
     * @summary (Deprecated) Retrieve information from the tax documents used for income verification
     * @param {IncomeVerificationTaxformsGetRequest} incomeVerificationTaxformsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    incomeVerificationTaxformsGet(incomeVerificationTaxformsGetRequest: IncomeVerificationTaxformsGetRequest, options?: any): Promise<import("axios").AxiosResponse<IncomeVerificationTaxformsGetResponse, any>>;
    /**
     * Returns a JSON response containing details on all financial institutions currently supported by Plaid. Because Plaid supports thousands of institutions, results are paginated.  If there is no overlap between an institution’s enabled products and a client’s enabled products, then the institution will be filtered out from the response. As a result, the number of institutions returned may not match the count specified in the call.
     * @summary Get details of all supported institutions
     * @param {InstitutionsGetRequest} institutionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    institutionsGet(institutionsGetRequest: InstitutionsGetRequest, options?: any): Promise<import("axios").AxiosResponse<InstitutionsGetResponse, any>>;
    /**
     * Returns a JSON response containing details on a specified financial institution currently supported by Plaid.  Versioning note: API versions 2019-05-29 and earlier allow use of the `public_key` parameter instead of the `client_id` and `secret` to authenticate to this endpoint. The `public_key` has been deprecated; all customers are encouraged to use `client_id` and `secret` instead.
     * @summary Get details of an institution
     * @param {InstitutionsGetByIdRequest} institutionsGetByIdRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    institutionsGetById(institutionsGetByIdRequest: InstitutionsGetByIdRequest, options?: any): Promise<import("axios").AxiosResponse<InstitutionsGetByIdResponse, any>>;
    /**
     * Returns a JSON response containing details for institutions that match the query parameters, up to a maximum of ten institutions per query.  Versioning note: API versions 2019-05-29 and earlier allow use of the `public_key` parameter instead of the `client_id` and `secret` parameters to authenticate to this endpoint. The `public_key` parameter has since been deprecated; all customers are encouraged to use `client_id` and `secret` instead.
     * @summary Search institutions
     * @param {InstitutionsSearchRequest} institutionsSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    institutionsSearch(institutionsSearchRequest: InstitutionsSearchRequest, options?: any): Promise<import("axios").AxiosResponse<InstitutionsSearchResponse, any>>;
    /**
     * The `/investments/auth/get` endpoint allows developers to receive user-authorized data to facilitate the transfer of holdings
     * @summary Get data needed to authorize an investments transfer
     * @param {InvestmentsAuthGetRequest} investmentsAuthGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    investmentsAuthGet(investmentsAuthGetRequest: InvestmentsAuthGetRequest, options?: any): Promise<import("axios").AxiosResponse<InvestmentsAuthGetResponse, any>>;
    /**
     * The `/investments/holdings/get` endpoint allows developers to receive user-authorized stock position data for `investment`-type accounts.
     * @summary Get Investment holdings
     * @param {InvestmentsHoldingsGetRequest} investmentsHoldingsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    investmentsHoldingsGet(investmentsHoldingsGetRequest: InvestmentsHoldingsGetRequest, options?: any): Promise<import("axios").AxiosResponse<InvestmentsHoldingsGetResponse, any>>;
    /**
     * `/investments/refresh` is an optional endpoint for users of the Investments product. It initiates an on-demand extraction to fetch the newest investment holdings and transactions for an Item. This on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Investments-enabled Item. If changes to investments are discovered after calling `/investments/refresh`, Plaid will fire webhooks: [`HOLDINGS: DEFAULT_UPDATE`](https://plaid.com/docs/api/products/investments/#holdings-default_update) if any new holdings are detected, and [`INVESTMENTS_TRANSACTIONS: DEFAULT_UPDATE`](https://plaid.com/docs/api/products/investments/#investments_transactions-default_update) if any new investment transactions are detected. This webhook will typically not fire in the Sandbox environment, due to the lack of dynamic investment transactions and holdings data. To test this webhook in Sandbox, call `/sandbox/item/fire_webhook`. Updated holdings and investment transactions can be fetched by calling `/investments/holdings/get` and `/investments/transactions/get`. Note that the `/investments/refresh` endpoint is not supported by all institutions. If called on an Item from an institution that does not support this functionality, it will return a `PRODUCT_NOT_SUPPORTED` error.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/investments/refresh` is offered as an add-on to Investments and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh investment data
     * @param {InvestmentsRefreshRequest} investmentsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    investmentsRefresh(investmentsRefreshRequest: InvestmentsRefreshRequest, options?: any): Promise<import("axios").AxiosResponse<InvestmentsRefreshResponse, any>>;
    /**
     * The `/investments/transactions/get` endpoint allows developers to retrieve up to 24 months of user-authorized transaction data for investment accounts.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Due to the potentially large number of investment transactions associated with an Item, results are paginated. Manipulate the count and offset parameters in conjunction with the `total_investment_transactions` response body field to fetch all available investment transactions.  Note that Investments does not have a webhook to indicate when initial transaction data has loaded (unless you use the `async_update` option). Instead, if transactions data is not ready when `/investments/transactions/get` is first called, Plaid will wait for the data. For this reason, calling `/investments/transactions/get` immediately after Link may take up to one to two minutes to return.  Data returned by the asynchronous investments extraction flow (when `async_update` is set to true) may not be immediately available to `/investments/transactions/get`. To be alerted when the data is ready to be fetched, listen for the `HISTORICAL_UPDATE` webhook. If no investments history is ready when `/investments/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.
     * @summary Get investment transactions
     * @param {InvestmentsTransactionsGetRequest} investmentsTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    investmentsTransactionsGet(investmentsTransactionsGetRequest: InvestmentsTransactionsGetRequest, options?: any): Promise<import("axios").AxiosResponse<InvestmentsTransactionsGetResponse, any>>;
    /**
     * Retrieve detailed information about a specific `Issue`. This endpoint returns a single `Issue` object.
     * @summary Get an Issue
     * @param {IssuesGetRequest} issuesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    issuesGet(issuesGetRequest: IssuesGetRequest, options?: any): Promise<import("axios").AxiosResponse<IssuesGetResponse, any>>;
    /**
     * Search for an issue associated with one of the following identifiers:  `item_id`, `link_session_id` or Link session `request_id`.  This endpoint returns a list of `Issue` objects, with an empty list indicating that no issues are associated with the provided identifier. At least one of the identifiers must be provided to perform the search.
     * @summary Search for an Issue
     * @param {IssuesSearchRequest} issuesSearchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    issuesSearch(issuesSearchRequest: IssuesSearchRequest, options?: any): Promise<import("axios").AxiosResponse<IssuesSearchResponse, any>>;
    /**
     * Allows a user to subscribe to updates on a specific `Issue` using a POST method. Subscribers will receive webhook notifications when the issue status changes, particularly when resolved.
     * @summary Subscribe to an Issue
     * @param {IssuesSubscribeRequest} issuesSubscribeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    issuesSubscribe(issuesSubscribeRequest: IssuesSubscribeRequest, options?: any): Promise<import("axios").AxiosResponse<IssuesSubscribeResponse, any>>;
    /**
     * By default, the `access_token` associated with an Item does not expire and should be stored in a persistent, secure manner.  You can use the `/item/access_token/invalidate` endpoint to rotate the `access_token` associated with an Item. The endpoint returns a new `access_token` and immediately invalidates the previous `access_token`.
     * @summary Invalidate access_token
     * @param {ItemAccessTokenInvalidateRequest} itemAccessTokenInvalidateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    itemAccessTokenInvalidate(itemAccessTokenInvalidateRequest: ItemAccessTokenInvalidateRequest, options?: any): Promise<import("axios").AxiosResponse<ItemAccessTokenInvalidateResponse, any>>;
    /**
     * List a historical log of user consent events
     * @summary List a historical log of user consent events
     * @param {ItemActivityListRequest} itemActivityListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    itemActivityList(itemActivityListRequest: ItemActivityListRequest, options?: any): Promise<import("axios").AxiosResponse<ItemActivityListResponse, any>>;
    /**
     * List a user’s connected applications
     * @summary List a user’s connected applications
     * @param {ItemApplicationListRequest} itemApplicationListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    itemApplicationList(itemApplicationListRequest: ItemApplicationListRequest, options?: any): Promise<import("axios").AxiosResponse<ItemApplicationListResponse, any>>;
    /**
     * Enable consumers to update product access on selected accounts for an application.
     * @summary Update the scopes of access for a particular application
     * @param {ItemApplicationScopesUpdateRequest} itemApplicationScopesUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    itemApplicationScopesUpdate(itemApplicationScopesUpdateRequest: ItemApplicationScopesUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<ItemApplicationScopesUpdateResponse, any>>;
    /**
     * Unlink a user’s connected application. On an unlink request, Plaid will immediately revoke the Application’s access to the User’s data.  The User will have to redo the OAuth authentication process in order to restore functionality.  This endpoint only removes ongoing data access permissions, therefore the User will need to reach out to the Application itself in order to disable and delete their account and delete any data that the Application already received (if the Application does not do so by default).  This endpoint should be called in real time as the User is unlinking an Application, and should not be batched in order to ensure that the change is reflected as soon as possible.
     * @summary Unlink a user’s connected application
     * @param {ItemApplicationUnlinkRequest} itemApplicationUnlinkRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    itemApplicationUnlink(itemApplicationUnlinkRequest: ItemApplicationUnlinkRequest, options?: any): Promise<import("axios").AxiosResponse<ItemApplicationUnlinkResponse, any>>;
    /**
     * Note: As of July 2020, the `/item/public_token/create` endpoint is deprecated. Instead, use `/link/token/create` with an `access_token` to create a Link token for use with [update mode](https://plaid.com/docs/link/update-mode).  If you need your user to take action to restore or resolve an error associated with an Item, generate a public token with the `/item/public_token/create` endpoint and then initialize Link with that `public_token`.  A `public_token` is one-time use and expires after 30 minutes. You use a `public_token` to initialize Link in [update mode](https://plaid.com/docs/link/update-mode) for a particular Item. You can generate a `public_token` for an Item even if you did not use Link to create the Item originally.  The `/item/public_token/create` endpoint is **not** used to create your initial `public_token`. If you have not already received an `access_token` for a specific Item, use Link to obtain your `public_token` instead. See the [Quickstart](https://plaid.com/docs/quickstart) for more information.
     * @summary Create public token
     * @param {ItemPublicTokenCreateRequest} itemPublicTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    itemCreatePublicToken(itemPublicTokenCreateRequest: ItemPublicTokenCreateRequest, options?: any): Promise<import("axios").AxiosResponse<ItemPublicTokenCreateResponse, any>>;
    /**
     * Returns information about the status of an Item.
     * @summary Retrieve an Item
     * @param {ItemGetRequest} itemGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    itemGet(itemGetRequest: ItemGetRequest, options?: any): Promise<import("axios").AxiosResponse<ItemGetResponse, any>>;
    /**
     * `/item/import` creates an Item via your Plaid Exchange Integration and returns an `access_token`. As part of an `/item/import` request, you will include a User ID (`user_auth.user_id`) and Authentication Token (`user_auth.auth_token`) that enable data aggregation through your Plaid Exchange API endpoints. These authentication principals are to be chosen by you.  Upon creating an Item via `/item/import`, Plaid will automatically begin an extraction of that Item through the Plaid Exchange infrastructure you have already integrated.
     * @summary Import Item
     * @param {ItemImportRequest} itemImportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    itemImport(itemImportRequest: ItemImportRequest, options?: any): Promise<import("axios").AxiosResponse<ItemImportResponse, any>>;
    /**
     * Exchange a Link `public_token` for an API `access_token`. Link hands off the `public_token` client-side via the `onSuccess` callback once a user has successfully created an Item. The `public_token` is ephemeral and expires after 30 minutes. An `access_token` does not expire, but can be revoked by calling `/item/remove`.  The response also includes an `item_id` that should be stored with the `access_token`. The `item_id` is used to identify an Item in a webhook. The `item_id` can also be retrieved by making an `/item/get` request.
     * @summary Exchange public token for an access token
     * @param {ItemPublicTokenExchangeRequest} itemPublicTokenExchangeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    itemPublicTokenExchange(itemPublicTokenExchangeRequest: ItemPublicTokenExchangeRequest, options?: any): Promise<import("axios").AxiosResponse<ItemPublicTokenExchangeResponse, any>>;
    /**
     * The `/item/remove` endpoint allows you to remove an Item. Once removed, the `access_token`, as well as any processor tokens or bank account tokens associated with the Item, is no longer valid and cannot be used to access any data that was associated with the Item.   Calling `/item/remove` is a recommended best practice when offboarding users or if a user chooses to disconnect an account linked via Plaid. For subscription products, such as Transactions, Liabilities, and Investments, calling `/item/remove` is required to end subscription billing for the Item. For money movement products such as Auth and Transfer, if the Item is at an institution that uses Tokenized Account Numbers (TANs), such as Chase or PNC, calling `/item/remove` will invalidate the TAN, and subsequent ACH transfer attempts using that TAN will be returned.  In Limited Production, calling `/item/remove` does not impact the number of remaining Limited Production Items you have available.  Removing an Item does not affect any Asset Reports or Audit Copies you have already created, which will remain accessible until you remove access to them specifically using the `/asset_report/remove` endpoint.  Also note that for certain OAuth-based institutions, an Item removed via `/item/remove` may still show as an active connection in the institution\'s OAuth permission manager.  API versions 2019-05-29 and earlier return a `removed` boolean as part of the response.
     * @summary Remove an Item
     * @param {ItemRemoveRequest} itemRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    itemRemove(itemRemoveRequest: ItemRemoveRequest, options?: any): Promise<import("axios").AxiosResponse<ItemRemoveResponse, any>>;
    /**
     * The POST `/item/webhook/update` allows you to update the webhook URL associated with an Item. This request triggers a [`WEBHOOK_UPDATE_ACKNOWLEDGED`](https://plaid.com/docs/api/items/#webhook_update_acknowledged) webhook to the newly specified webhook URL.
     * @summary Update Webhook URL
     * @param {ItemWebhookUpdateRequest} itemWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    itemWebhookUpdate(itemWebhookUpdateRequest: ItemWebhookUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<ItemWebhookUpdateResponse, any>>;
    /**
     * The `/liabilities/get` endpoint returns various details about an Item with loan or credit accounts. Liabilities data is available primarily for US financial institutions, with some limited coverage of Canadian institutions. Currently supported account types are account type `credit` with account subtype `credit card` or `paypal`, and account type `loan` with account subtype `student` or `mortgage`. To limit accounts listed in Link to types and subtypes supported by Liabilities, you can use the `account_filters` parameter when [creating a Link token](https://plaid.com/docs/api/link/#linktokencreate).  The types of information returned by Liabilities can include balances and due dates, loan terms, and account details such as original loan amount and guarantor. Data is refreshed approximately once per day; the latest data can be retrieved by calling `/liabilities/get`.
     * @summary Retrieve Liabilities data
     * @param {LiabilitiesGetRequest} liabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    liabilitiesGet(liabilitiesGetRequest: LiabilitiesGetRequest, options?: any): Promise<import("axios").AxiosResponse<LiabilitiesGetResponse, any>>;
    /**
     * Use the `/link_delivery/create` endpoint to create a Hosted Link session.
     * @summary Create Hosted Link session
     * @param {LinkDeliveryCreateRequest} linkDeliveryCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    linkDeliveryCreate(linkDeliveryCreateRequest: LinkDeliveryCreateRequest, options?: any): Promise<import("axios").AxiosResponse<LinkDeliveryCreateResponse, any>>;
    /**
     * Use the `/link_delivery/get` endpoint to get the status of a Hosted Link session.
     * @summary Get Hosted Link session
     * @param {LinkDeliveryGetRequest} linkDeliveryGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    linkDeliveryGet(linkDeliveryGetRequest: LinkDeliveryGetRequest, options?: any): Promise<import("axios").AxiosResponse<LinkDeliveryGetResponse, any>>;
    /**
     * Exchange an OAuth `link_correlation_id` for the corresponding `link_token`. The `link_correlation_id` is only available for \'payment_initiation\' products and is provided to the client via the OAuth `redirect_uri` as a query parameter. The `link_correlation_id` is ephemeral and expires in a brief period, after which it can no longer be exchanged for the \'link_token\'.
     * @summary Exchange the Link Correlation Id for a Link Token
     * @param {LinkOAuthCorrelationIdExchangeRequest} linkOAuthCorrelationIdExchangeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    linkOauthCorrelationIdExchange(linkOAuthCorrelationIdExchangeRequest: LinkOAuthCorrelationIdExchangeRequest, options?: any): Promise<import("axios").AxiosResponse<LinkOAuthCorrelationIdExchangeResponse, any>>;
    /**
     * The `/link/token/create` endpoint creates a `link_token`, which is required as a parameter when initializing Link. Once Link has been initialized, it returns a `public_token`. For most Plaid products, the `public_token` is saved and exchanged for an `access_token` via `/item/public_token/exchange` as part of the main Link flow. For more details, see the [Link flow overview](https://plaid.com/docs/link/#link-flow-overview).  A `link_token` generated by `/link/token/create` is also used to initialize other Link flows, such as the [update mode](https://plaid.com/docs/link/update-mode) flow for tokens with expired credentials, or the Identity Verification flow.
     * @summary Create Link Token
     * @param {LinkTokenCreateRequest} linkTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    linkTokenCreate(linkTokenCreateRequest: LinkTokenCreateRequest, options?: any): Promise<import("axios").AxiosResponse<LinkTokenCreateResponse, any>>;
    /**
     * The `/link/token/get` endpoint gets information about a Link session, including all callbacks fired during the session along with their metadata, including the public token. This endpoint is used with Link flows that don\'t provide a public token via frontend callbacks, such as the [Hosted Link flow](https://plaid.com/docs/link/hosted-link/) and the [Multi-Item Link flow](https://plaid.com/docs/link/multi-item-link/). It also can be useful for debugging purposes.
     * @summary Get Link Token
     * @param {LinkTokenGetRequest} linkTokenGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    linkTokenGet(linkTokenGetRequest: LinkTokenGetRequest, options?: any): Promise<import("axios").AxiosResponse<LinkTokenGetResponse, any>>;
    /**
     * This endpoint allows you to retrieve the Network Insights from a list of `access_tokens`.
     * @summary Retrieve network insights for the provided `access_tokens`
     * @param {NetworkInsightsReportGetRequest} networkInsightsReportGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    networkInsightsReportGet(networkInsightsReportGetRequest: NetworkInsightsReportGetRequest, options?: any): Promise<import("axios").AxiosResponse<NetworkInsightsReportGetResponse, any>>;
    /**
     * The `/network/status/get` endpoint can be used to check whether Plaid has a matching profile for the user. This is useful for determining if a user is eligible for a streamlined experience, such as Layer.  Note: it is strongly recommended to check for Layer eligibility in the frontend. `/network/status/get` should only be used for checking Layer eligibility if a frontend check is not possible for your use case. For instructions on performing a frontend eligibility check, see the [Layer documentation](https://plaid.com/docs/layer/#integration-overview).
     * @summary Check a user\'s Plaid Network status
     * @param {NetworkStatusGetRequest} networkStatusGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    networkStatusGet(networkStatusGetRequest: NetworkStatusGetRequest, options?: any): Promise<import("axios").AxiosResponse<NetworkStatusGetResponse, any>>;
    /**
     * The `/partner/customer/create` endpoint is used by reseller partners to create end customers. To create end customers, it should be called in the Production environment only, even when creating Sandbox API keys. If called in the Sandbox environment, it will return a sample response, but no customer will be created and the API keys will not be valid.
     * @summary Creates a new end customer for a Plaid reseller.
     * @param {PartnerCustomerCreateRequest} partnerCustomerCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    partnerCustomerCreate(partnerCustomerCreateRequest: PartnerCustomerCreateRequest, options?: any): Promise<import("axios").AxiosResponse<PartnerCustomerCreateResponse, any>>;
    /**
     * The `/partner/customer/enable` endpoint is used by reseller partners to enable an end customer in the full Production environment.
     * @summary Enables a Plaid reseller\'s end customer in the Production environment.
     * @param {PartnerCustomerEnableRequest} partnerCustomerEnableRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    partnerCustomerEnable(partnerCustomerEnableRequest: PartnerCustomerEnableRequest, options?: any): Promise<import("axios").AxiosResponse<PartnerCustomerEnableResponse, any>>;
    /**
     * The `/partner/customer/get` endpoint is used by reseller partners to retrieve data about a single end customer.
     * @summary Returns a Plaid reseller\'s end customer.
     * @param {PartnerCustomerGetRequest} partnerCustomerGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    partnerCustomerGet(partnerCustomerGetRequest: PartnerCustomerGetRequest, options?: any): Promise<import("axios").AxiosResponse<PartnerCustomerGetResponse, any>>;
    /**
     * The `/partner/customer/oauth_institutions/get` endpoint is used by reseller partners to retrieve OAuth-institution registration information about a single end customer. To learn how to set up a webhook to listen to status update events, visit the [reseller documentation](https://plaid.com/docs/account/resellers/#enabling-end-customers).
     * @summary Returns OAuth-institution registration information for a given end customer.
     * @param {PartnerCustomerOAuthInstitutionsGetRequest} partnerCustomerOAuthInstitutionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    partnerCustomerOauthInstitutionsGet(partnerCustomerOAuthInstitutionsGetRequest: PartnerCustomerOAuthInstitutionsGetRequest, options?: any): Promise<import("axios").AxiosResponse<PartnerCustomerOAuthInstitutionsGetResponse, any>>;
    /**
     * The `/partner/customer/remove` endpoint is used by reseller partners to remove an end customer. Removing an end customer will remove it from view in the Plaid Dashboard and deactivate its API keys. This endpoint can only be used to remove an end customer that has not yet been enabled in full Production.
     * @summary Removes a Plaid reseller\'s end customer.
     * @param {PartnerCustomerRemoveRequest} partnerCustomerRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    partnerCustomerRemove(partnerCustomerRemoveRequest: PartnerCustomerRemoveRequest, options?: any): Promise<import("axios").AxiosResponse<PartnerCustomerRemoveResponse, any>>;
    /**
     * The `/payment_initiation/consent/create` endpoint is used to create a payment consent, which can be used to initiate payments on behalf of the user. Payment consents are created with `UNAUTHORISED` status by default and must be authorised by the user before payments can be initiated.  Consents can be limited in time and scope, and have constraints that describe limitations for payments.
     * @summary Create payment consent
     * @param {PaymentInitiationConsentCreateRequest} paymentInitiationConsentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentInitiationConsentCreate(paymentInitiationConsentCreateRequest: PaymentInitiationConsentCreateRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationConsentCreateResponse, any>>;
    /**
     * The `/payment_initiation/consent/get` endpoint can be used to check the status of a payment consent, as well as to receive basic information such as recipient and constraints.
     * @summary Get payment consent
     * @param {PaymentInitiationConsentGetRequest} paymentInitiationConsentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentInitiationConsentGet(paymentInitiationConsentGetRequest: PaymentInitiationConsentGetRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationConsentGetResponse, any>>;
    /**
     * The `/payment_initiation/consent/payment/execute` endpoint can be used to execute payments using payment consent.
     * @summary Execute a single payment using consent
     * @param {PaymentInitiationConsentPaymentExecuteRequest} paymentInitiationConsentPaymentExecuteRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentInitiationConsentPaymentExecute(paymentInitiationConsentPaymentExecuteRequest: PaymentInitiationConsentPaymentExecuteRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationConsentPaymentExecuteResponse, any>>;
    /**
     * The `/payment_initiation/consent/revoke` endpoint can be used to revoke the payment consent. Once the consent is revoked, it is not possible to initiate payments using it.
     * @summary Revoke payment consent
     * @param {PaymentInitiationConsentRevokeRequest} paymentInitiationConsentRevokeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentInitiationConsentRevoke(paymentInitiationConsentRevokeRequest: PaymentInitiationConsentRevokeRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationConsentRevokeResponse, any>>;
    /**
     * After creating a payment recipient, you can use the `/payment_initiation/payment/create` endpoint to create a payment to that recipient.  Payments can be one-time or standing order (recurring) and can be denominated in either EUR, GBP or other chosen [currency](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-create-request-amount-currency).  If making domestic GBP-denominated payments, your recipient must have been created with BACS numbers. In general, EUR-denominated payments will be sent via SEPA Credit Transfer, GBP-denominated payments will be sent via the Faster Payments network and for non-Eurozone markets typically via the local payment scheme, but the payment network used will be determined by the institution. Payments sent via Faster Payments will typically arrive immediately, while payments sent via SEPA Credit Transfer or other local payment schemes will typically arrive in one business day.  Standing orders (recurring payments) must be denominated in GBP and can only be sent to recipients in the UK. Once created, standing order payments cannot be modified or canceled via the API. An end user can cancel or modify a standing order directly on their banking application or website, or by contacting the bank. Standing orders will follow the payment rules of the underlying rails (Faster Payments in UK). Payments can be sent Monday to Friday, excluding bank holidays. If the pre-arranged date falls on a weekend or bank holiday, the payment is made on the next working day. It is not possible to guarantee the exact time the payment will reach the recipient’s account, although at least 90% of standing order payments are sent by 6am.  In Limited Production, payments must be below 5 GBP or other chosen [currency](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-create-request-amount-currency), and standing orders, variable recurring payments, and Virtual Accounts are not supported.
     * @summary Create a payment
     * @param {PaymentInitiationPaymentCreateRequest} paymentInitiationPaymentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentInitiationPaymentCreate(paymentInitiationPaymentCreateRequest: PaymentInitiationPaymentCreateRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationPaymentCreateResponse, any>>;
    /**
     * The `/payment_initiation/payment/get` endpoint can be used to check the status of a payment, as well as to receive basic information such as recipient and payment amount. In the case of standing orders, the `/payment_initiation/payment/get` endpoint will provide information about the status of the overall standing order itself; the API cannot be used to retrieve payment status for individual payments within a standing order.
     * @summary Get payment details
     * @param {PaymentInitiationPaymentGetRequest} paymentInitiationPaymentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentInitiationPaymentGet(paymentInitiationPaymentGetRequest: PaymentInitiationPaymentGetRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationPaymentGetResponse, any>>;
    /**
     * The `/payment_initiation/payment/list` endpoint can be used to retrieve all created payments. By default, the 10 most recent payments are returned. You can request more payments and paginate through the results using the optional `count` and `cursor` parameters.
     * @summary List payments
     * @param {PaymentInitiationPaymentListRequest} paymentInitiationPaymentListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentInitiationPaymentList(paymentInitiationPaymentListRequest: PaymentInitiationPaymentListRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationPaymentListResponse, any>>;
    /**
     * Reverse a settled payment from a Plaid virtual account.  The original payment must be in a settled state to be refunded. To refund partially, specify the amount as part of the request. If the amount is not specified, the refund amount will be equal to all of the remaining payment amount that has not been refunded yet.  The refund will go back to the source account that initiated the payment. The original payment must have been initiated to a Plaid virtual account so that this account can be used to initiate the refund.  Providing counterparty information such as date of birth and address increases  the likelihood of refund being successful without human intervention.
     * @summary Reverse an existing payment
     * @param {PaymentInitiationPaymentReverseRequest} paymentInitiationPaymentReverseRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentInitiationPaymentReverse(paymentInitiationPaymentReverseRequest: PaymentInitiationPaymentReverseRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationPaymentReverseResponse, any>>;
    /**
     * Create a payment recipient for payment initiation.  The recipient must be in Europe, within a country that is a member of the Single Euro Payment Area (SEPA) or a non-Eurozone country [supported](https://plaid.com/global) by Plaid. For a standing order (recurring) payment, the recipient must be in the UK.  It is recommended to use `bacs` in the UK and `iban` in EU.  The endpoint is idempotent: if a developer has already made a request with the same payment details, Plaid will return the same `recipient_id`.
     * @summary Create payment recipient
     * @param {PaymentInitiationRecipientCreateRequest} paymentInitiationRecipientCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentInitiationRecipientCreate(paymentInitiationRecipientCreateRequest: PaymentInitiationRecipientCreateRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationRecipientCreateResponse, any>>;
    /**
     * Get details about a payment recipient you have previously created.
     * @summary Get payment recipient
     * @param {PaymentInitiationRecipientGetRequest} paymentInitiationRecipientGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentInitiationRecipientGet(paymentInitiationRecipientGetRequest: PaymentInitiationRecipientGetRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationRecipientGetResponse, any>>;
    /**
     * The `/payment_initiation/recipient/list` endpoint list the payment recipients that you have previously created.
     * @summary List payment recipients
     * @param {PaymentInitiationRecipientListRequest} paymentInitiationRecipientListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentInitiationRecipientList(paymentInitiationRecipientListRequest: PaymentInitiationRecipientListRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentInitiationRecipientListResponse, any>>;
    /**
     * Use `/payment_profile/create` endpoint to create a new payment profile. To initiate the account linking experience, call `/link/token/create` and provide the `payment_profile_token` in the `transfer.payment_profile_token` field. You can then use the `payment_profile_token` when creating transfers using `/transfer/authorization/create` and `/transfer/create`.
     * @summary Create payment profile
     * @param {PaymentProfileCreateRequest} paymentProfileCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentProfileCreate(paymentProfileCreateRequest: PaymentProfileCreateRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentProfileCreateResponse, any>>;
    /**
     * Use `/payment_profile/get` endpoint to get the status of a given Payment Profile.
     * @summary Get payment profile
     * @param {PaymentProfileGetRequest} paymentProfileGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentProfileGet(paymentProfileGetRequest: PaymentProfileGetRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentProfileGetResponse, any>>;
    /**
     * Use the `/payment_profile/remove` endpoint to remove a given Payment Profile. Once it’s removed, it can no longer be used to create transfers.
     * @summary Remove payment profile
     * @param {PaymentProfileRemoveRequest} paymentProfileRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    paymentProfileRemove(paymentProfileRemoveRequest: PaymentProfileRemoveRequest, options?: any): Promise<import("axios").AxiosResponse<PaymentProfileRemoveResponse, any>>;
    /**
     * This endpoint returns the account associated with a given processor token.  This endpoint retrieves cached information, rather than extracting fresh information from the institution. As a result, the account balance returned may not be up-to-date; for realtime balance information, use `/processor/balance/get` instead. Note that some information is nullable.
     * @summary Retrieve the account associated with a processor token
     * @param {ProcessorAccountGetRequest} processorAccountGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorAccountGet(processorAccountGetRequest: ProcessorAccountGetRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorAccountGetResponse, any>>;
    /**
     * Used to create a token suitable for sending to Apex to enable Plaid-Apex integrations.
     * @summary Create Apex bank account token
     * @param {ProcessorApexProcessorTokenCreateRequest} processorApexProcessorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorApexProcessorTokenCreate(processorApexProcessorTokenCreateRequest: ProcessorApexProcessorTokenCreateRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorTokenCreateResponse, any>>;
    /**
     * The `/processor/auth/get` endpoint returns the bank account and bank identification number (such as the routing number, for US accounts), for a checking, savings, or cash management account that\'\'s associated with a given `processor_token`. The endpoint also returns high-level account data and balances when available.  Versioning note: API versions 2019-05-29 and earlier use a different schema for the `numbers` object returned by this endpoint. For details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2020-09-14).
     * @summary Retrieve Auth data
     * @param {ProcessorAuthGetRequest} processorAuthGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorAuthGet(processorAuthGetRequest: ProcessorAuthGetRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorAuthGetResponse, any>>;
    /**
     * The `/processor/balance/get` endpoint returns the real-time balance for each of an Item\'s accounts. While other endpoints may return a balance object, only `/processor/balance/get` forces the available and current balance fields to be refreshed rather than cached.
     * @summary Retrieve Balance data
     * @param {ProcessorBalanceGetRequest} processorBalanceGetRequest The &#x60;/processor/balance/get&#x60; endpoint returns the real-time balance for the account associated with a given &#x60;processor_token&#x60;.  The current balance is the total amount of funds in the account. The available balance is the current balance less any outstanding holds or debits that have not yet posted to the account.  Note that not all institutions calculate the available balance. In the event that available balance is unavailable from the institution, Plaid will return an available balance value of &#x60;null&#x60;.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorBalanceGet(processorBalanceGetRequest: ProcessorBalanceGetRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorBalanceGetResponse, any>>;
    /**
     * Use the `/processor/bank_transfer/create` endpoint to initiate a new bank transfer as a processor
     * @summary Create a bank transfer as a processor
     * @param {ProcessorBankTransferCreateRequest} processorBankTransferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorBankTransferCreate(processorBankTransferCreateRequest: ProcessorBankTransferCreateRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorBankTransferCreateResponse, any>>;
    /**
     * The `/processor/identity/get` endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses.
     * @summary Retrieve Identity data
     * @param {ProcessorIdentityGetRequest} processorIdentityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorIdentityGet(processorIdentityGetRequest: ProcessorIdentityGetRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorIdentityGetResponse, any>>;
    /**
     * The `/processor/identity/match` endpoint generates a match score, which indicates how well the provided identity data matches the identity information on file with the account holder\'s financial institution.  Fields within the `balances` object will always be null when retrieved by `/identity/match`. Instead, use the free `/accounts/get` endpoint to request balance cached data, or `/accounts/balance/get` for real-time data.
     * @summary Retrieve identity match score
     * @param {ProcessorIdentityMatchRequest} processorIdentityMatchRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorIdentityMatch(processorIdentityMatchRequest: ProcessorIdentityMatchRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorIdentityMatchResponse, any>>;
    /**
     * This endpoint returns the stock position data of the account associated with a given processor token.
     * @summary Retrieve Investment Holdings
     * @param {ProcessorInvestmentsHoldingsGetRequest} processorInvestmentsHoldingsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorInvestmentsHoldingsGet(processorInvestmentsHoldingsGetRequest: ProcessorInvestmentsHoldingsGetRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorInvestmentsHoldingsGetResponse, any>>;
    /**
     * The `/processor/investments/transactions/get` endpoint allows developers to retrieve up to 24 months of user-authorized transaction data for the investment account associated with the processor token.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Due to the potentially large number of investment transactions associated with the account, results are paginated. Manipulate the count and offset parameters in conjunction with the `total_investment_transactions` response body field to fetch all available investment transactions.  Note that Investments does not have a webhook to indicate when initial transaction data has loaded (unless you use the `async_update` option). Instead, if transactions data is not ready when `/processor/investments/transactions/get` is first called, Plaid will wait for the data. For this reason, calling `/processor/investments/transactions/get` immediately after Link may take up to one to two minutes to return.  Data returned by the asynchronous investments extraction flow (when `async_update` is set to true) may not be immediately available to `/processor/investments/transactions/get`. To be alerted when the data is ready to be fetched, listen for the `HISTORICAL_UPDATE` webhook. If no investments history is ready when `/processor/investments/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.  To receive Investments Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get investment transactions data
     * @param {ProcessorInvestmentsTransactionsGetRequest} processorInvestmentsTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorInvestmentsTransactionsGet(processorInvestmentsTransactionsGetRequest: ProcessorInvestmentsTransactionsGetRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorInvestmentsTransactionsGetResponse, any>>;
    /**
     * The `/processor/liabilities/get` endpoint returns various details about a loan or credit account. Liabilities data is available primarily for US financial institutions, with some limited coverage of Canadian institutions. Currently supported account types are account type `credit` with account subtype `credit card` or `paypal`, and account type `loan` with account subtype `student` or `mortgage`.  The types of information returned by Liabilities can include balances and due dates, loan terms, and account details such as original loan amount and guarantor. Data is refreshed approximately once per day; the latest data can be retrieved by calling `/processor/liabilities/get`.  Note: This request may take some time to complete if `liabilities` was not specified as an initial product when creating the processor token. This is because Plaid must communicate directly with the institution to retrieve the additional data.
     * @summary Retrieve Liabilities data
     * @param {ProcessorLiabilitiesGetRequest} processorLiabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorLiabilitiesGet(processorLiabilitiesGetRequest: ProcessorLiabilitiesGetRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorLiabilitiesGetResponse, any>>;
    /**
     * After calling `/processor/signal/evaluate`, call `/processor/signal/decision/report` to report whether the transaction was initiated.  If you are using the [Plaid Transfer product](https://www.plaid.com/docs/transfer) to create transfers, it is not necessary to use this endpoint, as Plaid already knows whether the transfer was initiated.
     * @summary Report whether you initiated an ACH transaction
     * @param {ProcessorSignalDecisionReportRequest} processorSignalDecisionReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorSignalDecisionReport(processorSignalDecisionReportRequest: ProcessorSignalDecisionReportRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorSignalDecisionReportResponse, any>>;
    /**
     * Use `/processor/signal/evaluate` to evaluate a planned ACH transaction as a processor to get a return risk assessment (such as a risk score and risk tier) and additional risk signals.  In order to obtain a valid score for an ACH transaction, Plaid must have an access token for the account, and the Item must be healthy (receiving product updates) or have recently been in a healthy state. If the transaction does not meet eligibility requirements, an error will be returned corresponding to the underlying cause. If `/processor/signal/evaluate` is called on the same transaction multiple times within a 24-hour period, cached results may be returned. For more information please refer to our error documentation on [item errors](/docs/errors/item/) and [Link in Update Mode](/docs/link/update-mode/).  Note: This request may take some time to complete if Signal is being added to an existing Item. This is because Plaid must communicate directly with the institution when retrieving the data for the first time. To reduce this latency, you can call `/signal/prepare` on the Item before you need to request Signal data.
     * @summary Evaluate a planned ACH transaction
     * @param {ProcessorSignalEvaluateRequest} processorSignalEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorSignalEvaluate(processorSignalEvaluateRequest: ProcessorSignalEvaluateRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorSignalEvaluateResponse, any>>;
    /**
     * When a processor token is not initialized with Signal, call `/processor/signal/prepare` to opt-in that processor token to the Signal data collection process, which will improve the accuracy of the Signal score.  If this endpoint is called with a processor token that is already initialized with Signal, it will return a 200 response and will not modify the processor token.
     * @summary Opt-in a processor token to Signal
     * @param {ProcessorSignalPrepareRequest} processorSignalPrepareRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorSignalPrepare(processorSignalPrepareRequest: ProcessorSignalPrepareRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorSignalPrepareResponse, any>>;
    /**
     * Call the `/processor/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/processor/signal/evaluate` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio.  If you are using the [Plaid Transfer product](https://www.plaid.com/docs/transfer) to create transfers, it is not necessary to use this endpoint, as Plaid already knows whether the transfer was returned.
     * @summary Report a return for an ACH transaction
     * @param {ProcessorSignalReturnReportRequest} processorSignalReturnReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorSignalReturnReport(processorSignalReturnReportRequest: ProcessorSignalReturnReportRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorSignalReturnReportResponse, any>>;
    /**
     *  Used to create a token suitable for sending to Stripe to enable Plaid-Stripe integrations. For a detailed guide on integrating Stripe, see [Add Stripe to your app](https://plaid.com/docs/auth/partnerships/stripe/).  Note that the Stripe bank account token is a one-time use token. To store bank account information for later use, you can use a Stripe customer object and create an associated bank account from the token, or you can use a Stripe Custom account and create an associated external bank account from the token. This bank account information should work indefinitely, unless the user\'s bank account information changes or they revoke Plaid\'s permissions to access their account. Stripe bank account information cannot be modified once the bank account token has been created. If you ever need to change the bank account details used by Stripe for a specific customer, have the user go through Link again and create a new bank account token from the new `access_token`.  To revoke a bank account token, the entire underlying access token must be revoked using `/item/remove`.
     * @summary Create Stripe bank account token
     * @param {ProcessorStripeBankAccountTokenCreateRequest} processorStripeBankAccountTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorStripeBankAccountTokenCreate(processorStripeBankAccountTokenCreateRequest: ProcessorStripeBankAccountTokenCreateRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorStripeBankAccountTokenCreateResponse, any>>;
    /**
     * Used to create a token suitable for sending to one of Plaid\'s partners to enable integrations. Note that Stripe partnerships use bank account tokens instead; see `/processor/stripe/bank_account_token/create` for creating tokens for use with Stripe integrations. If using multiple processors, multiple different processor tokens can be created for a single access token. Once created, a processor token for a given Item cannot be modified or updated. To revoke the processor\'s access, the entire Item must be deleted by calling `/item/remove`.
     * @summary Create processor token
     * @param {ProcessorTokenCreateRequest} processorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorTokenCreate(processorTokenCreateRequest: ProcessorTokenCreateRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorTokenCreateResponse, any>>;
    /**
     * Used to get a processor token\'s product permissions. The `products` field will be an empty list if the processor can access all available products.
     * @summary Get a processor token\'s product permissions
     * @param {ProcessorTokenPermissionsGetRequest} processorTokenPermissionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorTokenPermissionsGet(processorTokenPermissionsGetRequest: ProcessorTokenPermissionsGetRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorTokenPermissionsGetResponse, any>>;
    /**
     * Used to control a processor\'s access to products on the given processor token. By default, a processor will have access to all available products on the corresponding item. To restrict access to a particular set of products, call this endpoint with the desired products. To restore access to all available products, call this endpoint with an empty list. This endpoint can be called multiple times as your needs and your processor\'s needs change.
     * @summary Control a processor\'s access to products
     * @param {ProcessorTokenPermissionsSetRequest} processorTokenPermissionsSetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorTokenPermissionsSet(processorTokenPermissionsSetRequest: ProcessorTokenPermissionsSetRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorTokenPermissionsSetResponse, any>>;
    /**
     * This endpoint allows you, the processor, to update the webhook URL associated with a processor token. This request triggers a `WEBHOOK_UPDATE_ACKNOWLEDGED` webhook to the newly specified webhook URL.
     * @summary Update a processor token\'s webhook URL
     * @param {ProcessorTokenWebhookUpdateRequest} processorTokenWebhookUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorTokenWebhookUpdate(processorTokenWebhookUpdateRequest: ProcessorTokenWebhookUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorTokenWebhookUpdateResponse, any>>;
    /**
     * The `/processor/transactions/get` endpoint allows developers to receive user-authorized transaction data for credit, depository, and some loan-type accounts (only those with account subtype `student`; coverage may be limited). Transaction data is standardized across financial institutions, and in many cases transactions are linked to a clean name, entity type, location, and category. Similarly, account data is standardized and returned with a clean name, number, balance, and other meta information where available.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Transactions are not immutable and can also be removed altogether by the institution; a removed transaction will no longer appear in `/processor/transactions/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).  Due to the potentially large number of transactions associated with a processor token, results are paginated. Manipulate the `count` and `offset` parameters in conjunction with the `total_transactions` response body field to fetch all available transactions.  Data returned by `/processor/transactions/get` will be the data available for the processor token as of the most recent successful check for new transactions. Plaid typically checks for new data multiple times a day, but these checks may occur less frequently, such as once a day, depending on the institution. To force Plaid to check for new transactions, you can use the `/processor/transactions/refresh` endpoint.  Note that data may not be immediately available to `/processor/transactions/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `transactions`, or upon the first call to `/processor/transactions/get`, if it wasn\'t. If no transaction history is ready when `/processor/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get transaction data
     * @param {ProcessorTransactionsGetRequest} processorTransactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorTransactionsGet(processorTransactionsGetRequest: ProcessorTransactionsGetRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorTransactionsGetResponse, any>>;
    /**
     * The `/processor/transactions/recurring/get` endpoint allows developers to receive a summary of the recurring outflow and inflow streams (expenses and deposits) from a user’s checking, savings or credit card accounts. Additionally, Plaid provides key insights about each recurring stream including the category, merchant, last amount, and more. Developers can use these insights to build tools and experiences that help their users better manage cash flow, monitor subscriptions, reduce spend, and stay on track with bill payments.  This endpoint is offered as an add-on to Transactions. To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.  This endpoint can only be called on a processor token that has already been initialized with Transactions (either during Link, by specifying it in `/link/token/create`; or after Link, by calling `/processor/transactions/get` or `/processor/transactions/sync`). Once all historical transactions have been fetched, call `/processor/transactions/recurring/get` to receive the Recurring Transactions streams and subscribe to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook. To know when historical transactions have been fetched, if you are using `/processor/transactions/sync` listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#SyncUpdatesAvailableWebhook-historical-update-complete) webhook and check that the `historical_update_complete` field in the payload is `true`. If using `/processor/transactions/get`, listen for the [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhook.  After the initial call, you can call `/processor/transactions/recurring/get` endpoint at any point in the future to retrieve the latest summary of recurring streams. Listen to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook to be notified when new updates are available.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Fetch recurring transaction streams
     * @param {ProcessorTransactionsRecurringGetRequest} processorTransactionsRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorTransactionsRecurringGet(processorTransactionsRecurringGetRequest: ProcessorTransactionsRecurringGetRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorTransactionsRecurringGetResponse, any>>;
    /**
     * `/processor/transactions/refresh` is an optional endpoint for users of the Transactions product. It initiates an on-demand extraction to fetch the newest transactions for a processor token. This on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Transactions-enabled processor token. If changes to transactions are discovered after calling `/processor/transactions/refresh`, Plaid will fire a webhook: for `/transactions/sync` users, [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) will be fired if there are any transactions updated, added, or removed. For users of both `/processor/transactions/sync` and `/processor/transactions/get`, [`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/products/transactions/#transactions_removed) will be fired if any removed transactions are detected, and [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/transactions/#default_update) will be fired if any new transactions are detected. New transactions can be fetched by calling `/processor/transactions/get` or `/processor/transactions/sync`. Note that the `/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) non-depository accounts and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item that contains only non-depository accounts from that institution.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/processor/transactions/refresh` is offered as an add-on to Transactions and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh transaction data
     * @param {ProcessorTransactionsRefreshRequest} processorTransactionsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorTransactionsRefresh(processorTransactionsRefreshRequest: ProcessorTransactionsRefreshRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorTransactionsRefreshResponse, any>>;
    /**
     *  The `/processor/transactions/sync` endpoint retrieves transactions associated with an Item and can fetch updates using a cursor to track which updates have already been seen.  For important instructions on integrating with `/processor/transactions/sync`, see the [Transactions integration overview](https://plaid.com/docs/transactions/#integration-overview). If you are migrating from an existing integration using `/processor/transactions/get`, see the [Transactions Sync migration guide](https://plaid.com/docs/transactions/sync-migration/).  This endpoint supports `credit`, `depository`, and some `loan`-type accounts (only those with account subtype `student`). For `investments` accounts, use `/investments/transactions/get` instead.  When retrieving paginated updates, track both the `next_cursor` from the latest response and the original cursor from the first call in which `has_more` was `true`; if a call to `/processor/transactions/sync` fails when retrieving a paginated update (e.g due to the [`TRANSACTIONS_SYNC_MUTATION_DURING_PAGINATION`](https://plaid.com/docs/errors/transactions/#transactions_sync_mutation_during_pagination) error), the entire pagination request loop must be restarted beginning with the cursor for the first page of the update, rather than retrying only the single request that failed.  If transactions data is not yet available for the Item, which can happen if the Item was not initialized with transactions during the `/link/token/create` call or if `/processor/transactions/sync` was called within a few seconds of Item creation, `/processor/transactions/sync` will return empty transactions arrays.   Plaid typically checks for new transactions data between one and four times per day, depending on the institution. To find out when transactions were last updated for an Item, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, use the `/processor/transactions/refresh` endpoint.  To be alerted when new transactions are available, listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) webhook.  To receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.
     * @summary Get incremental transaction updates on a processor token
     * @param {ProcessorTransactionsSyncRequest} processorTransactionsSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    processorTransactionsSync(processorTransactionsSyncRequest: ProcessorTransactionsSyncRequest, options?: any): Promise<import("axios").AxiosResponse<ProcessorTransactionsSyncResponse, any>>;
    /**
     * The `/profile/network_status/get` endpoint can be used to check whether Plaid has a matching profile for the user.
     * @summary Check a user\'s Plaid Network status
     * @param {ProfileNetworkStatusGetRequest} profileNetworkStatusGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    profileNetworkStatusGet(profileNetworkStatusGetRequest: ProfileNetworkStatusGetRequest, options?: any): Promise<import("axios").AxiosResponse<ProfileNetworkStatusGetResponse, any>>;
    /**
     * Use the `/sandbox/bank_income/fire_webhook` endpoint to manually trigger a Bank Income webhook in the Sandbox environment.
     * @summary Manually fire a bank income webhook in sandbox
     * @param {SandboxBankIncomeFireWebhookRequest} sandboxBankIncomeFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxBankIncomeFireWebhook(sandboxBankIncomeFireWebhookRequest: SandboxBankIncomeFireWebhookRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxBankIncomeFireWebhookResponse, any>>;
    /**
     * Use the `/sandbox/bank_transfer/fire_webhook` endpoint to manually trigger a Bank Transfers webhook in the Sandbox environment.
     * @summary Manually fire a Bank Transfer webhook
     * @param {SandboxBankTransferFireWebhookRequest} sandboxBankTransferFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxBankTransferFireWebhook(sandboxBankTransferFireWebhookRequest: SandboxBankTransferFireWebhookRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxBankTransferFireWebhookResponse, any>>;
    /**
     * Use the `/sandbox/bank_transfer/simulate` endpoint to simulate a bank transfer event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/bank_transfer/event/sync` or `/bank_transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a bank transfer event in Sandbox
     * @param {SandboxBankTransferSimulateRequest} sandboxBankTransferSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxBankTransferSimulate(sandboxBankTransferSimulateRequest: SandboxBankTransferSimulateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxBankTransferSimulateResponse, any>>;
    /**
     * Use the `/sandbox/cra/cashflow_updates/update` endpoint to manually trigger an update for cashflow updates (Monitoring) in the Sandbox environment.
     * @summary Trigger an update for Cashflow Updates
     * @param {SandboxCraCashflowUpdatesUpdateRequest} sandboxCraCashflowUpdatesUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxCraCashflowUpdatesUpdate(sandboxCraCashflowUpdatesUpdateRequest: SandboxCraCashflowUpdatesUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxCraCashflowUpdatesUpdateResponse, any>>;
    /**
     * Use the `/sandbox/income/fire_webhook` endpoint to manually trigger a Payroll or Document Income webhook in the Sandbox environment.
     * @summary Manually fire an Income webhook
     * @param {SandboxIncomeFireWebhookRequest} sandboxIncomeFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxIncomeFireWebhook(sandboxIncomeFireWebhookRequest: SandboxIncomeFireWebhookRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxIncomeFireWebhookResponse, any>>;
    /**
     * The `/sandbox/item/fire_webhook` endpoint is used to test that code correctly handles webhooks. This endpoint can trigger the following webhooks:  `DEFAULT_UPDATE`: Webhook to be fired for a given Sandbox Item simulating a default update event for the respective product as specified with the `webhook_type` in the request body. Valid Sandbox `DEFAULT_UPDATE` webhook types include: `AUTH`, `IDENTITY`, `TRANSACTIONS`, `INVESTMENTS_TRANSACTIONS`, `LIABILITIES`, `HOLDINGS`. If the Item does not support the product, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `NEW_ACCOUNTS_AVAILABLE`: Fired to indicate that a new account is available on the Item and you can launch update mode to request access to it.  `SMS_MICRODEPOSITS_VERIFICATION`: Fired when a given same day micro-deposit item is verified via SMS verification.  `LOGIN_REPAIRED`: Fired when an Item recovers from the `ITEM_LOGIN_REQUIRED` without the user going through update mode in your app.  `PENDING_DISCONNECT`: Fired when an Item will stop working in the near future (e.g. due to a planned bank migration) and must be sent through update mode to continue working.   `RECURRING_TRANSACTIONS_UPDATE`: Recurring Transactions webhook to be fired for a given Sandbox Item. If the Item does not support Recurring Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `SYNC_UPDATES_AVAILABLE`: Transactions webhook to be fired for a given Sandbox Item.  If the Item does not support Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `PRODUCT_READY`: Assets webhook to be fired when a given asset report has been successfully generated. If the Item does not support Assets, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `ERROR`: Assets webhook to be fired when asset report generation has failed. If the Item does not support Assets, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.  `USER_PERMISSION_REVOKED`: Indicates an end user has revoked the permission that they previously granted to access an Item. May not always fire upon revocation, as some institutions’ consent portals do not trigger this webhook. Upon receiving this webhook, it is recommended to delete any stored data from Plaid associated with the account or Item.  `USER_ACCOUNT_REVOKED`: Fired when an end user has revoked access to their account on the Data Provider\'s portal. This webhook is currently sent only for Chase and PNC Items, but may be sent in the future for other financial institutions. Upon receiving this webhook, it is recommended to delete any stored data from Plaid associated with the account or Item.  Note that this endpoint is provided for developer ease-of-use and is not required for testing webhooks; webhooks will also fire in Sandbox under the same conditions that they would in Production (except for webhooks of type `TRANSFER`).
     * @summary Fire a test webhook
     * @param {SandboxItemFireWebhookRequest} sandboxItemFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxItemFireWebhook(sandboxItemFireWebhookRequest: SandboxItemFireWebhookRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxItemFireWebhookResponse, any>>;
    /**
     * `/sandbox/item/reset_login/` forces an Item into an `ITEM_LOGIN_REQUIRED` state in order to simulate an Item whose login is no longer valid. This makes it easy to test Link\'s [update mode](https://plaid.com/docs/link/update-mode) flow in the Sandbox environment.  After calling `/sandbox/item/reset_login`, You can then use Plaid Link update mode to restore the Item to a good state. An `ITEM_LOGIN_REQUIRED` webhook will also be fired after a call to this endpoint, if one is associated with the Item.   In the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error state automatically after 30 days, even if this endpoint is not called.
     * @summary Force a Sandbox Item into an error state
     * @param {SandboxItemResetLoginRequest} sandboxItemResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxItemResetLogin(sandboxItemResetLoginRequest: SandboxItemResetLoginRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxItemResetLoginResponse, any>>;
    /**
     * The `/sandbox/item/set_verification_status` endpoint can be used to change the verification status of an Item in in the Sandbox in order to simulate the Automated Micro-deposit flow.  For more information on testing Automated Micro-deposits in Sandbox, see [Auth full coverage testing](https://plaid.com/docs/auth/coverage/testing#).
     * @summary Set verification status for Sandbox account
     * @param {SandboxItemSetVerificationStatusRequest} sandboxItemSetVerificationStatusRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxItemSetVerificationStatus(sandboxItemSetVerificationStatusRequest: SandboxItemSetVerificationStatusRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxItemSetVerificationStatusResponse, any>>;
    /**
     * Save the selected accounts when connecting to the Platypus Oauth institution
     * @summary Save the selected accounts when connecting to the Platypus Oauth institution
     * @param {SandboxOauthSelectAccountsRequest} sandboxOauthSelectAccountsRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxOauthSelectAccounts(sandboxOauthSelectAccountsRequest: SandboxOauthSelectAccountsRequest, options?: any): Promise<import("axios").AxiosResponse<{
        [key: string]: object;
    }, any>>;
    /**
     * `/sandbox/payment_profile/reset_login/` forces a Payment Profile into a state where the login is no longer valid. This makes it easy to test update mode for Payment Profile in the Sandbox environment.   After calling `/sandbox/payment_profile/reset_login`, calls to the `/transfer/authorization/create` with the Payment Profile will result in a `decision_rationale` `PAYMENT_PROFILE_LOGIN_REQUIRED`. You can then use update mode for Payment Profile to restore it into a good state.   In order to invoke this endpoint, you must first [create a Payment Profile](https://plaid.com/docs/transfer/add-to-app/#create-a-payment-profile-optional) and [go through the Link flow](https://plaid.com/docs/transfer/add-to-app/#create-a-link-token).
     * @summary Reset the login of a Payment Profile
     * @param {SandboxPaymentProfileResetLoginRequest} sandboxPaymentProfileResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxPaymentProfileResetLogin(sandboxPaymentProfileResetLoginRequest: SandboxPaymentProfileResetLoginRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxPaymentProfileResetLoginResponse, any>>;
    /**
     * Use the `/sandbox/payment/simulate` endpoint to simulate various payment events in the Sandbox environment. This endpoint will trigger the corresponding payment status webhook.
     * @summary Simulate a payment event in Sandbox
     * @param {SandboxPaymentSimulateRequest} sandboxPaymentSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxPaymentSimulate(sandboxPaymentSimulateRequest: SandboxPaymentSimulateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxPaymentSimulateResponse, any>>;
    /**
     * Use the `/sandbox/processor_token/create` endpoint to create a valid `processor_token` for an arbitrary institution ID and test credentials. The created `processor_token` corresponds to a new Sandbox Item. You can then use this `processor_token` with the `/processor/` API endpoints in Sandbox. You can also use `/sandbox/processor_token/create` with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data.
     * @summary Create a test Item and processor token
     * @param {SandboxProcessorTokenCreateRequest} sandboxProcessorTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxProcessorTokenCreate(sandboxProcessorTokenCreateRequest: SandboxProcessorTokenCreateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxProcessorTokenCreateResponse, any>>;
    /**
     * Use the `/sandbox/public_token/create` endpoint to create a valid `public_token`  for an arbitrary institution ID, initial products, and test credentials. The created `public_token` maps to a new Sandbox Item. You can then call `/item/public_token/exchange` to exchange the `public_token` for an `access_token` and perform all API actions. `/sandbox/public_token/create` can also be used with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data, or with Plaid\'s [pre-populated Sandbox test accounts](https://plaid.com/docs/sandbox/test-credentials/).
     * @summary Create a test Item
     * @param {SandboxPublicTokenCreateRequest} sandboxPublicTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxPublicTokenCreate(sandboxPublicTokenCreateRequest: SandboxPublicTokenCreateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxPublicTokenCreateResponse, any>>;
    /**
     * Use the `/sandbox/transfer/fire_webhook` endpoint to manually trigger a `TRANSFER_EVENTS_UPDATE` webhook in the Sandbox environment.
     * @summary Manually fire a Transfer webhook
     * @param {SandboxTransferFireWebhookRequest} sandboxTransferFireWebhookRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferFireWebhook(sandboxTransferFireWebhookRequest: SandboxTransferFireWebhookRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferFireWebhookResponse, any>>;
    /**
     * Use the `/sandbox/transfer/ledger/deposit/simulate` endpoint to simulate a ledger deposit event in the Sandbox environment.
     * @summary Simulate a ledger deposit event in Sandbox
     * @param {SandboxTransferLedgerDepositSimulateRequest} sandboxTransferLedgerDepositSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferLedgerDepositSimulate(sandboxTransferLedgerDepositSimulateRequest: SandboxTransferLedgerDepositSimulateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferLedgerDepositSimulateResponse, any>>;
    /**
     * Use the `/sandbox/transfer/ledger/simulate_available` endpoint to simulate converting pending balance to available balance for all originators in the Sandbox environment.
     * @summary Simulate converting pending balance to available balance
     * @param {SandboxTransferLedgerSimulateAvailableRequest} sandboxTransferLedgerSimulateAvailableRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferLedgerSimulateAvailable(sandboxTransferLedgerSimulateAvailableRequest: SandboxTransferLedgerSimulateAvailableRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferLedgerSimulateAvailableResponse, any>>;
    /**
     * Use the `/sandbox/transfer/ledger/withdraw/simulate` endpoint to simulate a ledger withdraw event in the Sandbox environment.
     * @summary Simulate a ledger withdraw event in Sandbox
     * @param {SandboxTransferLedgerWithdrawSimulateRequest} sandboxTransferLedgerWithdrawSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferLedgerWithdrawSimulate(sandboxTransferLedgerWithdrawSimulateRequest: SandboxTransferLedgerWithdrawSimulateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferLedgerWithdrawSimulateResponse, any>>;
    /**
     * Use the `/sandbox/transfer/refund/simulate` endpoint to simulate a refund event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/transfer/event/sync` or `/transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a refund event in Sandbox
     * @param {SandboxTransferRefundSimulateRequest} sandboxTransferRefundSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferRefundSimulate(sandboxTransferRefundSimulateRequest: SandboxTransferRefundSimulateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferRefundSimulateResponse, any>>;
    /**
     * Use the `/sandbox/transfer/repayment/simulate` endpoint to trigger the creation of a repayment. As a side effect of calling this route, a repayment is created that includes all unreimbursed returns of guaranteed transfers. If there are no such returns, an 400 error is returned.
     * @summary Trigger the creation of a repayment
     * @param {SandboxTransferRepaymentSimulateRequest} sandboxTransferRepaymentSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferRepaymentSimulate(sandboxTransferRepaymentSimulateRequest: SandboxTransferRepaymentSimulateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferRepaymentSimulateResponse, any>>;
    /**
     * Use the `/sandbox/transfer/simulate` endpoint to simulate a transfer event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/transfer/event/sync` or `/transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
     * @summary Simulate a transfer event in Sandbox
     * @param {SandboxTransferSimulateRequest} sandboxTransferSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferSimulate(sandboxTransferSimulateRequest: SandboxTransferSimulateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferSimulateResponse, any>>;
    /**
     * Use the `/sandbox/transfer/sweep/simulate` endpoint to create a sweep and associated events in the Sandbox environment. Upon calling this endpoint, all transfers with a sweep status of `swept` will become `swept_settled`, all `posted` or `pending` transfers with a sweep status of `unswept` will become `swept`, and all `returned` transfers with a sweep status of `swept` will become `return_swept`.
     * @summary Simulate creating a sweep
     * @param {SandboxTransferSweepSimulateRequest} sandboxTransferSweepSimulateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferSweepSimulate(sandboxTransferSweepSimulateRequest: SandboxTransferSweepSimulateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferSweepSimulateResponse, any>>;
    /**
     * Use the `/sandbox/transfer/test_clock/advance` endpoint to advance a `test_clock` in the Sandbox environment.  A test clock object represents an independent timeline and has a `virtual_time` field indicating the current timestamp of the timeline. A test clock can be advanced by incrementing `virtual_time`, but may never go back to a lower `virtual_time`.  If a test clock is advanced, we will simulate the changes that ought to occur during the time that elapsed.  For example, a client creates a weekly recurring transfer with a test clock set at t. When the client advances the test clock by setting `virtual_time` = t + 15 days, 2 new originations should be created, along with the webhook events.  The advancement of the test clock from its current `virtual_time` should be limited such that there are no more than 20 originations resulting from the advance operation on each `recurring_transfer` associated with the `test_clock`.  For example, if the recurring transfer associated with this test clock originates once every 4 weeks, you can advance the `virtual_time` up to 80 weeks on each API call.
     * @summary Advance a test clock
     * @param {SandboxTransferTestClockAdvanceRequest} sandboxTransferTestClockAdvanceRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferTestClockAdvance(sandboxTransferTestClockAdvanceRequest: SandboxTransferTestClockAdvanceRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferTestClockAdvanceResponse, any>>;
    /**
     * Use the `/sandbox/transfer/test_clock/create` endpoint to create a `test_clock` in the Sandbox environment.  A test clock object represents an independent timeline and has a `virtual_time` field indicating the current timestamp of the timeline. Test clocks are used for testing recurring transfers in Sandbox.  A test clock can be associated with up to 5 recurring transfers.
     * @summary Create a test clock
     * @param {SandboxTransferTestClockCreateRequest} sandboxTransferTestClockCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferTestClockCreate(sandboxTransferTestClockCreateRequest: SandboxTransferTestClockCreateRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferTestClockCreateResponse, any>>;
    /**
     * Use the `/sandbox/transfer/test_clock/get` endpoint to get a `test_clock` in the Sandbox environment.
     * @summary Get a test clock
     * @param {SandboxTransferTestClockGetRequest} sandboxTransferTestClockGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferTestClockGet(sandboxTransferTestClockGetRequest: SandboxTransferTestClockGetRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferTestClockGetResponse, any>>;
    /**
     * Use the `/sandbox/transfer/test_clock/list` endpoint to see a list of all your test clocks in the Sandbox environment, by ascending `virtual_time`. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired test clocks.
     * @summary List test clocks
     * @param {SandboxTransferTestClockListRequest} sandboxTransferTestClockListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxTransferTestClockList(sandboxTransferTestClockListRequest: SandboxTransferTestClockListRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxTransferTestClockListResponse, any>>;
    /**
     * `/sandbox/user/reset_login/` functions the same as `/sandbox/item/reset_login`, but will modify Items related to a User. This endpoint forces each Item into an `ITEM_LOGIN_REQUIRED` state in order to simulate an Item whose login is no longer valid. This makes it easy to test Link\'s [update mode](https://plaid.com/docs/link/update-mode) flow in the Sandbox environment.  After calling `/sandbox/user/reset_login`, You can then use Plaid Link update mode to restore Items associated with the User to a good state. An `ITEM_LOGIN_REQUIRED` webhook will also be fired after a call to this endpoint, if one is associated with the Item.   In the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error state automatically after 30 days, even if this endpoint is not called.
     * @summary Force item(s) for a Sandbox User into an error state
     * @param {SandboxUserResetLoginRequest} sandboxUserResetLoginRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    sandboxUserResetLogin(sandboxUserResetLoginRequest: SandboxUserResetLoginRequest, options?: any): Promise<import("axios").AxiosResponse<SandboxUserResetLoginResponse, any>>;
    /**
     * After calling `/signal/evaluate`, call `/signal/decision/report` to report whether the transaction was initiated.
     * @summary Report whether you initiated an ACH transaction
     * @param {SignalDecisionReportRequest} signalDecisionReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    signalDecisionReport(signalDecisionReportRequest: SignalDecisionReportRequest, options?: any): Promise<import("axios").AxiosResponse<SignalDecisionReportResponse, any>>;
    /**
     * Use `/signal/evaluate` to evaluate a planned ACH transaction to get a return risk assessment (such as a risk score and risk tier) and additional risk signals.  In order to obtain a valid score for an ACH transaction, Plaid must have an access token for the account, and the Item must be healthy (receiving product updates) or have recently been in a healthy state. If the transaction does not meet eligibility requirements, an error will be returned corresponding to the underlying cause. If `/signal/evaluate` is called on the same transaction multiple times within a 24-hour period, cached results may be returned. For more information please refer to the error documentation on [Item errors](/docs/errors/item/) and [Link in Update Mode](/docs/link/update-mode/).  Note: This request may take some time to complete if Signal is being added to an existing Item. This is because Plaid must communicate directly with the institution when retrieving the data for the first time.
     * @summary Evaluate a planned ACH transaction
     * @param {SignalEvaluateRequest} signalEvaluateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    signalEvaluate(signalEvaluateRequest: SignalEvaluateRequest, options?: any): Promise<import("axios").AxiosResponse<SignalEvaluateResponse, any>>;
    /**
     * When an Item is not initialized with Signal, call `/signal/prepare` to opt-in that Item to the Signal data collection process, developing a Signal score. This should be done on Items where Signal was added in the `additional_consented_products` array but not in the `products`, `optional_products`, or `required_if_supported_products` array. If `/signal/prepare` is skipped on an Item that is not initialized with Signal, the initial call to `/signal/evaluate` on that Item will be less accurate, because Signal will have access to less data for computing the Signal score.  If run on an Item that is already initialized with Signal, this endpoint will return a 200 response and will not modify the Item.
     * @summary Opt-in an Item to Signal
     * @param {SignalPrepareRequest} signalPrepareRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    signalPrepare(signalPrepareRequest: SignalPrepareRequest, options?: any): Promise<import("axios").AxiosResponse<SignalPrepareResponse, any>>;
    /**
     * Call the `/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/signal/evaluate` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio.
     * @summary Report a return for an ACH transaction
     * @param {SignalReturnReportRequest} signalReturnReportRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    signalReturnReport(signalReturnReportRequest: SignalReturnReportRequest, options?: any): Promise<import("axios").AxiosResponse<SignalReturnReportResponse, any>>;
    /**
     * Use `/signal/schedule` to schedule a planned ACH transaction.
     * @summary Schedule a planned ACH transaction
     * @param {SignalScheduleRequest} signalScheduleRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    signalSchedule(signalScheduleRequest: SignalScheduleRequest, options?: any): Promise<import("axios").AxiosResponse<SignalScheduleResponse, any>>;
    /**
     * The `/statements/download` endpoint retrieves a single statement PDF in binary format.  The response will contain a `Plaid-Content-Hash` header containing a SHA 256 checksum of the statement. This can be used to verify that the file being sent by Plaid is the same file that was downloaded to your system.
     * @summary Retrieve a single statement.
     * @param {StatementsDownloadRequest} statementsDownloadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    statementsDownload(statementsDownloadRequest: StatementsDownloadRequest, options?: any): Promise<import("axios").AxiosResponse<any, any>>;
    /**
     * The `/statements/list` endpoint retrieves a list of all statements associated with an item.
     * @summary Retrieve a list of all statements associated with an item.
     * @param {StatementsListRequest} statementsListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    statementsList(statementsListRequest: StatementsListRequest, options?: any): Promise<import("axios").AxiosResponse<StatementsListResponse, any>>;
    /**
     * `/statements/refresh` initiates an on-demand extraction to fetch the statements for the provided dates.
     * @summary Refresh statements data.
     * @param {StatementsRefreshRequest} statementsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    statementsRefresh(statementsRefreshRequest: StatementsRefreshRequest, options?: any): Promise<import("axios").AxiosResponse<StatementsRefreshResponse, any>>;
    /**
     * The `/beta/transactions/v1/enhance` endpoint enriches raw transaction data provided directly by clients.  The product is currently in beta.
     * @summary enhance locally-held transaction data
     * @param {TransactionsEnhanceGetRequest} transactionsEnhanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transactionsEnhance(transactionsEnhanceGetRequest: TransactionsEnhanceGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransactionsEnhanceGetResponse, any>>;
    /**
     * The `/transactions/enrich` endpoint enriches raw transaction data generated by your own banking products or retrieved from other non-Plaid sources.
     * @summary Enrich locally-held transaction data
     * @param {TransactionsEnrichRequest} transactionsEnrichRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transactionsEnrich(transactionsEnrichRequest: TransactionsEnrichRequest, options?: any): Promise<import("axios").AxiosResponse<TransactionsEnrichResponse, any>>;
    /**
     * Note: All new implementations are encouraged to use `/transactions/sync` rather than `/transactions/get`. `/transactions/sync` provides the same functionality as `/transactions/get` and improves developer ease-of-use for handling transactions updates.  The `/transactions/get` endpoint allows developers to receive user-authorized transaction data for credit, depository, and some loan-type accounts (only those with account subtype `student`; coverage may be limited). For transaction history from investments accounts, use the [Investments endpoint](https://plaid.com/docs/api/products/investments/) instead. Transaction data is standardized across financial institutions, and in many cases transactions are linked to a clean name, entity type, location, and category. Similarly, account data is standardized and returned with a clean name, number, balance, and other meta information where available.  Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Transactions are not immutable and can also be removed altogether by the institution; a removed transaction will no longer appear in `/transactions/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).  Due to the potentially large number of transactions associated with an Item, results are paginated. Manipulate the `count` and `offset` parameters in conjunction with the `total_transactions` response body field to fetch all available transactions.  Data returned by `/transactions/get` will be the data available for the Item as of the most recent successful check for new transactions. Plaid typically checks for new data multiple times a day, but these checks may occur less frequently, such as once a day, depending on the institution. To find out when the Item was last updated, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, you can use the `/transactions/refresh` endpoint.  Note that data may not be immediately available to `/transactions/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `transactions`, or upon the first call to `/transactions/get`, if it wasn\'t. To be alerted when transaction data is ready to be fetched, listen for the [`INITIAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#initial_update) and [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhooks. If no transaction history is ready when `/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.
     * @summary Get transaction data
     * @param {TransactionsGetRequest} transactionsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transactionsGet(transactionsGetRequest: TransactionsGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransactionsGetResponse, any>>;
    /**
     * The `/transactions/recurring/get` endpoint allows developers to receive a summary of the recurring outflow and inflow streams (expenses and deposits) from a user’s checking, savings or credit card accounts. Additionally, Plaid provides key insights about each recurring stream including the category, merchant, last amount, and more. Developers can use these insights to build tools and experiences that help their users better manage cash flow, monitor subscriptions, reduce spend, and stay on track with bill payments.  This endpoint is offered as an add-on to Transactions. To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.  This endpoint can only be called on an Item that has already been initialized with Transactions (either during Link, by specifying it in `/link/token/create`; or after Link, by calling `/transactions/get` or `/transactions/sync`).   When using Recurring Transactions, for best results, make sure to use the [`days_requested`](https://plaid.com/docs/api/link/#link-token-create-request-transactions-days-requested) parameter to request at least 180 days of history when initializing Items with Transactions. Once all historical transactions have been fetched, call `/transactions/recurring/get` to receive the Recurring Transactions streams and subscribe to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook. To know when historical transactions have been fetched, if you are using `/transactions/sync` listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#SyncUpdatesAvailableWebhook-historical-update-complete) webhook and check that the `historical_update_complete` field in the payload is `true`. If using `/transactions/get`, listen for the [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhook.  After the initial call, you can call `/transactions/recurring/get` endpoint at any point in the future to retrieve the latest summary of recurring streams. Listen to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook to be notified when new updates are available.
     * @summary Fetch recurring transaction streams
     * @param {TransactionsRecurringGetRequest} transactionsRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transactionsRecurringGet(transactionsRecurringGetRequest: TransactionsRecurringGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransactionsRecurringGetResponse, any>>;
    /**
     * `/transactions/refresh` is an optional endpoint that initiates an on-demand extraction to fetch the newest transactions for an Item. The on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Transactions-enabled Item. The Item must already have Transactions added as a product in order to call `/transactions/refresh`.  If changes to transactions are discovered after calling `/transactions/refresh`, Plaid will fire a webhook: for `/transactions/sync` users, [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) will be fired if there are any transactions updated, added, or removed. For users of both `/transactions/sync` and `/transactions/get`, [`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/products/transactions/#transactions_removed) will be fired if any removed transactions are detected, and [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/transactions/#default_update) will be fired if any new transactions are detected. New transactions can be fetched by calling `/transactions/get` or `/transactions/sync`.  Note that the `/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) non-depository accounts and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item that contains only non-depository accounts from that institution.  As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.  `/transactions/refresh` is offered as an optional add-on to Transactions and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
     * @summary Refresh transaction data
     * @param {TransactionsRefreshRequest} transactionsRefreshRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transactionsRefresh(transactionsRefreshRequest: TransactionsRefreshRequest, options?: any): Promise<import("axios").AxiosResponse<TransactionsRefreshResponse, any>>;
    /**
     * The `/transactions/rules/v1/create` endpoint creates transaction categorization rules.  Rules will be applied on the Item\'s transactions returned in `/transactions/get` response.  The product is currently in beta. To request access, contact transactions-feedback@plaid.com.
     * @summary Create transaction category rule
     * @param {TransactionsRulesCreateRequest} transactionsRulesCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transactionsRulesCreate(transactionsRulesCreateRequest: TransactionsRulesCreateRequest, options?: any): Promise<import("axios").AxiosResponse<TransactionsRulesCreateResponse, any>>;
    /**
     * The `/transactions/rules/v1/list` returns a list of transaction rules created for the Item associated with the access token.
     * @summary Return a list of rules created for the Item associated with the access token.
     * @param {TransactionsRulesListRequest} transactionsRulesListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transactionsRulesList(transactionsRulesListRequest: TransactionsRulesListRequest, options?: any): Promise<import("axios").AxiosResponse<TransactionsRulesListResponse, any>>;
    /**
     * The `/transactions/rules/v1/remove` endpoint is used to remove a transaction rule.
     * @summary Remove transaction rule
     * @param {TransactionsRulesRemoveRequest} transactionsRulesRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transactionsRulesRemove(transactionsRulesRemoveRequest: TransactionsRulesRemoveRequest, options?: any): Promise<import("axios").AxiosResponse<TransactionsRulesRemoveResponse, any>>;
    /**
     * The `/transactions/sync` endpoint retrieves transactions associated with an Item and can fetch updates using a cursor to track which updates have already been seen.  For important instructions on integrating with `/transactions/sync`, see the [Transactions integration overview](https://plaid.com/docs/transactions/#integration-overview). If you are migrating from an existing integration using `/transactions/get`, see the [Transactions Sync migration guide](https://plaid.com/docs/transactions/sync-migration/).  This endpoint supports `credit`, `depository`, and some `loan`-type accounts (only those with account subtype `student`). For `investments` accounts, use `/investments/transactions/get` instead.   When retrieving paginated updates, track both the `next_cursor` from the latest response and the original cursor from the first call in which `has_more` was `true`; if a call to `/transactions/sync` fails when retrieving a paginated update (e.g due to the [`TRANSACTIONS_SYNC_MUTATION_DURING_PAGINATION`](https://plaid.com/docs/errors/transactions/#transactions_sync_mutation_during_pagination) error), the entire pagination request loop must be restarted beginning with the cursor for the first page of the update, rather than retrying only the single request that failed.  If transactions data is not yet available for the Item, which can happen if the Item was not initialized with transactions during the `/link/token/create` call or if `/transactions/sync` was called within a few seconds of Item creation, `/transactions/sync` will return empty transactions arrays.   Plaid typically checks for new transactions data between one and four times per day, depending on the institution. To find out when transactions were last updated for an Item, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, use the `/transactions/refresh` endpoint.  To be alerted when new transactions are available, listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) webhook.
     * @summary Get incremental transaction updates on an Item
     * @param {TransactionsSyncRequest} transactionsSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transactionsSync(transactionsSyncRequest: TransactionsSyncRequest, options?: any): Promise<import("axios").AxiosResponse<TransactionsSyncResponse, any>>;
    /**
     * The `/beta/transactions/user_insights/v1/get` gets user insights for clients who have enriched data with `/transactions/enrich`.  The product is currently in beta.
     * @summary Obtain user insights based on transactions sent through /transactions/enrich
     * @param {TransactionsUserInsightsGetRequest} transactionsUserInsightsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transactionsUserInsightsGet(transactionsUserInsightsGetRequest: TransactionsUserInsightsGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransactionsUserInsightsGetResponse, any>>;
    /**
     * Use the `/transfer/authorization/cancel` endpoint to cancel a transfer authorization. A transfer authorization is eligible for cancellation if it has not yet been used to create a transfer.
     * @summary Cancel a transfer authorization
     * @param {TransferAuthorizationCancelRequest} transferAuthorizationCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferAuthorizationCancel(transferAuthorizationCancelRequest: TransferAuthorizationCancelRequest, options?: any): Promise<import("axios").AxiosResponse<TransferAuthorizationCancelResponse, any>>;
    /**
     * Use the `/transfer/authorization/create` endpoint to authorize a transfer. This endpoint must be called prior to calling `/transfer/create`. The transfer authorization will expire if not used after one hour. (You can contact your account manager to change the default authorization lifetime.)   There are four possible outcomes to calling this endpoint:     - If the `authorization.decision` in the response is `declined`, the proposed transfer has failed the risk check and you cannot proceed with the transfer.     - If the `authorization.decision` is `user_action_required`, additional user input is needed, usually to fix a broken bank connection, before Plaid can properly assess the risk. You need to launch Link in update mode to complete the required user action. When calling `/link/token/create` to get a new Link token, instead of providing `access_token` in the request, you should set [`transfer.authorization_id`](https://plaid.com/docs/api/link/#link-token-create-request-transfer-authorization-id) as the `authorization.id`. After the Link flow is completed, you may re-attempt the authorization.    - If the `authorization.decision` is `approved`, and the `authorization.rationale_code` is `null`, the transfer has passed the risk check and you can proceed to call `/transfer/create`.      - If the `authorization.decision` is `approved` and the `authorization.rationale_code` is non-`null`, the risk check could not be run: you may proceed with the transfer, but should perform your own risk evaluation. For more details, see the response schema.  In Plaid\'s Sandbox environment the decisions will be returned as follows:    - To approve a transfer with `null` rationale code, make an authorization request with an `amount` less than the available balance in the account.    - To approve a transfer with the rationale code `MANUALLY_VERIFIED_ITEM`, create an Item in Link through the [Same Day Micro-deposits flow](https://plaid.com/docs/auth/coverage/testing/#testing-same-day-micro-deposits).    - To get an authorization decision of `user_action_required`, [reset the login for an Item](https://plaid.com/docs/sandbox/#item_login_required).    - To decline a transfer with the rationale code `NSF`, the available balance on the account must be less than the authorization `amount`. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.    - To decline a transfer with the rationale code `RISK`, the available balance on the account must be exactly $0. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.
     * @summary Create a transfer authorization
     * @param {TransferAuthorizationCreateRequest} transferAuthorizationCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferAuthorizationCreate(transferAuthorizationCreateRequest: TransferAuthorizationCreateRequest, options?: any): Promise<import("axios").AxiosResponse<TransferAuthorizationCreateResponse, any>>;
    /**
     * (Deprecated) Use the `/transfer/balance/get` endpoint to view a balance held with Plaid.
     * @summary (Deprecated) Retrieve a balance held with Plaid
     * @param {TransferBalanceGetRequest} transferBalanceGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferBalanceGet(transferBalanceGetRequest: TransferBalanceGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransferBalanceGetResponse, any>>;
    /**
     * Use the `/transfer/cancel` endpoint to cancel a transfer.  A transfer is eligible for cancellation if the `cancellable` property returned by `/transfer/get` is `true`.
     * @summary Cancel a transfer
     * @param {TransferCancelRequest} transferCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferCancel(transferCancelRequest: TransferCancelRequest, options?: any): Promise<import("axios").AxiosResponse<TransferCancelResponse, any>>;
    /**
     * Use the `/transfer/capabilities/get` endpoint to determine the RTP eligibility information of an account to be used with Transfer. This endpoint works on all Transfer-capable Items, including those created by `/transfer/migrate_account`. To simulate RTP eligibility in Sandbox, log in using the username `user_good` and password `pass_good` and use the first two checking and savings accounts in the \"First Platypus Bank\" institution (ending in 0000 or 1111), which will return `true`. Any other account will return `false`.
     * @summary Get RTP eligibility information of a transfer
     * @param {TransferCapabilitiesGetRequest} transferCapabilitiesGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferCapabilitiesGet(transferCapabilitiesGetRequest: TransferCapabilitiesGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransferCapabilitiesGetResponse, any>>;
    /**
     * Use the `/transfer/configuration/get` endpoint to view your transfer product configurations.
     * @summary Get transfer product configuration
     * @param {TransferConfigurationGetRequest} transferConfigurationGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferConfigurationGet(transferConfigurationGetRequest: TransferConfigurationGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransferConfigurationGetResponse, any>>;
    /**
     * Use the `/transfer/create` endpoint to initiate a new transfer. This endpoint is retryable and idempotent; if a transfer with the provided `transfer_id` has already been created, it will return the transfer details without creating a new transfer. A transfer may still be created if a 500 error is returned; to detect this scenario, use [Transfer events](https://plaid.com/docs/transfer/reconciling-transfers/).
     * @summary Create a transfer
     * @param {TransferCreateRequest} transferCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferCreate(transferCreateRequest: TransferCreateRequest, options?: any): Promise<import("axios").AxiosResponse<TransferCreateResponse, any>>;
    /**
     * Third-party sender customers can use `/transfer/diligence/document/upload` endpoint to upload a document on behalf of its end customer (i.e. originator) to Plaid. You’ll need to send a request of type multipart/form-data. You must provide the `client_id` in the `PLAID-CLIENT-ID` header and `secret` in the `PLAID-SECRET` header.
     * @summary Upload transfer diligence document on behalf of the originator
     * @param {TransferDiligenceDocumentUploadRequest} transferDiligenceDocumentUploadRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferDiligenceDocumentUpload(transferDiligenceDocumentUploadRequest: TransferDiligenceDocumentUploadRequest, options?: any): Promise<import("axios").AxiosResponse<TransferDiligenceDocumentUploadResponse, any>>;
    /**
     * Use the `/transfer/diligence/submit` endpoint to submit transfer diligence on behalf of the originator (i.e., the end customer).
     * @summary Submit transfer diligence on behalf of the originator
     * @param {TransferDiligenceSubmitRequest} transferDiligenceSubmitRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferDiligenceSubmit(transferDiligenceSubmitRequest: TransferDiligenceSubmitRequest, options?: any): Promise<import("axios").AxiosResponse<TransferDiligenceSubmitResponse, any>>;
    /**
     * Use the `/transfer/event/list` endpoint to get a list of transfer events based on specified filter criteria.
     * @summary List transfer events
     * @param {TransferEventListRequest} transferEventListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferEventList(transferEventListRequest: TransferEventListRequest, options?: any): Promise<import("axios").AxiosResponse<TransferEventListResponse, any>>;
    /**
     * `/transfer/event/sync` allows you to request up to the next 25 transfer events that happened after a specific `event_id`. Use the `/transfer/event/sync` endpoint to guarantee you have seen all transfer events.
     * @summary Sync transfer events
     * @param {TransferEventSyncRequest} transferEventSyncRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferEventSync(transferEventSyncRequest: TransferEventSyncRequest, options?: any): Promise<import("axios").AxiosResponse<TransferEventSyncResponse, any>>;
    /**
     * The `/transfer/get` endpoint fetches information about the transfer corresponding to the given `transfer_id` or `authorization_id`. One of `transfer_id` or `authorization_id` must be populated but not both.
     * @summary Retrieve a transfer
     * @param {TransferGetRequest} transferGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferGet(transferGetRequest: TransferGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransferGetResponse, any>>;
    /**
     * Use the `/transfer/intent/create` endpoint to generate a transfer intent object and invoke the Transfer UI.
     * @summary Create a transfer intent object to invoke the Transfer UI
     * @param {TransferIntentCreateRequest} transferIntentCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferIntentCreate(transferIntentCreateRequest: TransferIntentCreateRequest, options?: any): Promise<import("axios").AxiosResponse<TransferIntentCreateResponse, any>>;
    /**
     * Use the `/transfer/intent/get` endpoint to retrieve more information about a transfer intent.
     * @summary Retrieve more information about a transfer intent
     * @param {TransferIntentGetRequest} transferIntentGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferIntentGet(transferIntentGetRequest: TransferIntentGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransferIntentGetResponse, any>>;
    /**
     * Use the `/transfer/ledger/deposit` endpoint to deposit funds into Plaid Ledger.
     * @summary Deposit funds into a Plaid Ledger balance
     * @param {TransferLedgerDepositRequest} transferLedgerDepositRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferLedgerDeposit(transferLedgerDepositRequest: TransferLedgerDepositRequest, options?: any): Promise<import("axios").AxiosResponse<TransferLedgerDepositResponse, any>>;
    /**
     * Use the `/transfer/ledger/distribute` endpoint to move available balance between the ledgers of the platform and one of its originators.
     * @summary Move available balance between the ledgers of the platform and one of its originators
     * @param {TransferLedgerDistributeRequest} transferLedgerDistributeRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferLedgerDistribute(transferLedgerDistributeRequest: TransferLedgerDistributeRequest, options?: any): Promise<import("axios").AxiosResponse<TransferLedgerDistributeResponse, any>>;
    /**
     * Use the `/transfer/ledger/get` endpoint to view a balance on the ledger held with Plaid.
     * @summary Retrieve Plaid Ledger balance
     * @param {TransferLedgerGetRequest} transferLedgerGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferLedgerGet(transferLedgerGetRequest: TransferLedgerGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransferLedgerGetResponse, any>>;
    /**
     * Use the `/transfer/ledger/withdraw` endpoint to withdraw funds from a Plaid Ledger balance.
     * @summary Withdraw funds from a Plaid Ledger balance
     * @param {TransferLedgerWithdrawRequest} transferLedgerWithdrawRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferLedgerWithdraw(transferLedgerWithdrawRequest: TransferLedgerWithdrawRequest, options?: any): Promise<import("axios").AxiosResponse<TransferLedgerWithdrawResponse, any>>;
    /**
     * Use the `/transfer/list` endpoint to see a list of all your transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired transfers.
     * @summary List transfers
     * @param {TransferListRequest} transferListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferList(transferListRequest: TransferListRequest, options?: any): Promise<import("axios").AxiosResponse<TransferListResponse, any>>;
    /**
     * Use the `/transfer/metrics/get` endpoint to view your transfer product usage metrics.
     * @summary Get transfer product usage metrics
     * @param {TransferMetricsGetRequest} transferMetricsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferMetricsGet(transferMetricsGetRequest: TransferMetricsGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransferMetricsGetResponse, any>>;
    /**
     * As an alternative to adding Items via Link, you can also use the `/transfer/migrate_account` endpoint to migrate known account and routing numbers to Plaid Items. This endpoint is also required when adding an Item for use with wire transfers; if you intend to create wire transfers on this account, you must provide `wire_routing_number`. Note that Items created in this way are not compatible with endpoints for other products, such as `/accounts/balance/get`, and can only be used with Transfer endpoints.  If you require access to other endpoints, create the Item through Link instead.  Access to `/transfer/migrate_account` is not enabled by default; to obtain access, contact your Plaid Account Manager.
     * @summary Migrate account into Transfers
     * @param {TransferMigrateAccountRequest} transferMigrateAccountRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferMigrateAccount(transferMigrateAccountRequest: TransferMigrateAccountRequest, options?: any): Promise<import("axios").AxiosResponse<TransferMigrateAccountResponse, any>>;
    /**
     * Use the `/transfer/originator/create` endpoint to create a new originator and return an `originator_client_id`.
     * @summary Create a new originator
     * @param {TransferOriginatorCreateRequest} transferOriginatorCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferOriginatorCreate(transferOriginatorCreateRequest: TransferOriginatorCreateRequest, options?: any): Promise<import("axios").AxiosResponse<TransferOriginatorCreateResponse, any>>;
    /**
     * Use the `/transfer/originator/funding_account/update` endpoint to update the funding account associated with the originator.
     * @summary Update the funding account associated with the originator
     * @param {TransferOriginatorFundingAccountUpdateRequest} transferOriginatorFundingAccountUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferOriginatorFundingAccountUpdate(transferOriginatorFundingAccountUpdateRequest: TransferOriginatorFundingAccountUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<TransferOriginatorFundingAccountUpdateResponse, any>>;
    /**
     * The `/transfer/originator/get` endpoint gets status updates for an originator\'s onboarding process. This information is also available via the Transfer page on the Plaid dashboard.
     * @summary Get status of an originator\'s onboarding
     * @param {TransferOriginatorGetRequest} transferOriginatorGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferOriginatorGet(transferOriginatorGetRequest: TransferOriginatorGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransferOriginatorGetResponse, any>>;
    /**
     * The `/transfer/originator/list` endpoint gets status updates for all of your originators\' onboarding. This information is also available via the Plaid dashboard.
     * @summary Get status of all originators\' onboarding
     * @param {TransferOriginatorListRequest} transferOriginatorListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferOriginatorList(transferOriginatorListRequest: TransferOriginatorListRequest, options?: any): Promise<import("axios").AxiosResponse<TransferOriginatorListResponse, any>>;
    /**
     * The `/transfer/platform/originator/create` endpoint allows gathering information about the originator specific to the Scaled Platform Transfer offering, including the originator\'s agreement to legal terms required before accepting any further information related to the originator.
     * @summary Create an originator for scaled platform customers
     * @param {TransferPlatformOriginatorCreateRequest} transferPlatformOriginatorCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferPlatformOriginatorCreate(transferPlatformOriginatorCreateRequest: TransferPlatformOriginatorCreateRequest, options?: any): Promise<import("axios").AxiosResponse<TransferPlatformOriginatorCreateResponse, any>>;
    /**
     * Use the `/transfer/platform/person/create` endpoint to create a person record associated with an originator and optionally submit person-specific requirements.
     * @summary Create a person associated with an originator
     * @param {TransferPlatformPersonCreateRequest} transferPlatformPersonCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferPlatformPersonCreate(transferPlatformPersonCreateRequest: TransferPlatformPersonCreateRequest, options?: any): Promise<import("axios").AxiosResponse<TransferPlatformPersonCreateResponse, any>>;
    /**
     * The `/transfer/platform/requirement/submit` endpoint allows platforms to submit onboarding requirements for an originator as part of the Scaled Platform Transfer offering.
     * @summary Submit onboarding requirements for Scaled Platform originators
     * @param {TransferPlatformRequirementSubmitRequest} transferPlatformRequirementSubmitRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferPlatformRequirementSubmit(transferPlatformRequirementSubmitRequest: TransferPlatformRequirementSubmitRequest, options?: any): Promise<import("axios").AxiosResponse<TransferPlatformRequirementSubmitResponse, any>>;
    /**
     * The `/transfer/questionnaire/create` endpoint generates a Plaid-hosted onboarding UI URL. Redirect the originator to this URL to provide their due diligence information and agree to Plaid’s terms for ACH money movement.
     * @summary Generate a Plaid-hosted onboarding UI URL.
     * @param {TransferQuestionnaireCreateRequest} transferQuestionnaireCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferQuestionnaireCreate(transferQuestionnaireCreateRequest: TransferQuestionnaireCreateRequest, options?: any): Promise<import("axios").AxiosResponse<TransferQuestionnaireCreateResponse, any>>;
    /**
     * Use the `/transfer/recurring/cancel` endpoint to cancel a recurring transfer.  Scheduled transfer that hasn\'t been submitted to bank will be cancelled.
     * @summary Cancel a recurring transfer.
     * @param {TransferRecurringCancelRequest} transferRecurringCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferRecurringCancel(transferRecurringCancelRequest: TransferRecurringCancelRequest, options?: any): Promise<import("axios").AxiosResponse<TransferRecurringCancelResponse, any>>;
    /**
     * Use the `/transfer/recurring/create` endpoint to initiate a new recurring transfer. This capability is not currently supported for Transfer UI or Platform Payments (beta) customers.
     * @summary Create a recurring transfer
     * @param {TransferRecurringCreateRequest} transferRecurringCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferRecurringCreate(transferRecurringCreateRequest: TransferRecurringCreateRequest, options?: any): Promise<import("axios").AxiosResponse<TransferRecurringCreateResponse, any>>;
    /**
     * The `/transfer/recurring/get` fetches information about the recurring transfer corresponding to the given `recurring_transfer_id`.
     * @summary Retrieve a recurring transfer
     * @param {TransferRecurringGetRequest} transferRecurringGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferRecurringGet(transferRecurringGetRequest: TransferRecurringGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransferRecurringGetResponse, any>>;
    /**
     * Use the `/transfer/recurring/list` endpoint to see a list of all your recurring transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired recurring transfers.
     * @summary List recurring transfers
     * @param {TransferRecurringListRequest} transferRecurringListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferRecurringList(transferRecurringListRequest: TransferRecurringListRequest, options?: any): Promise<import("axios").AxiosResponse<TransferRecurringListResponse, any>>;
    /**
     * Use the `/transfer/refund/cancel` endpoint to cancel a refund.  A refund is eligible for cancellation if it has not yet been submitted to the payment network.
     * @summary Cancel a refund
     * @param {TransferRefundCancelRequest} transferRefundCancelRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferRefundCancel(transferRefundCancelRequest: TransferRefundCancelRequest, options?: any): Promise<import("axios").AxiosResponse<TransferRefundCancelResponse, any>>;
    /**
     * Use the `/transfer/refund/create` endpoint to create a refund for a transfer. A transfer can be refunded if the transfer was initiated in the past 180 days.  Refunds come out of the available balance of the ledger used for the original debit transfer. If there are not enough funds in the available balance to cover the refund amount, the refund will be rejected. You can create a refund at any time. Plaid does not impose any hold time on refunds.
     * @summary Create a refund
     * @param {TransferRefundCreateRequest} transferRefundCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferRefundCreate(transferRefundCreateRequest: TransferRefundCreateRequest, options?: any): Promise<import("axios").AxiosResponse<TransferRefundCreateResponse, any>>;
    /**
     * The `/transfer/refund/get` endpoint fetches information about the refund corresponding to the given `refund_id`.
     * @summary Retrieve a refund
     * @param {TransferRefundGetRequest} transferRefundGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferRefundGet(transferRefundGetRequest: TransferRefundGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransferRefundGetResponse, any>>;
    /**
     * The `/transfer/repayment/list` endpoint fetches repayments matching the given filters. Repayments are returned in reverse-chronological order (most recent first) starting at the given `start_time`.
     * @summary Lists historical repayments
     * @param {TransferRepaymentListRequest} transferRepaymentListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferRepaymentList(transferRepaymentListRequest: TransferRepaymentListRequest, options?: any): Promise<import("axios").AxiosResponse<TransferRepaymentListResponse, any>>;
    /**
     * The `/transfer/repayment/return/list` endpoint retrieves the set of returns that were batched together into the specified repayment. The sum of amounts of returns retrieved by this request equals the amount of the repayment.
     * @summary List the returns included in a repayment
     * @param {TransferRepaymentReturnListRequest} transferRepaymentReturnListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferRepaymentReturnList(transferRepaymentReturnListRequest: TransferRepaymentReturnListRequest, options?: any): Promise<import("axios").AxiosResponse<TransferRepaymentReturnListResponse, any>>;
    /**
     * The `/transfer/sweep/get` endpoint fetches a sweep corresponding to the given `sweep_id`.
     * @summary Retrieve a sweep
     * @param {TransferSweepGetRequest} transferSweepGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferSweepGet(transferSweepGetRequest: TransferSweepGetRequest, options?: any): Promise<import("axios").AxiosResponse<TransferSweepGetResponse, any>>;
    /**
     * The `/transfer/sweep/list` endpoint fetches sweeps matching the given filters.
     * @summary List sweeps
     * @param {TransferSweepListRequest} transferSweepListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    transferSweepList(transferSweepListRequest: TransferSweepListRequest, options?: any): Promise<import("axios").AxiosResponse<TransferSweepListResponse, any>>;
    /**
     * Returns user permissioned account data including identity and Item access tokens.
     * @summary Retrieve User Account
     * @param {UserAccountSessionGetRequest} userAccountSessionGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    userAccountSessionGet(userAccountSessionGetRequest: UserAccountSessionGetRequest, options?: any): Promise<import("axios").AxiosResponse<UserAccountSessionGetResponse, any>>;
    /**
     * This endpoint should be called for each of your end users before they begin a Plaid Check or Income flow, or a Multi-Item Link flow. This provides you a single token to access all data associated with the user. You should only create one per end user.  The `consumer_report_user_identity` object must be present in order to create a Plaid Check Consumer Report for a user. If it is not provided during the `/user/create` call, it can be added later by calling `/user/update`. Plaid Check Consumer Reports can only be created for US-based users; the user\'s address country must be `US`.  If you call the endpoint multiple times with the same `client_user_id`, the first creation call will succeed and the rest will fail with an error message indicating that the user has been created for the given `client_user_id`.  Ensure that you store the `user_token` along with your user\'s identifier in your database, as it is not possible to retrieve a previously created `user_token`.
     * @summary Create user
     * @param {UserCreateRequest} userCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    userCreate(userCreateRequest: UserCreateRequest, options?: any): Promise<import("axios").AxiosResponse<UserCreateResponse, any>>;
    /**
     * Returns Items associated with a User along with their corresponding statuses.
     * @summary Get Items associated with a User
     * @param {UserItemsGetRequest} userItemsGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    userItemsGet(userItemsGetRequest: UserItemsGetRequest, options?: any): Promise<import("axios").AxiosResponse<UserItemsGetResponse, any>>;
    /**
     * `/user/remove` deletes a user token and and associated information, including any Items associated with the token.  Any subsequent calls to retrieve information using the same user token will result in an error stating the user does not exist.
     * @summary Remove user
     * @param {UserRemoveRequest} userRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    userRemove(userRemoveRequest: UserRemoveRequest, options?: any): Promise<import("axios").AxiosResponse<UserRemoveResponse, any>>;
    /**
     * This endpoint is used to create a third-party user token. This token can be shared with and used by a specified third-party client to access data associated with the user through supported endpoints.  Ensure you store the `third_party_user_token` along with the `user_token` and `third_party_client_id`, as it is not possible to retrieve a previously created `third_party_user_token`.
     * @summary Create a third-party user token
     * @param {UserThirdPartyTokenCreateRequest} userThirdPartyTokenCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    userThirdPartyTokenCreate(userThirdPartyTokenCreateRequest: UserThirdPartyTokenCreateRequest, options?: any): Promise<import("axios").AxiosResponse<UserThirdPartyTokenCreateResponse, any>>;
    /**
     * This endpoint is used to delete a third-party user token. Once removed, the token can longer be used to access data associated with the user.   Any subsequent calls to retrieve information using the same third-party user token will result in an error stating the third-party user token does not exist.
     * @summary Remove a third-party user token
     * @param {UserThirdPartyTokenRemoveRequest} userThirdPartyTokenRemoveRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    userThirdPartyTokenRemove(userThirdPartyTokenRemoveRequest: UserThirdPartyTokenRemoveRequest, options?: any): Promise<import("axios").AxiosResponse<UserThirdPartyTokenRemoveResponse, any>>;
    /**
     * This endpoint is used to update user information associated with an existing `user_token`. It can also be used to enable an existing `user_token` for use with Consumer Reports by Plaid Check, by adding a `consumer_report_user_identity` object to the user. Plaid Check Consumer Reports can only be created for US-based users; the user\'s address country must be `US`.
     * @summary Update user information
     * @param {UserUpdateRequest} userUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    userUpdate(userUpdateRequest: UserUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<UserUpdateResponse, any>>;
    /**
     * Create an e-wallet. The response is the newly created e-wallet object.
     * @summary Create an e-wallet
     * @param {WalletCreateRequest} walletCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    walletCreate(walletCreateRequest: WalletCreateRequest, options?: any): Promise<import("axios").AxiosResponse<WalletCreateResponse, any>>;
    /**
     * Fetch an e-wallet. The response includes the current balance.
     * @summary Fetch an e-wallet
     * @param {WalletGetRequest} walletGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    walletGet(walletGetRequest: WalletGetRequest, options?: any): Promise<import("axios").AxiosResponse<WalletGetResponse, any>>;
    /**
     * This endpoint lists all e-wallets in descending order of creation.
     * @summary Fetch a list of e-wallets
     * @param {WalletListRequest} walletListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    walletList(walletListRequest: WalletListRequest, options?: any): Promise<import("axios").AxiosResponse<WalletListResponse, any>>;
    /**
     * Execute a transaction using the specified e-wallet. Specify the e-wallet to debit from, the counterparty to credit to, the idempotency key to prevent duplicate transactions, the amount and reference for the transaction. Transactions will settle in seconds to several days, depending on the underlying payment rail.
     * @summary Execute a transaction using an e-wallet
     * @param {WalletTransactionExecuteRequest} walletTransactionExecuteRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    walletTransactionExecute(walletTransactionExecuteRequest: WalletTransactionExecuteRequest, options?: any): Promise<import("axios").AxiosResponse<WalletTransactionExecuteResponse, any>>;
    /**
     * Fetch a specific e-wallet transaction
     * @summary Fetch an e-wallet transaction
     * @param {WalletTransactionGetRequest} walletTransactionGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    walletTransactionGet(walletTransactionGetRequest: WalletTransactionGetRequest, options?: any): Promise<import("axios").AxiosResponse<WalletTransactionGetResponse, any>>;
    /**
     * This endpoint lists the latest transactions of the specified e-wallet. Transactions are returned in descending order by the `created_at` time.
     * @summary List e-wallet transactions
     * @param {WalletTransactionListRequest} walletTransactionListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    walletTransactionList(walletTransactionListRequest: WalletTransactionListRequest, options?: any): Promise<import("axios").AxiosResponse<WalletTransactionListResponse, any>>;
    /**
     * Create a new entity watchlist screening to check your customer against watchlists defined in the associated entity watchlist program. If your associated program has ongoing screening enabled, this is the profile information that will be used to monitor your customer over time.
     * @summary Create a watchlist screening for an entity
     * @param {WatchlistScreeningEntityCreateRequest} watchlistScreeningEntityCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningEntityCreate(watchlistScreeningEntityCreateRequest: WatchlistScreeningEntityCreateRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningEntityCreateResponse, any>>;
    /**
     * Retrieve an entity watchlist screening.
     * @summary Get an entity screening
     * @param {WatchlistScreeningEntityGetRequest} watchlistScreeningEntityGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningEntityGet(watchlistScreeningEntityGetRequest: WatchlistScreeningEntityGetRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningEntityGetResponse, any>>;
    /**
     * List all changes to the entity watchlist screening in reverse-chronological order. If the watchlist screening has not been edited, no history will be returned.
     * @summary List history for entity watchlist screenings
     * @param {WatchlistScreeningEntityHistoryListRequest} watchlistScreeningEntityHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningEntityHistoryList(watchlistScreeningEntityHistoryListRequest: WatchlistScreeningEntityHistoryListRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningEntityHistoryListResponse, any>>;
    /**
     * List all hits for the entity watchlist screening.
     * @summary List hits for entity watchlist screenings
     * @param {WatchlistScreeningEntityHitListRequest} watchlistScreeningEntityHitListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningEntityHitList(watchlistScreeningEntityHitListRequest: WatchlistScreeningEntityHitListRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningEntityHitListResponse, any>>;
    /**
     * List all entity screenings.
     * @summary List entity watchlist screenings
     * @param {WatchlistScreeningEntityListRequest} watchlistScreeningEntityListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningEntityList(watchlistScreeningEntityListRequest: WatchlistScreeningEntityListRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningEntityListResponse, any>>;
    /**
     * Get an entity watchlist screening program
     * @summary Get entity watchlist screening program
     * @param {WatchlistScreeningEntityProgramGetRequest} watchlistScreeningEntityProgramGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningEntityProgramGet(watchlistScreeningEntityProgramGetRequest: WatchlistScreeningEntityProgramGetRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningEntityProgramGetResponse, any>>;
    /**
     * List all entity watchlist screening programs
     * @summary List entity watchlist screening programs
     * @param {WatchlistScreeningEntityProgramListRequest} watchlistScreeningEntityProgramListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningEntityProgramList(watchlistScreeningEntityProgramListRequest: WatchlistScreeningEntityProgramListRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningEntityProgramListResponse, any>>;
    /**
     * Create a review for an entity watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary Create a review for an entity watchlist screening
     * @param {WatchlistScreeningEntityReviewCreateRequest} watchlistScreeningEntityReviewCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningEntityReviewCreate(watchlistScreeningEntityReviewCreateRequest: WatchlistScreeningEntityReviewCreateRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningEntityReviewCreateResponse, any>>;
    /**
     * List all reviews for a particular entity watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary List reviews for entity watchlist screenings
     * @param {WatchlistScreeningEntityReviewListRequest} watchlistScreeningEntityReviewListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningEntityReviewList(watchlistScreeningEntityReviewListRequest: WatchlistScreeningEntityReviewListRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningEntityReviewListResponse, any>>;
    /**
     * Update an entity watchlist screening.
     * @summary Update an entity screening
     * @param {WatchlistScreeningEntityUpdateRequest} watchlistScreeningEntityUpdateRequest The entity screening was successfully updated.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningEntityUpdate(watchlistScreeningEntityUpdateRequest: WatchlistScreeningEntityUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningEntityUpdateResponse, any>>;
    /**
     * Create a new Watchlist Screening to check your customer against watchlists defined in the associated Watchlist Program. If your associated program has ongoing screening enabled, this is the profile information that will be used to monitor your customer over time.
     * @summary Create a watchlist screening for a person
     * @param {WatchlistScreeningIndividualCreateRequest} watchlistScreeningIndividualCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningIndividualCreate(watchlistScreeningIndividualCreateRequest: WatchlistScreeningIndividualCreateRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningIndividualCreateResponse, any>>;
    /**
     * Retrieve a previously created individual watchlist screening
     * @summary Retrieve an individual watchlist screening
     * @param {WatchlistScreeningIndividualGetRequest} watchlistScreeningIndividualGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningIndividualGet(watchlistScreeningIndividualGetRequest: WatchlistScreeningIndividualGetRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningIndividualGetResponse, any>>;
    /**
     * List all changes to the individual watchlist screening in reverse-chronological order. If the watchlist screening has not been edited, no history will be returned.
     * @summary List history for individual watchlist screenings
     * @param {WatchlistScreeningIndividualHistoryListRequest} watchlistScreeningIndividualHistoryListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningIndividualHistoryList(watchlistScreeningIndividualHistoryListRequest: WatchlistScreeningIndividualHistoryListRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningIndividualHistoryListResponse, any>>;
    /**
     * List all hits found by Plaid for a particular individual watchlist screening.
     * @summary List hits for individual watchlist screening
     * @param {WatchlistScreeningIndividualHitListRequest} watchlistScreeningIndividualHitListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningIndividualHitList(watchlistScreeningIndividualHitListRequest: WatchlistScreeningIndividualHitListRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningIndividualHitListResponse, any>>;
    /**
     * List previously created watchlist screenings for individuals
     * @summary List Individual Watchlist Screenings
     * @param {WatchlistScreeningIndividualListRequest} watchlistScreeningIndividualListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningIndividualList(watchlistScreeningIndividualListRequest: WatchlistScreeningIndividualListRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningIndividualListResponse, any>>;
    /**
     * Get an individual watchlist screening program
     * @summary Get individual watchlist screening program
     * @param {WatchlistScreeningIndividualProgramGetRequest} watchlistScreeningIndividualProgramGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningIndividualProgramGet(watchlistScreeningIndividualProgramGetRequest: WatchlistScreeningIndividualProgramGetRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningIndividualProgramGetResponse, any>>;
    /**
     * List all individual watchlist screening programs
     * @summary List individual watchlist screening programs
     * @param {WatchlistScreeningIndividualProgramListRequest} watchlistScreeningIndividualProgramListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningIndividualProgramList(watchlistScreeningIndividualProgramListRequest: WatchlistScreeningIndividualProgramListRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningIndividualProgramListResponse, any>>;
    /**
     * Create a review for the individual watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
     * @summary Create a review for an individual watchlist screening
     * @param {WatchlistScreeningIndividualReviewCreateRequest} watchlistScreeningIndividualReviewCreateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningIndividualReviewCreate(watchlistScreeningIndividualReviewCreateRequest: WatchlistScreeningIndividualReviewCreateRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningIndividualReviewCreateResponse, any>>;
    /**
     * List all reviews for the individual watchlist screening.
     * @summary List reviews for individual watchlist screenings
     * @param {WatchlistScreeningIndividualReviewListRequest} watchlistScreeningIndividualReviewListRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningIndividualReviewList(watchlistScreeningIndividualReviewListRequest: WatchlistScreeningIndividualReviewListRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningIndividualReviewListResponse, any>>;
    /**
     * Update a specific individual watchlist screening. This endpoint can be used to add additional customer information, correct outdated information, add a reference id, assign the individual to a reviewer, and update which program it is associated with. Please note that you may not update `search_terms` and `status` at the same time since editing `search_terms` may trigger an automatic `status` change.
     * @summary Update individual watchlist screening
     * @param {WatchlistScreeningIndividualUpdateRequest} watchlistScreeningIndividualUpdateRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    watchlistScreeningIndividualUpdate(watchlistScreeningIndividualUpdateRequest: WatchlistScreeningIndividualUpdateRequest, options?: any): Promise<import("axios").AxiosResponse<WatchlistScreeningIndividualUpdateResponse, any>>;
    /**
     * Plaid signs all outgoing webhooks and provides JSON Web Tokens (JWTs) so that you can verify the authenticity of any incoming webhooks to your application. A message signature is included in the `Plaid-Verification` header.  The `/webhook_verification_key/get` endpoint provides a JSON Web Key (JWK) that can be used to verify a JWT.
     * @summary Get webhook verification key
     * @param {WebhookVerificationKeyGetRequest} webhookVerificationKeyGetRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PlaidApi
     */
    webhookVerificationKeyGet(webhookVerificationKeyGetRequest: WebhookVerificationKeyGetRequest, options?: any): Promise<import("axios").AxiosResponse<WebhookVerificationKeyGetResponse, any>>;
}
