import { Amount } from "./amount";
import { Financier } from "./financier";
export declare class SourceOfFunds {
    /**
    * Indicates whether the funds are coming from transactions processed by Adyen. If **false**, the `type` is required.
    */
    "adyenProcessedFunds": boolean;
    "amount"?: Amount | null;
    /**
    * The number of months that the asset has been in possession of the user.  For example, if the source of funds is of type **cryptocurrencyIncome** then `assetMonthsHeld` is the number of months the user has owned the cryptocurrency.
    */
    "assetMonthsHeld"?: number;
    /**
    * Required if `type` is **cryptocurrencyIncome**. The cryptocurrency exchange where the funds were acquired.
    */
    "cryptocurrencyExchange"?: string;
    /**
    * Required if `type` is **donations** or **inheritance**. The date the funds were received, in YYYY-MM-DD format.
    */
    "dateOfFundsReceived"?: string;
    /**
    * Required if `type` is **assetSale** or **gamblingWinnings**. The date the funds were received, in YYYY-MM-DD format.  For example, if the source of funds is of type **assetSale**, the dateOfSourceEvent is the date of the sale. If the source of funds is of type **gamblingWinnings**, the dateOfSourceEvent is the date of winnings.
    */
    "dateOfSourceEvent"?: string;
    /**
    * Required if `type` is **business** or **assetSale**. A description for the source of funds.  For example, for `type` **business**, provide a description of where the business transactions come from, such as payments through bank transfer. For `type` **assetSale**, provide a description of the asset. For example, the address of a residential property if it is a property sale.
    */
    "description"?: string;
    /**
    * Required if `type` is **thirdPartyFunding**. Information about the financiers.
    */
    "financiers"?: Array<Financier>;
    /**
    * Required if `type` is **donations** or **inheritance**. The legal entity ID representing the originator of the source of funds.  For example, if the source of funds is **inheritance**, then `originatorOfFundsReference` should be the legal entity reference of the benefactor.
    */
    "originatorLegalEntityId"?: string;
    /**
    * Required if `type` is **donations**. The reason for receiving the funds.
    */
    "purpose"?: string;
    /**
    * Required if `type` is **donations** or **inheritance**. The relationship of the originator of the funds to the recipient.
    */
    "relationship"?: string;
    /**
    * The type of the source of funds.    Possible values: *  **business** *  **employment** *  **donations** *  **inheritance** *  **financialAid** *  **rentalIncome** *  **dividendIncome** *  **royaltyIncome** *  **thirdPartyFunding** *  **pensionIncome** *  **insuranceSettlement** *  **cryptocurrencyIncome** *  **assetSale** *  **loans** *  **gamblingWinnings**
    */
    "type"?: SourceOfFunds.TypeEnum;
    /**
    * Required if `type` is **gamblingWinnings**. The location of the gambling site for the winnings.  For example, if the source of funds is online gambling, provide the website of the gambling company.
    */
    "website"?: string;
    static readonly discriminator: string | undefined;
    static readonly mapping: {
        [index: string]: string;
    } | undefined;
    static readonly attributeTypeMap: Array<{
        name: string;
        baseName: string;
        type: string;
        format: string;
    }>;
    static getAttributeTypeMap(): {
        name: string;
        baseName: string;
        type: string;
        format: string;
    }[];
    constructor();
}
export declare namespace SourceOfFunds {
    enum TypeEnum {
        Business = "business",
        Employment = "employment",
        Donations = "donations",
        Inheritance = "inheritance",
        FinancialAid = "financialAid",
        RentalIncome = "rentalIncome",
        DividendIncome = "dividendIncome",
        RoyaltyIncome = "royaltyIncome",
        ThirdPartyFunding = "thirdPartyFunding",
        PensionIncome = "pensionIncome",
        InsuranceSettlement = "insuranceSettlement",
        CryptocurrencyIncome = "cryptocurrencyIncome",
        AssetSale = "assetSale",
        Loans = "loans",
        GamblingWinnings = "gamblingWinnings"
    }
}
