/**
 * 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 { PassThroughBody } from './PassThroughBody';
/**
 *
 * @export
 * @interface Item
 */
export interface Item {
    /**
     *
     * @type {string}
     * @memberof Item
     */
    name: string;
    /**
     *
     * @type {string}
     * @memberof Item
     */
    id?: string;
    /**
     * A value you specify that uniquely identifies this request among requests you have sent.
     * @type {string}
     * @memberof Item
     */
    idempotency_key?: string;
    /**
     *
     * @type {string}
     * @memberof Item
     */
    description?: string;
    /**
     *
     * @type {string}
     * @memberof Item
     */
    abbreviation?: string;
    /**
     *
     * @type {string}
     * @memberof Item
     */
    product_type?: ItemProductType;
    /**
     *
     * @type {number}
     * @memberof Item
     */
    price_amount?: number;
    /**
     *
     * @type {string}
     * @memberof Item
     */
    pricing_type?: ItemPricingType;
    /**
     *
     * @type {Currency}
     * @memberof Item
     */
    price_currency?: Currency | null;
    /**
     *
     * @type {number}
     * @memberof Item
     */
    cost?: number;
    /**
     * A list of Tax IDs for the product.
     * @type {Array<string>}
     * @memberof Item
     */
    tax_ids?: Array<string>;
    /**
     * True if this item should be counted as revenue. For example, gift cards and donations would not be counted as revenue.
     * @type {boolean}
     * @memberof Item
     */
    is_revenue?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof Item
     */
    use_default_tax_rates?: boolean;
    /**
     * A list of locations where the object is not present, even if present_at_all_locations is true. This can include locations that are deactivated.
     * @type {Array<string>}
     * @memberof Item
     */
    absent_at_location_ids?: Array<string>;
    /**
     *
     * @type {boolean}
     * @memberof Item
     */
    present_at_all_locations?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof Item
     */
    available_for_pickup?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof Item
     */
    available_online?: boolean;
    /**
     * SKU of the item
     * @type {string}
     * @memberof Item
     */
    sku?: string;
    /**
     * Product code, e.g. UPC or EAN
     * @type {string}
     * @memberof Item
     */
    code?: string;
    /**
     *
     * @type {Array<object>}
     * @memberof Item
     */
    categories?: Array<object>;
    /**
     * List of options pertaining to this item's attribute variation
     * @type {Array<object>}
     * @memberof Item
     */
    options?: Array<object>;
    /**
     *
     * @type {Array<object>}
     * @memberof Item
     */
    variations?: Array<object>;
    /**
     *
     * @type {Array<object>}
     * @memberof Item
     */
    modifier_groups?: Array<object>;
    /**
     *
     * @type {boolean}
     * @memberof Item
     */
    available?: boolean | null;
    /**
     *
     * @type {boolean}
     * @memberof Item
     */
    hidden?: boolean | null;
    /**
     * The user who last updated the object.
     * @type {string}
     * @memberof Item
     */
    readonly version?: string | null;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     * @type {object}
     * @memberof Item
     */
    readonly custom_mappings?: object | null;
    /**
     * Flag to indicate if the object is deleted.
     * @type {boolean}
     * @memberof Item
     */
    deleted?: boolean | null;
    /**
     * The user who last updated the object.
     * @type {string}
     * @memberof Item
     */
    readonly updated_by?: string | null;
    /**
     * The user who created the object.
     * @type {string}
     * @memberof Item
     */
    readonly created_by?: string | null;
    /**
     * The date and time when the object was last updated.
     * @type {Date}
     * @memberof Item
     */
    readonly updated_at?: Date | null;
    /**
     * The date and time when the object was created.
     * @type {Date}
     * @memberof Item
     */
    readonly created_at?: Date | null;
    /**
     *
     * @type {PassThroughBody}
     * @memberof Item
     */
    pass_through?: PassThroughBody;
}
/**
 * @export
 * @enum {string}
 */
export declare enum ItemProductType {
    regular = "regular",
    other = "other"
}
/**
 * @export
 * @enum {string}
 */
export declare enum ItemPricingType {
    fixed = "fixed",
    variable = "variable",
    per_unit = "per_unit",
    other = "other"
}
export declare function ItemFromJSON(json: any): Item;
export declare function ItemFromJSONTyped(json: any, ignoreDiscriminator: boolean): Item;
export declare function ItemToJSON(value?: Item | null): any;
