import { FACET_CROSS_SELLING_MAP } from '../../utils/facets'; import type { PortalProduct } from './types/Product'; import type { Context, Options } from '../../index'; import type { Brand } from './types/Brand'; import type { CategoryTree } from './types/CategoryTree'; import type { OrderForm, OrderFormInputItem } from './types/OrderForm'; import type { PortalPagetype } from './types/Portal'; import type { Region, RegionInput } from './types/Region'; import type { Simulation, SimulationArgs, SimulationOptions } from './types/Simulation'; import type { Session } from './types/Session'; import type { Channel } from '../../utils/channel'; import type { SalesChannel } from './types/SalesChannel'; import { MasterDataResponse } from './types/Newsletter'; import type { Address, AddressInput } from './types/Address'; import { DeliveryMode, SelectedAddress } from './types/ShippingData'; type ValueOf = T extends Record ? K : never; export declare const VtexCommerce: ({ account, environment, incrementAddress, subDomainPrefix }: Options, ctx: Context) => { catalog: { salesChannel: (sc: string) => Promise; brand: { list: () => Promise; }; category: { tree: (depth?: number) => Promise; }; portal: { pagetype: (slug: string) => Promise; }; products: { crossselling: ({ type, productId, groupByProduct, }: { type: ValueOf; productId: string; groupByProduct?: boolean | undefined; }) => Promise; }; }; checkout: { simulation: (args: SimulationArgs, { salesChannel }?: SimulationOptions) => Promise; shippingData: ({ id, index, deliveryMode, selectedAddresses, }: { id: string; index: number; deliveryMode?: DeliveryMode | null | undefined; selectedAddresses: SelectedAddress[]; }, setDeliveryWindow?: boolean) => Promise; orderForm: ({ id, refreshOutdatedData, channel, }: { id: string; refreshOutdatedData?: boolean | undefined; channel?: Required | undefined; }) => Promise; clearOrderFormMessages: ({ id }: { id: string; }) => Promise; updateOrderFormItems: ({ id, orderItems, allowOutdatedData, salesChannel, shouldSplitItem, }: { id: string; orderItems: OrderFormInputItem[]; allowOutdatedData?: "paymentData" | undefined; salesChannel?: string | undefined; shouldSplitItem?: boolean | null | undefined; }) => Promise; setCustomData: ({ id, appId, key, value, }: { id: string; appId: string; key: string; value: string; }) => Promise; region: ({ postalCode, geoCoordinates, country, salesChannel, }: RegionInput) => Promise; address: ({ postalCode, country, }: AddressInput) => Promise
; }; session: (search: string) => Promise; subscribeToNewsletter: (data: { name: string; email: string; }) => Promise; }; export {};