/**
* @todo types from here should be imported from generated gql
*/
import { AddToBagResponse as AddToBag, UpdateBagResponse as UpdateBag, EstimateInfoInput, LabelValue, SkuDetails, ContactUsNotReal, CartProduct, ShippingMethod, CartBuyInfo, CartInfo, CartItemInfo, CartPaymentCardInfo, CartState, CartStateProperties, CartUserInfo, Math } from '@skava/graphql-bindings';
import { ShoppingCartContextType, CartProduct as CartProductType } from 'state/__product/typings.cart';
export interface UpdateBagResponse {
data: {
updateBag: UpdateBag;
};
}
export interface AddToBagResponse {
data: {
addToBag: AddToBag;
};
}
export interface CalculateShippingTaxType extends EstimateInfoInput {
county?: string;
}
export interface GeoCodeType {
results: [{
address_components: AddressData[];
}];
}
export interface MatchedDataType {
types: string;
short_name?: string;
long_name?: string;
}
export interface AddressData {
[key: string]: any;
}
export interface ShoppingCartProps extends ShoppingCartContextType {
isCheckoutPage?: boolean;
shouldShowPlaceHolderOnRender?: boolean;
shouldRender?: boolean;
isCheckout?: boolean;
}
export interface SaveForLater {
key?: string;
listItemId?: string;
name?: string;
identifier?: string;
quantity?: string;
additionalProps?: LabelValue[];
sku?: SkuDetails[];
skuId: string;
}
export declare type CartDetailsTypes = {
products?: CartProductType[];
contactus?: ContactUsNotReal;
giftproducts?: CartProduct[];
saveforlater?: CartProduct[];
promocodes?: CartProduct[];
status?: string;
shippingmethodtype?: string;
shippingmethods?: ShippingMethod[];
buyinfo?: CartBuyInfo;
cartinfo: CartInfo;
iteminfo?: CartItemInfo;
math?: Math;
paymentcardinfo?: CartPaymentCardInfo;
state?: CartState;
properties?: CartStateProperties;
userinfo?: CartUserInfo[];
type?: string;
};