import type { Except } from 'type-fest'; import { type GetEntityCollectionOptions } from '../../entity-client/simple-entity-client/methods/get-entity-collection.js'; import type { ScayleAdminApiFetcher } from '../../http/admin-api-fetcher.js'; import type { Iso31661Alpha3CountryCode } from '../iso/iso31661-alpha3-country-code-schema.js'; import type { Iso31661Alpha2CountryCode } from '../iso/iso31661-alpha2-country-code-schema.js'; import { type Customer, type CustomerCollection, type CustomerMutationPayload, type CustomerStatus, type AdditionalCustomerKey } from './schema/customer-schema.js'; import { type CustomerAddressEntityClient } from './customer-address-entity-client.js'; import { type CustomerAnonymizationClient } from './customer-anonymization-client.js'; import { type CustomerMembershipEntityClient } from './customer-membership-entity-client.js'; export type CustomerEntityClientDependencies = { readonly adminApiFetcher: ScayleAdminApiFetcher; }; type CustomerQueryParameters = Except & { readonly filters?: { readonly id?: number[]; readonly minId?: number; readonly maxId?: number; readonly minCreatedAt?: string; readonly maxCreatedAt?: string; readonly minUpdatedAt?: string; readonly maxUpdatedAt?: string; readonly billingAddressCountryCode?: Iso31661Alpha3CountryCode; readonly shippingAddressCountryCode?: Iso31661Alpha3CountryCode; readonly group?: string[]; readonly isActive?: boolean; readonly referenceKey?: string[]; }; withKeys?: AdditionalKeys; }; export type CustomerEntityClient = { anonymize: CustomerAnonymizationClient; customerAddress: CustomerAddressEntityClient; customerMembership: CustomerMembershipEntityClient; getCollection: (shopKey: string, countryCode: Iso31661Alpha2CountryCode | Iso31661Alpha3CountryCode, requestOptions?: CustomerQueryParameters) => Promise>; get: (shopKey: string, countryCode: Iso31661Alpha2CountryCode | Iso31661Alpha3CountryCode, customerIdentifier: number | string, withKeys?: AdditionalKeys) => Promise>; create: (shopKey: string, countryCode: Iso31661Alpha2CountryCode | Iso31661Alpha3CountryCode, customer: CustomerMutationPayload) => Promise; update: (shopKey: string, countryCode: Iso31661Alpha2CountryCode | Iso31661Alpha3CountryCode, customerIdentifier: number | string, customerUpdate: CustomerMutationPayload) => Promise; resetCustomerPassword: (shopKey: string, countryCode: Iso31661Alpha2CountryCode | Iso31661Alpha3CountryCode, customerIdentifier: number | string) => Promise; updateCustomerReferenceKey: (shopKey: string, countryCode: Iso31661Alpha2CountryCode | Iso31661Alpha3CountryCode, customerIdentifier: number | string, newReferenceKey: string) => Promise; addCustomerGroups: (shopKey: string, countryCode: Iso31661Alpha2CountryCode | Iso31661Alpha3CountryCode, customerIdentifier: number | string, groups: string[]) => Promise; deleteCustomerGroup: (shopKey: string, countryCode: Iso31661Alpha2CountryCode | Iso31661Alpha3CountryCode, customerIdentifier: number | string, group: string) => Promise; getCustomerStatus: (shopKey: string, countryCode: Iso31661Alpha2CountryCode | Iso31661Alpha3CountryCode, customerIdentifier: number | string) => Promise; updateCustomerStatus: (shopKey: string, countryCode: Iso31661Alpha2CountryCode | Iso31661Alpha3CountryCode, customerIdentifier: number | string, statusUpdate: CustomerStatus) => Promise; }; export declare function createCustomerEntityClient(dependencies: CustomerEntityClientDependencies): CustomerEntityClient; export {}; //# sourceMappingURL=customer-entity-client.d.ts.map