import Space from '../../lib/Space'; import { IImageInfo } from '../../utils/file'; import { IAttributeValue } from '../Attribute'; import { IG2ProductExternalValues } from '../G2'; import IInventory from '../Inventory'; import IPricing, { IPricingVariable, PricingCurrency } from '../Product/IPricing'; import IDiscountRule from '../Rules/IDiscountRule'; import { ExternalServiceSlugEnum } from '../Space/IExternalService'; import ITranslation from '../Translation'; export default interface IDeclination { readonly id?: string; readonly disabled?: boolean; readonly product_id?: string; readonly sku: string; readonly upc?: string; readonly supplier_code?: string; readonly slug: string; readonly attributes: IDeclinationAttribute[]; readonly name: ITranslation[]; readonly description?: ITranslation[]; readonly image_files: IImageInfo[]; readonly stock_level?: IInventory; readonly rp?: number; readonly shipping_info: IShippingInfo; readonly price: IPriceOptions; readonly discount_rules: IDiscountRule[]; readonly is_multiple?: boolean; readonly is_sample?: boolean; readonly sample_sku?: string; readonly sample_price?: number; readonly sample_stock_level?: IInventory; readonly sample_shipping_info?: IShippingInfo; readonly other_units?: IFilledDimensionUnits[]; readonly hide_inventory?: boolean; readonly external_values?: IG2ProductExternalValues; readonly promise_to_purchase_association_ids?: string[]; readonly created_from_external_service?: ExternalServiceSlugEnum; readonly marketplace_ref?: { readonly cardtrader?: number; }; } export interface IFilledDimensionUnits { readonly unit_slug: string; readonly fitting_unit?: number; readonly is_sale_unit?: boolean; readonly is_command_unit?: boolean; readonly is_command_step?: boolean; readonly is_inventory_unit?: boolean; } export interface IDeclinationAttribute { readonly attribute_id: string; readonly slug?: string; readonly values: IAttributeValue[]; readonly overriden_values?: string; } export interface IShippingInfo { readonly is_not_shippable?: boolean; readonly unit_measurments: 'centimeters' | 'inches'; readonly height?: number; readonly width?: number; readonly length?: number; readonly unit_weight: 'kilograms' | 'pounds'; readonly weight?: number; readonly shipping_details?: string; } export interface IPriceOptions { readonly regular: IPricing; readonly tax_exemption?: boolean; readonly discountPrice?: IPricingVariable; readonly pdsf?: IPricing; readonly cost?: IPricing; readonly prices_list?: IPriceListOption[]; readonly booking?: IPricing; readonly exclude_from_cost_calulations?: boolean; } export interface IPriceListOption { readonly group_id: string; readonly amount: number; readonly custom_promo_applies?: boolean; readonly is_net_price?: boolean; readonly external_slug?: string; } export declare const emptyDeclination: (currency?: PricingCurrency, baseInfo?: { readonly name: ITranslation[]; readonly description?: ITranslation[]; readonly slug: string; readonly id?: string; }, space?: Space, keepUnitsEmpty?: boolean) => IDeclination; export declare const constructExternalValuesForDecli: (space: Space | undefined) => { [key: string]: string; } | undefined; export declare const getDefaultShippingInfo: (space?: Space) => { is_not_shippable: boolean; unit_measurments: any; height: number; width: number; length: number; unit_weight: any; weight: number; }; export declare const getDefaultPrice: (currency?: PricingCurrency) => { currency: PricingCurrency; regular: { amount: number; taxable: boolean; }; discountPrice: { amount: number; taxable: boolean; unit: string; value: number; }; pdsf: { amount: number; taxable: boolean; }; };