import { Customer, CustomerAddress, CustomerField, CustomerUpdateBillingAddressInput, CustomerUpdateDeliveryAddressInput, CustomerUpdateInput, CustomerUpdatePreferenceInput, Query, PrivateCustomer, BusinessCustomer, CountrySettings } from '@jetshop/core/types'; import { DocumentNode } from 'graphql'; type CustomerUpdateAddressInput = CustomerUpdateBillingAddressInput | CustomerUpdateDeliveryAddressInput; export declare function customerAddressToCustomerUpdateAddressInput({ address, isDeleteId, countryCode }: { address: CustomerAddress; isDeleteId?: boolean; countryCode: string; }): CustomerUpdateAddressInput; export declare function getAddressInputFieldName(name: string): keyof CustomerUpdateAddressInput; export declare function getDeliveryAddressesInput(customer: Customer, countryCode: string): CustomerUpdateDeliveryAddressInput[]; export declare function getBillingAddressInput({ customer, countryCode }: { customer: Customer; billingAddressFields?: CustomerField[]; countryCode: string; }): CustomerUpdateBillingAddressInput; export declare function getCustomerUpdatePreferenceInput(customer: Customer, /** The currently selected channel culture, in case it does not exist on customer */ culture: string): CustomerUpdatePreferenceInput; export declare function getCustomerUpdateInput({ customer, billingAddressFields, culture, countryCode }: { customer: PrivateCustomer | BusinessCustomer; billingAddressFields: CustomerField[]; culture: string; countryCode: string; }): CustomerUpdateInput; export declare function useCustomerCountrySettings(customer: Customer | null): { loading: boolean; countrySettings: CountrySettings; setCountryCode: (countryCode: string) => void; }; export declare function useDeliveryAddressFields({ customer, countrySettings, deliveryAddressId }: { customer?: Query['customer'] & { __typename?: 'BusinessCustomer' | 'PrivateCustomer'; }; countrySettings: CountrySettings; deliveryAddressId?: number; }): { value: string | number | import("@jetshop/core/types").Country; label: any; __typename?: "CustomerField"; id: string; required: boolean; pattern?: string; fields?: CustomerField[]; name: string; }[]; export declare function useCustomerDetails({ customer, deliveryAddressId }: { customer?: Query['customer'] & { __typename?: 'BusinessCustomer' | 'PrivateCustomer'; }; deliveryAddressId?: number; }): { countrySettings: CountrySettings; setCountryCode: (countryCode: string) => void; billingAddress: { value: string | number | import("@jetshop/core/types").Country; label: any; __typename?: "CustomerField"; id: string; required: boolean; pattern?: string; fields?: CustomerField[]; name: string; }[]; deliveryAddress: { value: string | number | import("@jetshop/core/types").Country; label: any; __typename?: "CustomerField"; id: string; required: boolean; pattern?: string; fields?: CustomerField[]; name: string; }[]; customerCountrySettingsLoading: boolean; }; export declare function useCustomerQuery({ query, deliveryAddressId }: { query: DocumentNode; deliveryAddressId?: number; }): { refetch: (variables?: Partial) => Promise>; loading: boolean; error: import("@apollo/client").ApolloError; customer: Customer & { __typename: 'BusinessCustomer' | 'PrivateCustomer'; }; countrySettings: CountrySettings; setCountryCode: (countryCode: string) => void; billingAddress: { value: string | number | import("@jetshop/core/types").Country; label: any; __typename?: "CustomerField"; id: string; required: boolean; pattern?: string; fields?: CustomerField[]; name: string; }[]; deliveryAddress: { value: string | number | import("@jetshop/core/types").Country; label: any; __typename?: "CustomerField"; id: string; required: boolean; pattern?: string; fields?: CustomerField[]; name: string; }[]; }; export declare function useCustomerUpdateMutation({ customerQuery }: { customerQuery: DocumentNode; }): (input: CustomerUpdateInput) => Promise; export {};