import { InvestmentTransactionType } from "./TransactionType";
import { InvestmentTransaction } from "./InvestmentTransaction";
/**
 * Base class for all investment transactions.
 * <br>
 * This class exposes a read-only view of the flattened aggregates that are
 * common to all investment transactions as a convenience to application
 * developers who may not find the ofx aggregation model intuitive.
 */
export declare abstract class BaseInvestmentTransaction {
    private transactionType;
    constructor(transactionType: InvestmentTransactionType);
    /**
     * Gets the type of transaction.
     *
     * @return the type of transaction
     */
    getTransactionType(): InvestmentTransactionType;
    /**
     * Gets the {@link InvestmentTransaction} aggregate.
     *
     * @return the {@link InvestmentTransaction} aggregate
     */
    abstract getInvestmentTransaction(): InvestmentTransaction;
    /**
     * Gets the unique financial institution assigned transaction id. This is a
     * required field according to the OFX spec.
     * @see "Section 13.9.2.4.1, OFX Spec"
     *
     * @return the financial institution asssigned transaction id
     */
    getTransactionId(): string;
    /**
     * Gets the server assigned transaction id. This is an optional field
     * according to the OFX spec.
     * @see "Section 13.9.2.4.1, OFX Spec"
     *
     * @return the server assigned transaction id
     */
    getServerId(): string;
    /**
     * Gets the trade date of the transaction. For stock splits, this is the
     * day of record. This is a required field according to the OFX spec.
     * @see "Section 13.9.2.4.1, OFX Spec"
     *
     * @return the trade date
     */
    getTradeDate(): Date;
    /**
     * Gets the settlement date of the transaction. For stock splits, this is the
     * day of of execution. This is an optional field according to the OFX spec.
     * @see "Section 13.9.2.4.1, OFX Spec"
     *
     * @return the trade date
     */
    getSettlementDate(): Date;
    /**
     * For a reveral transaction, gets the financial institution assigned
     * transaction id for the transaction being revesed.
     * @see "Section 13.9.2.4.1, OFX Spec"
     *
     * @return the transaction id of the transaction being reversed
     */
    getReversalTransactionId(): string;
    /**
     * Gets the memo associated with the transaction. This is an optional field
     * according to the OFX spec.
     * @see "Section 13.9.2.4.1, OFX Spec"
     *
     * @return the memo
     */
    getMemo(): string;
}
