import { SecurityId } from "../../seclist/SecurityId";
import { SubAccountType } from "../accounts/SubAccountType";
import { PositionType } from "./PositionType";
import { Inv401KSource } from "./Inv401KSource";
/**
 * Class for the investment position aggregate.
 * @see "Section 13.9.2.6.1, OFX Spec"
 */
export declare class InvestmentPosition {
    private securityId;
    private heldInAccount;
    private positionType;
    private units;
    private unitPrice;
    private marketValue;
    private marketValueDate;
    private currencyCode;
    private memo;
    private inv401kSource;
    /**
     * Gets the security id for the position. This is a required field according to the OFX spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @return the security id for the position
     */
    getSecurityId(): SecurityId;
    /**
     * Sets the security id for the position. This is a required field according to the OFX spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @param securityId the security id for the position
     */
    setSecurityId(securityId: SecurityId): void;
    /**
     * Gets the sub-account type. One of "CASH", "MARGIN", "SHORT", "OTHER". This is a required field
     * according to the OFX spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @return the sub-account type
     */
    getHeldInAccount(): string;
    /**
     * Sets the sub-account type. One of "CASH", "MARGIN", "SHORT", "OTHER". This is a required field
     * according to the OFX spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @param heldInAccount the sub-account type
     */
    setHeldInAccount(heldInAccount: string): void;
    /**
     * Gets the sub-account type as one of the well-known types.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @return the sub-account type or null if it's not one of the well-known types
     */
    getHeldInAccountEnum(): SubAccountType;
    /**
     * Gets the position type. One of SHORT or LONG. This is a required field according to the OFX
     * spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @return the position type
     */
    getPositionType(): string;
    /**
     * Sets the position type. One of SHORT or LONG. This is a required field according to the OFX
     * spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @param positionType the position type
     */
    setPositionType(positionType: string): void;
    /**
     * Gets the position type as one of the well-known types.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @return the position type or null if it's not one of the well-known types
     */
    getPositionTypeEnum(): PositionType;
    /**
     * Gets the number of units in the position. 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.6.1, OFX Spec"
     *
     * @return the number of units in the position
     */
    getUnits(): number;
    /**
     * Sets the number of units in the position. 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.6.1, OFX Spec"
     *
     * @param units the number of units in the position
     */
    setUnits(units: 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.6.1, 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.6.1, OFX Spec"
     *
     * @param unitPrice the per unit price
     */
    setUnitPrice(unitPrice: number): void;
    /**
     * Gets the market value of this position. This is a required field according to the OFX spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @return the market value of the position
     */
    getMarketValue(): number;
    /**
     * Sets the market value of this position. This is a required field according to the OFX spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @param marketValue the market value of the position
     */
    setMarketValue(marketValue: number): void;
    /**
     * Gets the date and time of the unit price and market value. This is a required field according
     * to the OFX spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @return the market value date
     */
    getMarketValueDate(): Date;
    /**
     * Sets the date and time of the unit price and market value. This is a required field according
     * to the OFX spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @param marketValueDate the market value date
     */
    setMarketValueDate(marketValueDate: Date): void;
    /**
     * Gets the currency code of the position. This is an optional field according to the OFX spec.
     * If not present, it's the default currency of the account.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @return the currency code of the position or null for the default currency
     */
    getCurrencyCode(): string;
    /**
     * Sets the currency code of the position. This is an optional field according to the OFX spec.
     * If not present, it's the default currency of the account.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @param currencyCode the currency code of the position or null for the default currency
     */
    setCurrencyCode(currencyCode: string): void;
    /**
     * Gets the memo associated with the position. This is an optional field according to the OFX
     * spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @return the memo
     */
    getMemo(): string;
    /**
     * Sets the memo associated with the position. This is an optional field according to the OFX
     * spec.
     * @see "Section 13.9.2.6.1, OFX Spec"
     *
     * @param memo the memo
     */
    setMemo(memo: string): void;
    /**
     * Gets the 401K source for the sale. 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 401k source
     */
    get401kSource(): string;
    /**
     * Sets the 401K source for the sale. 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 401k source
     */
    set401kSource(inv401kSource: string): void;
    /**
     * Gets the 401k source as one of the well-known types.
     *
     * @return the 401k source or null if it's not one of the well-known types
     */
    get401kSourceEnum(): Inv401KSource;
}
