import { InvestmentTransactionType } from "../investment/transactions/TransactionType";
import { CorrectionAction } from "./CorrectionAction";
import { Payee } from "./Payee";
import { BankAccountDetails } from "../banking/BankAccountDetails";
import { CreditCardAccountDetails } from "../creditcard/CreditCardAccountDetails";
import { Currency } from "./Currency";
export declare class Transaction {
    private transactionType;
    private datePosted;
    private dateInitiated;
    private dateAvailable;
    private amount;
    private id;
    private correctionId;
    private correctionAction;
    private tempId;
    private checkNumber;
    private referenceNumber;
    private standardIndustrialCode;
    private payeeId;
    private name;
    private payee;
    private bankAccountTo;
    private creditCardAccountTo;
    private memo;
    private currency;
    private originalCurrency;
    /**
     * The transaction type.
     *
     * @return The transaction type.
     */
    getTransactionType(): InvestmentTransactionType;
    /**
     * The transaction type.
     *
     * @param transactionType The transaction type.
     */
    setTransactionType(transactionType: InvestmentTransactionType): void;
    /**
     * The date the transaction was posted.
     *
     * @return The date the transaction was posted.
     */
    getDatePosted(): Date;
    /**
     * The date the transaction was posted.
     *
     * @param datePosted The date the transaction was posted.
     */
    setDatePosted(datePosted: Date): void;
    /**
     * The date the transaction was initiated.
     *
     * @return The date the transaction was initiated.
     */
    getDateInitiated(): Date;
    /**
     * The date the transaction was initiated.
     *
     * @param dateInitiated The date the transaction was initiated.
     */
    setDateInitiated(dateInitiated: Date): void;
    /**
     * The date the funds are available.
     *
     * @return The date the funds are available.
     */
    getDateAvailable(): Date;
    /**
     * The date the funds are available.
     *
     * @param dateAvailable The date the funds are available.
     */
    setDateAvailable(dateAvailable: Date): void;
    /**
     * The transaction amount.
     *
     * @return The transaction amount.
     */
    getAmount(): number;
    /**
     * The transaction amount.
     *
     * @param amount The transaction amount.
     */
    setAmount(amount: number): void;
    /**
     * The transaction amount.
     *
     * @return The transaction amount.
     */
    getBigDecimalAmount(): number;
    /**
     * The transaction amount.
     *
     * @param amount The transaction amount.
     */
    setBigDecimalAmount(amount: number): void;
    /**
     * The transaction id (server-assigned).
     *
     * @return The transaction id (server-assigned).
     */
    getId(): string;
    /**
     * The transaction id (server-assigned).
     *
     * @param id The transaction id (server-assigned).
     */
    setId(id: string): void;
    /**
     * The id of the transaction that this is correcting.
     *
     * @return The id of the transaction that this is correcting.
     */
    getCorrectionId(): string;
    /**
     * The id of the transaction that this is correcting.
     *
     * @param correctionId The id of the transaction that this is correcting.
     */
    setCorrectionId(correctionId: string): void;
    /**
     * The action to take on the {@link #getCorrectionId() corrected transaction}.
     *
     * @return The action to take on the {@link #getCorrectionId() corrected transaction}.
     */
    getCorrectionAction(): CorrectionAction;
    /**
     * The action to take on the {@link #getCorrectionId() corrected transaction}.
     *
     * @param correctionAction The action to take on the {@link #getCorrectionId() corrected transaction}.
     */
    setCorrectionAction(correctionAction: CorrectionAction): void;
    /**
     * The server-assigned temporary id for client-initiated transactions.
     *
     * @return The server-assigned temporary id for client-initiated transactions.
     */
    getTempId(): string;
    /**
     * The server-assigned temporary id for client-initiated transactions.
     *
     * @param tempId The server-assigned temporary id for client-initiated transactions.
     */
    setTempId(tempId: string): void;
    /**
     * The check number.
     *
     * @return The check number.
     */
    getCheckNumber(): string;
    /**
     * The check number.
     *
     * @param checkNumber The check number.
     */
    setCheckNumber(checkNumber: string): void;
    /**
     * The reference number.
     *
     * @return The reference number.
     */
    getReferenceNumber(): string;
    /**
     * The reference number.
     *
     * @param referenceNumber The reference number.
     */
    setReferenceNumber(referenceNumber: string): void;
    /**
     * The standard industrial code.
     *
     * @return The standard industrial code.
     */
    getStandardIndustrialCode(): string;
    /**
     * The standard industrial code.
     *
     * @param standardIndustrialCode The standard industrial code.
     */
    setStandardIndustrialCode(standardIndustrialCode: string): void;
    /**
     * The payee id.
     *
     * @return The payee id.
     */
    getPayeeId(): string;
    /**
     * The payee id.
     *
     * @param payeeId The payee id.
     */
    setPayeeId(payeeId: string): void;
    /**
     * The name (description) or the transaction.
     *
     * @return The name (description) or the transaction.
     */
    getName(): string;
    /**
     * The name (description) or the transaction.
     *
     * @param name The name (description) or the transaction.
     */
    setName(name: string): void;
    /**
     * The payee.
     *
     * @return The payee.
     */
    getPayee(): Payee;
    /**
     * The payee.
     *
     * @param payee The payee.
     */
    setPayee(payee: Payee): void;
    /**
     * The bank account the transfer was to.
     *
     * @return The bank account the transfer was to.
     */
    getBankAccountTo(): BankAccountDetails;
    /**
     * The bank account the transfer was to.
     *
     * @param bankAccountTo The bank account the transfer was to.
     */
    setBankAccountTo(bankAccountTo: BankAccountDetails): void;
    /**
     * The credit-card account the transfer was to.
     *
     * @return The credit-card account the transfer was to.
     */
    getCreditCardAccountTo(): CreditCardAccountDetails;
    /**
     * The credit-card account the transfer was to.
     *
     * @param creditCardAccountTo The credit-card account the transfer was to.
     */
    setCreditCardAccountTo(creditCardAccountTo: CreditCardAccountDetails): void;
    /**
     * Notes.
     *
     * @return Notes.
     */
    getMemo(): string;
    /**
     * Notes.
     *
     * @param memo Notes.
     */
    setMemo(memo: string): void;
    /**
     * The currency.
     *
     * @return The currency.
     */
    getCurrency(): Currency;
    /**
     * The currency.
     *
     * @param currency The currency.
     */
    setCurrency(currency: Currency): void;
    /**
     * The original currency.
     *
     * @return The original currency.
     */
    getOriginalCurrency(): Currency;
    /**
     * The original currency.
     *
     * @param originalCurrency The original currency.
     */
    setOriginalCurrency(originalCurrency: Currency): void;
}
