import { AppClient, InstanceOptions, IOContext } from '@vtex/api'; import { Brand, CategoryByIdResponse, CategoryTreeResponse, FieldResponseAPI, FilterListTreeCategoryById, SearchArgs, SearchAutocompleteUnit, SearchFacets, SearchProduct } from '../typings/search'; import { SearchCrossSellingTypes } from '../utils/search'; interface AutocompleteArgs { maxRows: number | string; searchTerm: string; } interface SearchPageTypeResponse { id: string; pageType: string; name: string; url: string; title: string | null; metaTagDescription: string | null; } /** Search API * Docs: https://documenter.getpostman.com/view/845/catalogsystem-102/Hs44 */ export declare class Search extends AppClient { private searchEncodeURI; private basePath; private addSalesChannel; private addCompleteSpecifications; constructor(ctx: IOContext, opts?: InstanceOptions); pageType: (path: string, query?: string) => Promise; product: (slug: string) => Promise; productByEan: (id: string) => Promise; productsByEan: (ids: string[], salesChannel?: string | number) => Promise; productById: (id: string, cacheable?: boolean) => Promise; productsById: (ids: string[], salesChannel?: string | number) => Promise; productByReference: (id: string) => Promise; productsByReference: (ids: string[], salesChannel?: string | number) => Promise; productBySku: (skuId: string) => Promise; productsBySku: (skuIds: string[], salesChannel?: string | number) => Promise; productsRaw: (args: SearchArgs) => Promise>; products: (args: SearchArgs) => Promise; productsQuantity: (args: SearchArgs) => Promise; brands: () => Promise; brand: (id: number) => Promise; categories: (treeLevel: number) => Promise; getCategoryChildren: (id: number) => Promise>; facets: (facets?: string) => Promise; category: (id: string | number) => Promise; crossSelling: (id: string, type: SearchCrossSellingTypes) => Promise; filtersInCategoryFromId: (id: string | number) => Promise; autocomplete: ({ maxRows, searchTerm }: AutocompleteArgs) => Promise<{ itemsReturned: SearchAutocompleteUnit[]; }>; private get; getField: (id: number) => Promise; private getRaw; private productSearchUrl; } export {};