import type { Except } from 'type-fest'; import type { ScayleAdminApiFetcher } from '../../http/admin-api-fetcher.js'; import { type GetEntityCollectionOptions } from '../../entity-client/simple-entity-client/methods/get-entity-collection.js'; import { type AdditionalCampaignKey, type CampaignMutationPayload, type CampaignCollection, type Campaign } from './schema/campaign-schema.js'; import { type ProductReduction, type ProductVariantReduction, type ProductVariantReductionCollection } from './schema/reduction-schema.js'; export type CampaignEntityClientDependencies = { readonly adminApiFetcher: ScayleAdminApiFetcher; }; type GetCampaignCollectionOptions = Except & { readonly filters?: { readonly id?: number[]; readonly minId?: number; readonly maxId?: number; }; readonly withKeys?: AdditionalKeys | undefined; }; type DeleteCampaignReductionsFilter = { productId?: number[]; variantId?: number[]; productReferenceKey?: string[]; variantReferenceKey?: string[]; }; type GetProductVariantReductionCollectionOptions = Except & { readonly filters?: { readonly productId?: number[]; readonly variantId?: number[]; readonly productReferenceKey?: string[]; readonly variantReferenceKey?: string[]; }; }; export type CampaignEntityClient = { create: (shopKey: string, payload: Readonly) => Promise; get: (shopKey: string, id: number, withKeys?: AdditionalKeys) => Promise>; getCollection: (shopKey: string, requestOptions?: GetCampaignCollectionOptions) => Promise>; update: (shopKey: string, id: number, payload: Readonly) => Promise; delete: (shopKey: string, id: number) => Promise; getAll: (shopKey: string, withKeys?: AdditionalKeys) => Promise[]>; createOrUpdateProductReduction: (shopKey: string, campaignId: number, reductions: ProductReduction[]) => Promise; createOrUpdateProductVariantReduction: (shopKey: string, campaignId: number, reductions: ProductVariantReduction[]) => Promise; deleteAllCampaignReductions: (shopKey: string, campaignId: number, filter?: DeleteCampaignReductionsFilter) => Promise; getProductVariantReductionCollection: (shopKey: string, campaignId: number, requestOptions?: GetProductVariantReductionCollectionOptions) => Promise; }; export declare function createCampaignEntityClient(dependencies: CampaignEntityClientDependencies): CampaignEntityClient; export {}; //# sourceMappingURL=campaign-entity-client.d.ts.map