import { CurrencyCode, PageFilters } from './common';
export declare const INVESTMENT_TYPES: readonly ["MUTUAL_FUND", "SECURITY", "EQUITY", "COE", "FIXED_INCOME", "ETF", "OTHER"];
/**
 * @typedef InvestmentType
 * Type of investment
 */
export declare type InvestmentType = typeof INVESTMENT_TYPES[number];
export declare const INVESTMENT_STATUS: readonly ["ACTIVE", "PENDING", "TOTAL_WITHDRAWAL"];
/**
 * @typedef InvestmentStatus
 * Status of investment
 */
export declare type InvestmentStatus = typeof INVESTMENT_STATUS[number];
export declare const COE_INVESTMENT_SUBTYPES: readonly ["STRUCTURED_NOTE"];
export declare type CoeInvestmentSubtype = typeof COE_INVESTMENT_SUBTYPES[number];
export declare const MUTUAL_FUND_INVESTMENT_SUBTYPES: readonly ["INVESTMENT_FUND", "MULTIMARKET_FUND", "FIXED_INCOME_FUND", "STOCK_FUND", "ETF_FUND", "OFFSHORE_FUND", "FIP_FUND", "EXCHANGE_FUND", "FI_INFRA", "FI_AGRO"];
export declare type MutualFundInvestmentSubtype = typeof MUTUAL_FUND_INVESTMENT_SUBTYPES[number];
export declare const SECURITY_INVESTMENT_SUBTYPES: readonly ["RETIREMENT"];
export declare type SecurityInvestmentSubtype = typeof SECURITY_INVESTMENT_SUBTYPES[number];
export declare const EQUITY_INVESTMENT_SUBTYPES: readonly ["STOCK", "ETF", "REAL_ESTATE_FUND", "BDR", "DERIVATIVES", "OPTION"];
export declare type EquityInvestmentSubtype = typeof EQUITY_INVESTMENT_SUBTYPES[number];
export declare const FIXED_INCOME_INVESTMENT_SUBTYPES: readonly ["TREASURY", "LCI", "LCA", "CDB", "CRI", "CRA", "CORPORATE_DEBT", "LC", "DEBENTURES"];
export declare type FixedIncomeInvestmentSubtype = typeof FIXED_INCOME_INVESTMENT_SUBTYPES[number];
export declare const INVESTMENT_SUBTYPES: readonly ["INVESTMENT_FUND", "MULTIMARKET_FUND", "FIXED_INCOME_FUND", "STOCK_FUND", "ETF_FUND", "OFFSHORE_FUND", "FIP_FUND", "EXCHANGE_FUND", "FI_INFRA", "FI_AGRO", "RETIREMENT", "STOCK", "ETF", "REAL_ESTATE_FUND", "BDR", "DERIVATIVES", "OPTION", "TREASURY", "LCI", "LCA", "CDB", "CRI", "CRA", "CORPORATE_DEBT", "LC", "DEBENTURES", "STRUCTURED_NOTE", "OTHER"];
export declare type InvestmentSubtype = typeof INVESTMENT_SUBTYPES[number];
export declare const INVESTMENT_TRANSACTION_TYPE: readonly ["BUY", "SELL", "TAX", "TRANSFER"];
export declare type InvestmentTransactionType = typeof INVESTMENT_TRANSACTION_TYPE[number];
/*!
  For extra details visit: https://docs.pluggy.ai/docs/investment-1
  RateTypes represent the index from where the rate is based.
*/
export declare const INVESTMENT_RATE_TYPES: string[];
export declare type InvestmentRateType = typeof INVESTMENT_RATE_TYPES[number];
/**
 * @typedef MovementType
 * The direction of the transaction.
 * If DEBIT, balance decreasing from the investment.
 * If CREDIT, balance increasing on the investment.
 */
export declare const MOVEMENT_TYPES: readonly ["DEBIT", "CREDIT"];
export declare type MovementType = typeof MOVEMENT_TYPES[number];
export declare type Expenses = {
    /** Service tax that varies according to state */
    serviceTax: number | null;
    /** Commission charged by the brokerage for carrying out transactions on the stock market */
    brokerageFee: number | null;
    /** Income Tax Withholding, amount paid to the Internal Revenue Service */
    incomeTax: number | null;
    /** Sum of other not defined expenses */
    other: number | null;
    /** Fee of Notice of Trading in Assets */
    tradingAssetsNoticeFee: number | null;
    /** Fees charged by BM&F Bovespa in negotiations */
    maintenanceFee: number | null;
    /** Liquidation fee for the settlement of a position on the expiration date or the financial settlement of physical delivery */
    settlementFee: number | null;
    /** Registration fee */
    clearingFee: number | null;
    /** Fees charged by BM&F Bovespa as a source of operating income  */
    stockExchangeFee: number | null;
    /** Fee by brokers to keep recordsin their home broker systems or on the trading desk */
    custodyFee: number | null;
    /** Amount paid to the Operator for the intermediation service  */
    operatingFee: number | null;
};
export declare type InvestmentMetadata = {
    /** Regime of the tax used for the asset */
    taxRegime: string | null;
    /** Asset proposal number identification */
    proposalNumber: string | null;
    /** Process identification number from the institution (susep) */
    processNumber: string | null;
};
export declare type InvestmentTransaction = {
    /** Primary identifier of the transacion */
    id: string;
    /** Type of the transaction */
    type: InvestmentTransactionType | null;
    /** Description of the transaction */
    description: string | null;
    /** Investment identifier related to the transaction */
    investmentId: string | null;
    /** Quantity of quotas purchased */
    quantity: number | null;
    /** Value of the purchased quotas */
    value: number | null;
    /** Amount spent or withrawaled from the investment. */
    amount: number | null;
    /** Date the transaction was placed. */
    date: Date;
    /** Date the transaction was confirmed */
    tradeDate: Date | null;
    /** Number of the corresponding brokerage note */
    brokerageNumber: string | null;
    /** Value including expenses */
    netAmount: number | null;
    /** Taxes and fees that apply */
    expenses: Expenses | null;
    /** Type of movement */
    movementType: MovementType;
    /** Agreed rate for fixed income investments */
    agreedRate: number | null;
};
/** institution holding the investment */
export declare type InvestmentInstitution = {
    /** Full name of the institution */
    name: string | null;
    /** Number identifier for the institution CNPJ / Other */
    number: string | null;
};
export declare type Investment = {
    id: string;
    /** Unique primary identifier for the investment available for the hole country. In brazil is CNPJ. */
    code: string | null;
    /** CNPJ of the issuer behind the investment. */
    issuerCNPJ: string | null;
    /** Unique FI provider identifier that attach's the owner to an investment and its available as a reference. */
    number: string | null;
    /** 12-character ISIN, a globally unique identifier */
    isin: string | null;
    /** Item identifier asscoiated with the investment */
    itemId: string;
    /** Type of investment associated. */
    type: InvestmentType;
    /** Subtype of investment */
    subtype: InvestmentSubtype | null;
    /** Primary name for the investment */
    name: string;
    /** Currency ISO code where amounts are shown */
    currencyCode: CurrencyCode;
    /** Quota's date | Value's Date. (Quota's are related to MUTUAL_FUNDS or ETF, others use the investment amount reference date) */
    date: Date | null;
    /** Value of the adquired quantity. (Quota's are related to MUTUAL_FUNDS or ETF, others usually default to the amount) */
    value: number | null;
    /** Quota's quantity adquired. (Quota's are related to MUTUAL_FUNDS or ETF, others usually default to 1) */
    quantity: number | null;
    /** Rent type taxes associated (I.R , Ingresos Brutos) */
    taxes: number | null;
    /** Financial type taxes associated (Impuesto Operaciones Financieras) */
    taxes2: number | null;
    /** Net worth balance / amount of the investment. Is the real current value. */
    balance: number;
    /** Current gross amount of the investment pre-taxes. (As a general rule, `Value` * `Quantity` = `Amount`) */
    amount: number | null;
    /** Available for withdraw balance. */
    amountWithdrawal: number | null;
    /** Amount that was gained / loss from the investment */
    amountProfit: number | null;
    /** Original amount deposited in the investment */
    amountOriginal: number | null;
    /** Date when the investment is due. (Normally FIXED_INCOME investments have a dueDate) */
    dueDate: Date | null;
    /** Entity name that issued the investment. (Normally FIXED_INCOME investments are issued by an entity) */
    issuer: string | null;
    /** Date when the investment was issued. (Normally FIXED_INCOME investments are issued by an entity) */
    issueDate: Date | null;
    /** Date when the investment was purchased. */
    purchaseDate: Date | null;
    /** Fixed rate for the investment. (Normally only available in FIXED_INCOME types) */
    rate: number | null;
    /** Fixed rate type for the investment, ie. CDI. (Normally only available in FIXED_INCOME types) */
    rateType: InvestmentRateType | null;
    /** Fixed annual rate for the investment, ie. 10.5. (Normally only available in FIXED_INCOME types) */
    fixedAnnualRate: number | null;
    /** Previous months rate value of the investment */
    lastMonthRate: number | null;
    /** Calendar annual rate, is a percentage of how it performed. (Normally only available in MUTUAL_FUNDS or ETF types) */
    annualRate: number | null;
    /**  Last 12 month rate, is a percentage of how it performed. (Normally only available in MUTUAL_FUNDS or ETF types) */
    lastTwelveMonthsRate: number | null;
    /** Current status of the investment */
    status: InvestmentStatus | null;
    /**
     * Transactions made related to the investment, like adquisitions (BUY) or withdrawals (SELL).
     * @deprecated use `client.fetchInvestmentTransactions(investmentId, searchFilters)` instead
     * this field is null unless the application was created before 2023-03-20
     *  */
    transactions: InvestmentTransaction[] | null;
    /** Investment tax information */
    metadata: InvestmentMetadata | null;
    /** Name of the owner */
    owner: string | null;
    /** Financial institution holder  of the investment */
    institution: InvestmentInstitution | null;
};
export declare type InvestmentsFilters = PageFilters;
