import { APIConfiguration, CommerceAPI, CommonArgs, GetProductsArgs, Identifiable, Product } from '../../../../common'; import { CodecPropertyConfig, CommerceCodecType, CommerceCodec } from '../../core'; import { StringProperty } from '../../../cms-property-types'; import { BigCommerceProduct } from './types'; /** * BigCommerce Codec config properties */ declare type CodecConfig = APIConfiguration & { api_token: StringProperty; store_hash: StringProperty; }; /** * Commerce Codec Type that integrates with BigCommerce. */ export declare class BigCommerceCommerceCodecType extends CommerceCodecType { /** * @inheritdoc */ get vendor(): string; /** * @inheritdoc */ get properties(): CodecConfig; /** * @inheritdoc */ getApi(config: CodecPropertyConfig): Promise; } /** * Commerce Codec that integrates with BigCommerce. */ export declare class BigCommerceCommerceCodec extends CommerceCodec { config: CodecPropertyConfig; getPage: (axios: import("axios").AxiosStatic, url: string, config: import("axios").AxiosRequestConfig, params?: any) => (page: number, pageSize: number) => Promise<{ data: T[]; total: number; }>; /** * @inheritdoc */ cacheCategoryTree(): Promise; /** * Fetches data using store hash and API token. * @param url URL to fetch data from * @returns Response data */ fetch(url: string): Promise; /** * @inheritdoc */ getProducts(args: GetProductsArgs): Promise; /** * Get the axios config for making BigCommerce API requests. * @returns Axios config for making BigCommerce API requests */ getAxiosConfig(): { method: string; baseURL: string; headers: { 'X-Auth-Token': string; Accept: string; 'Content-Type': string; }; }; /** * @inheritdoc */ getRawProducts(args: GetProductsArgs, method?: string): Promise; /** * @inheritdoc */ getCustomerGroups(args: CommonArgs): Promise; } export default BigCommerceCommerceCodecType;