import type { ScayleAdminApiFetcher } from '../../http/admin-api-fetcher.js'; import { type AdditionalProductKey, type Product, type ProductsCollection, type ProductMutationPayload } from './schema/product-schema.js'; import type { FirstLiveAtMutationPayload } from './schema/product-first-live-at-mutation-payload-schema.js'; import { type ProductState, type ProductStateMutationPayload } from './schema/product-state-schema.js'; type SimpleAttributeValue = boolean | number | string; type ProductCollectionFilterOptions = { attributes?: Record; id?: number[] | number; isComposite?: boolean; masterReferenceKey?: string[] | string; maxCreatedAt?: string; maxId?: number; maxUpdatedAt?: string; minCreatedAt?: string; minId?: number; minUpdatedAt?: string; variantId?: number[] | number; variantReferenceKey?: string[] | string; }; type ProductEntityClientRequestOptions = { cursor?: string; filters?: ProductCollectionFilterOptions; ignoreAttributeLocks?: boolean; ignoreCategoryLocks?: boolean; ignoreMasterIfExist?: boolean; limit?: number; sort?: 'id'; sortDir?: 'asc' | 'desc'; with?: AdditionalKeys; }; type ProductEntityClientRequestOptionKeys = keyof ProductEntityClientRequestOptions; type ProductEntityClientMethodRequestOptions[]> = Pick, RequestOptions[number]>; type MutationRequestOptions = ProductEntityClientMethodRequestOptions & { timeout?: number; }; type UpsertResult = { status: 'created' | 'updated'; data: Product; }; export type ProductEntityClient = { createProduct: (requestBody: ProductMutationPayload, requestOptions?: MutationRequestOptions) => Promise>; deleteProduct: (productIdentifier: number | string) => Promise; getProduct: (productIdentifier: number | string, requestOptions?: ProductEntityClientMethodRequestOptions) => Promise>; getProductsCollection: (requestOptions?: ProductEntityClientMethodRequestOptions) => Promise>; updateProduct: (productIdentifier: number | string, requestBody: ProductMutationPayload, requestOptions?: MutationRequestOptions) => Promise>; upsertProduct: (requestBody: ProductMutationPayload, requestOptions?: MutationRequestOptions) => Promise>; updateFirstLiveAt: (payload: FirstLiveAtMutationPayload) => Promise; updateProductState: (productIdentifier: number | string, payload: ProductStateMutationPayload) => Promise; }; type ProductEntityClientDependencies = { readonly adminApiFetcher: ScayleAdminApiFetcher; }; export declare function createProductEntityClient(dependencies: ProductEntityClientDependencies): ProductEntityClient; export {}; //# sourceMappingURL=product-entity-client.d.ts.map