/**
 * Apideck
 * The Apideck OpenAPI Spec: SDK Optimized
 *
 * The version of the OpenAPI document: 10.13.0
 * Contact: support@apideck.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { Currency } from './Currency';
import { CustomField } from './CustomField';
import { JournalEntryLineItem } from './JournalEntryLineItem';
import { LinkedTrackingCategories } from './LinkedTrackingCategories';
import { PassThroughBody } from './PassThroughBody';
/**
 *
 * @export
 * @interface JournalEntry
 */
export interface JournalEntry {
    /**
     * A unique identifier for an object.
     * @type {string}
     * @memberof JournalEntry
     */
    readonly id?: string;
    /**
     * Journal entry title
     * @type {string}
     * @memberof JournalEntry
     */
    title?: string | null;
    /**
     * Currency Exchange Rate at the time entity was recorded/generated.
     * @type {number}
     * @memberof JournalEntry
     */
    currency_rate?: number | null;
    /**
     *
     * @type {Currency}
     * @memberof JournalEntry
     */
    currency?: Currency | null;
    /**
     * The company or subsidiary id the transaction belongs to
     * @type {string}
     * @memberof JournalEntry
     */
    company_id?: string | null;
    /**
     * Requires a minimum of 2 line items that sum to 0
     * @type {Array<JournalEntryLineItem>}
     * @memberof JournalEntry
     */
    line_items?: Array<JournalEntryLineItem>;
    /**
     * Reference for the journal entry.
     * @type {string}
     * @memberof JournalEntry
     */
    memo?: string | null;
    /**
     * This is the date on which the journal entry was added. This can be different from the creation date and can also be backdated.
     * @type {Date}
     * @memberof JournalEntry
     */
    posted_at?: Date;
    /**
     * Journal symbol of the entry. For example IND for indirect costs
     * @type {string}
     * @memberof JournalEntry
     */
    journal_symbol?: string | null;
    /**
     * The specific category of tax associated with a transaction like sales or purchase
     * @type {string}
     * @memberof JournalEntry
     */
    tax_type?: string | null;
    /**
     * Applicable tax id/code override if tax is not supplied on a line item basis.
     * @type {string}
     * @memberof JournalEntry
     */
    tax_code?: string | null;
    /**
     * Journal entry number.
     * @type {string}
     * @memberof JournalEntry
     */
    number?: string | null;
    /**
     *
     * @type {LinkedTrackingCategories}
     * @memberof JournalEntry
     */
    tracking_categories?: LinkedTrackingCategories | null;
    /**
     * Accounting period
     * @type {string}
     * @memberof JournalEntry
     */
    accounting_period?: string | null;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     * @type {object}
     * @memberof JournalEntry
     */
    readonly custom_mappings?: object | null;
    /**
     * The user who last updated the object.
     * @type {string}
     * @memberof JournalEntry
     */
    readonly updated_by?: string | null;
    /**
     * The user who created the object.
     * @type {string}
     * @memberof JournalEntry
     */
    readonly created_by?: string | null;
    /**
     * The date and time when the object was last updated.
     * @type {Date}
     * @memberof JournalEntry
     */
    readonly updated_at?: Date | null;
    /**
     * The date and time when the object was created.
     * @type {Date}
     * @memberof JournalEntry
     */
    readonly created_at?: Date | null;
    /**
     * A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object.
     * @type {string}
     * @memberof JournalEntry
     */
    row_version?: string | null;
    /**
     *
     * @type {Array<CustomField>}
     * @memberof JournalEntry
     */
    custom_fields?: Array<CustomField>;
    /**
     *
     * @type {PassThroughBody}
     * @memberof JournalEntry
     */
    pass_through?: PassThroughBody;
}
export declare function JournalEntryFromJSON(json: any): JournalEntry;
export declare function JournalEntryFromJSONTyped(json: any, ignoreDiscriminator: boolean): JournalEntry;
export declare function JournalEntryToJSON(value?: JournalEntry | null): any;
