import { AccountInfo } from "../../common/AccountInfo";
import { InvestmentAccountDetails } from "./InvestmentAccountDetails";
import { AccountDetails } from "../../common/AccountDetails";
import { UnitedStatesAccountType } from "./UnitedStatesAccountType";
import { ActivationStatus } from "./ActivationStatus";
import { InvestmentAccountType } from "./AccountType";
/**
 * Aggregate for the info about a brokerage account.
 *
 * @see "OFX Spec, Section 13.6.2"
 */
export declare class InvestmentAccountInfo implements AccountInfo {
    private investmentAccount;
    private unitedStatesAccountType;
    private supportsChecking;
    private activationStatus;
    private investmentAccountType;
    private optionLevel;
    /**
     * Gets the investment account this information is referencing.
     *
     * @return the investment account this information is referencing
     */
    getInvestmentAccount(): InvestmentAccountDetails;
    /**
     * Sets the investment account this information is referencing. This is a required field
     * according to the OFX spec.
     *
     * @param investmentAccount the investment account this information is referencing
     */
    setInvestmentAccount(investmentAccount: InvestmentAccountDetails): void;
    getAccountDetails(): AccountDetails;
    /**
     * Gets the United States account type. This is a required field according to the OFX spec.
     * @see "OFX Spec, Section 13.6.1"
     *
     * @return the United States account type
     */
    getUnitedStatesAccountType(): string;
    /**
     * Sets United States account type. This is a required field according to the OFX spec.
     * @see "OFX Spec, Section 13.6.1"
     *
     * @param unitedStatesAccountType the United States account type
     */
    setUnitedStatesAccountType(unitedStatesAccountType: string): void;
    /**
     * Gets the United States account type as one of the well-known types.
     *
     * @return the account type or null if it's not one of the well-known types
     */
    getUnitedStatesAccountTypeEnum(): UnitedStatesAccountType;
    /**
     * Gets whether the account supports checking. This is a required field according to the OFX spec.
     * @see "OFX Spec, Section 13.6.1"
     *
     * @return whether the account supports checking
     */
    getSupportsChecking(): boolean;
    /**
     * Sets whether the account supports checking. This is a required field according to the OFX spec.
     * @see "OFX Spec, Section 13.6.1"
     *
     * @param supportsChecking whether the account supports checking
     */
    setSupportsChecking(supportsChecking: boolean): void;
    /**
     * Gets the activation status for investment statement download. This is a required field
     * according to the OFX spec.
     *
     * @return the activation status
     */
    getActivationStatus(): string;
    /**
     * Sets the activation status for investment statement download. This is a required field
     * according to the OFX spec.
     *
     * @param activationStatus the activation status
     */
    setActivationStatus(activationStatus: string): void;
    /**
     * Gets the activation status as one of the well-known types.
     *
     * @return the activation status or null if it wasn't one of the well known types
     */
    getActivationStatusEnum(): ActivationStatus;
    /**
     * Gets the type of investment account. One of "INDIVIDUAL", "JOINT", "TRUST", or "CORPORATE".
     * This is an optional field according to the OFX spec.
     *
     * @return the type of account
     */
    getInvestmentAccountType(): string;
    /**
     * Sets the type of investment account. One of "INDIVIDUAL", "JOINT", "TRUST", or "CORPORATE".
     * This is an optional field according to the OFX spec.
     *
     * @param investmentAccountType the type of account
     */
    setInvestmentAccountType(investmentAccountType: string): void;
    /**
     * Gets the type of investment account as one of the well-known types.
     *
     * @return the type of investment account or null if it's not one of the well-known types
     */
    getInvestmentAccountTypeEnum(): InvestmentAccountType;
    /**
     * Gets the description of option trading privileges. * This is an optional field according to
     * the OFX spec.
     *
     * @return the description of option trading privileges.
     */
    getOptionLevel(): string;
    /**
     * Sets the description of option trading privileges. * This is an optional field according to
     * the OFX spec.
     *
     * @param optionLevel the description of option trading privileges.
     */
    setOptionLevel(optionLevel: string): void;
}
