import { BaseOtherInvestmentTransaction } from "./BaseOtherInvestmentTransaction";
import { SecurityId } from "../../seclist/SecurityId";
import { SubAccountType } from "../accounts/SubAccountType";
import { TransferAction } from "./TransferAction";
import { PositionType } from "../positions/PositionType";
import { Inv401KSource } from "../positions/Inv401KSource";
/**
 * Transaction for transfers.
 * @see "Section 13.9.2.4.4, OFX Spec"
 */
export declare class TransferInvestmentTransaction extends BaseOtherInvestmentTransaction {
    private securityId;
    private subAccountSecurity;
    private units;
    private transferAction;
    private positionType;
    private averageCostBasis;
    private unitPrice;
    private purchaseDate;
    private inv401kSource;
    constructor();
    /**
     * Gets the id of the security that was transferred. This is a required field according to the OFX
     * spec.
     * @see "Section 13.9.2.4.3, OFX Spec"
     *
     * @return the security id of the security that was transferred
     */
    getSecurityId(): SecurityId;
    /**
     * Sets the id of the security that was transferred. This is a required field according to the OFX
     * spec.
     * @see "Section 13.9.2.4.3, OFX Spec"
     *
     * @param securityId the security id of the security that was transferred
     */
    setSecurityId(securityId: SecurityId): void;
    /**
      * Gets the sub account type for the security (e.g. CASH, MARGIN, SHORT, OTHER).
      * @see "Section 13.9.2.4.3, OFX Spec"
      *
      * @return the sub account type
      */
    getSubAccountSecurity(): string;
    /**
      * Sets the sub account type for the security (e.g. CASH, MARGIN, SHORT, OTHER).
      * @see "Section 13.9.2.4.3, OFX Spec"
      *
      * @param subAccountSecurity the sub account type
      */
    setSubAccountSecurity(subAccountSecurity: string): void;
    /**
     * Gets the result of getSubAccountSecurity as one of the well-known types.
     *
     * @return the type of null if it wasn't one of the well known types.
     */
    getSubAccountSecurityEnum(): SubAccountType;
    /**
     * Gets the number of units of the security that was transferred. For security-based actions other
     * than stock splits, this is the quantity bought. For stocks, mutual funds, and others, this
     * is the number of shares. For bonds, this is the face value. For options, this is the number of
     * contacts. This is a required field according to the OFX spec.
     * @see "Section 13.9.2.4.3, OFX Spec"
     *
     * @return the number of units transferred
     */
    getUnits(): number;
    /**
     * Sets the number of units of the security that was transferred. For security-based actions other
     * than stock splits, this is the quantity bought. For stocks, mutual funds, and others, this
     * is the number of shares. For bonds, this is the face value. For options, this is the number of
     * contacts. This is a required field according to the OFX spec.
     * @see "Section 13.9.2.4.3, OFX Spec"
     *
     * @param units the number of units transferred
     */
    setUnits(units: number): void;
    /**
     * Gets the type of transfer. One of "IN" or "OUT". This is a required field according to the
     * OFX spec.
     *
     * @return the type of transfer
     */
    getTransferAction(): string;
    /**
     * Sets the type of transfer. One of "IN" or "OUT". This is a required field according to the
     * OFX spec.
     *
     * @param transferAction the type of transfer
     */
    setTransferAction(transferAction: string): void;
    /**
     * Gets the transfer action as one of the well-known types.
     *
     * @return the type of transfer or null if it's not well known
     */
    getTransferActionEnum(): TransferAction;
    /**
     * Gets the type of position. One of "LONG" or "SHORT". This is a required field according to the
     * OFX spec.
     *
     * @return the position type
     */
    getPositionType(): string;
    /**
     * Sets the type of position. One of "LONG" or "SHORT". This is a required field according to the
     * OFX spec.
     *
     * @param positionType the position type
     */
    setPositionType(positionType: string): void;
    /**
     * Gets the position type as one of the well-known types.
     *
     * @return the position type or null if it's not well known
     */
    getPositionTypeEnum(): PositionType;
    /**
     * Gets the average cost basis for the securities being transfered. This is an optional field
     * according to the ofx spec.
     *
     * @return the average cost basis
     */
    getAverageCostBasis(): number;
    /**
     * Sets the average cost basis for the securities being transfered. This is an optional field
     * according to the ofx spec.
     *
     * @param averageCostBasis the average cost basis
     */
    setAverageCostBasis(averageCostBasis: number): void;
    /**
     * Gets the price per commonly-quoted unit. For stocks, mutual funds, and others, this is the
     * share price. For bonds, this is the percentage of par. For options, this is the per share (not
     * per contact) price. This is a required field according to the OFX spec.
     * @see "Section 13.9.2.4.3, OFX Spec"
     *
     * @return the per unit price
     */
    getUnitPrice(): number;
    /**
     * Sets the price per commonly-quoted unit. For stocks, mutual funds, and others, this is the
     * share price. For bonds, this is the percentage of par. For options, this is the per share (not
     * per contact) price. This is a required field according to the OFX spec.
     * @see "Section 13.9.2.4.3, OFX Spec"
     *
     * @param unitPrice the per unit price
     */
    setUnitPrice(unitPrice: number): void;
    /**
     * Gets the original date of purchase for the securities. This is an optional field according to
     * the ofx spec.
     *
     * @return the original date of purchase
     */
    getPurchaseDate(): Date;
    /**
     * Sets the original date of purchase for the securities. This is an optional field according to
     * the ofx spec.
     *
     * @param purchaseDate the original date of purchase
     */
    setPurchaseDate(purchaseDate: Date): void;
    /**
     * Gets the 401K source for the transfer. Should be one of "PRETAX", "AFTERTAX", "MATCH",
     * "PROFITSHARING", "ROLLOVER", "OTHERVEST", "OTHERNONVEST".  This is an optional field
     * according to the OFX spec.
     * @see "Section 13.9.2.4.3, OFX Spec"
     *
     * @return the state withholding
     */
    get401kSource(): string;
    /**
     * Sets the 401K source for the transfer. Should be one of "PRETAX", "AFTERTAX", "MATCH",
     * "PROFITSHARING", "ROLLOVER", "OTHERVEST", "OTHERNONVEST".  This is an optional field
     * according to the OFX spec.
     * @see "Section 13.9.2.4.3, OFX Spec"
     *
     * @param inv401kSource the state withholding
     */
    set401kSource(inv401kSource: string): void;
    /**
     * Gets the 401(k) source as one of the well-known types.
     *
     * @return the type of close or null if it's not well known.
     */
    get401kSourceEnum(): Inv401KSource;
}
