import { HttpClientOptions, HttpRequestConfig, HttpResponse } from '@contentstack/cli-utilities'; import { APIResponse } from '../types'; import { AnyProperty } from './utils'; import { ExportConfig } from './export-config'; import { AdapterHelperInterface } from './adapter-helper'; import { CreateVariantEntryDto, CreateVariantEntryOptions, VariantEntryStruct } from './variant-entry'; export type APIConfig = HttpRequestConfig & { httpClient?: boolean; sharedConfig?: ExportConfig | Record | undefined; personalizationURL?: string; config: ExportConfig | Record | undefined; baseURL?: string; cmaConfig?: HttpRequestConfig; delayMs?: number; }; export interface AdapterConstructor { new (config: C, options?: HttpClientOptions): T; } export type AdapterType = { Adapter: AdapterConstructor; }; export type VariantsOption = { skip?: number; limit?: number; locale?: string; entry_uid: string; getAllData?: boolean; returnResult?: boolean; content_type_uid: string; include_variant?: boolean; include_count?: boolean; include_publish_details?: boolean; callback?: (value: Record[]) => void; } & AnyProperty; export type VariantOptions = VariantsOption & { variant_uid: string; }; export interface VariantInterface extends AdapterHelperInterface { init(): Promise; variantEntry(options: VariantOptions): Promise<{ entry: Record }>; variantEntries(options: VariantsOption): Promise<{ entries?: Record[] | unknown[] } | void>; createVariantEntry( input: CreateVariantEntryDto, options: CreateVariantEntryOptions, apiParams: Record, ): Promise; handleVariantAPIRes(res: APIResponse): Promise; }