import type { Observable } from 'rxjs/internal/Observable'; import type { FormControl } from "@e-xisto/form-control"; import type { CartService } from "./cart.service"; import type { AccountService } from "./account.service"; import type { CheckoutService } from "./checkout.service"; import type { BillingAddress, ShippingAddress } from "@src/models/addresses-models"; type ContactData = { acceptEmailMarketing: boolean; id: number; email: string; firstName: string; lastName: string; phone: string; shippingAddressId: number; }; type CustomerData = { acceptEmailMarketing: boolean; businessName: string; email: string; firstName: string; id: number; lastName: string; phone: string; type: CustomerType; contact?: ContactData; }; export declare class CustomerService implements Authentication { #private; readonly change$: Observable; get acceptEmailMarketing(): boolean; get businessName(): string; get contact(): ContactData | undefined; get contactAcceptEmailMarketing(): boolean; get contactEmail(): string; get contactPhone(): string; get email(): string; get firstName(): string; get id(): number; get lastName(): string; get phone(): string; get refreshToken(): string; get token(): string; get type(): CustomerType; get isB2B(): boolean; get isContact(): boolean; get isLogged(): boolean; constructor(); private changeCustomer; createBillingAddress(input: Omit): Promise; createShippingAddress(input: Omit): Promise; deleteBillingAddress(id: number): Promise; deleteShippingAddress(id: number): Promise; myAccount(): Promise; orders(filter?: Partial): Promise; rememberPassword(email: string): Promise; resetPassword(hash: string, email: string, password: string): Promise; private restoreState; private saveState; setData(data: { acceptEmailMarketing?: boolean; email?: string; firstName?: string; lastName?: string; phone?: string; }): void; setServices(cart: CartService, account: AccountService, checkout: CheckoutService): void; updateBillingAddress(input: BillingAddress): Promise; updateMyAccount(data: InputUpdateAccount): Promise; updateShippingAddress(input: ShippingAddress): Promise; logout(): Promise<{ status: number; }>; login(email: string, password: string): Promise<{ status: number; token?: string; customer?: CustomerData; }>; updateToken(data: LoginData): void; createAccount(form: FormControl): Promise; price(productId: number): Promise; updateState(data: LoginData, emitUpdated: boolean): void; order(id: number): Promise; updatePassword(oldPassword: string, newPassword: string): Promise; updateAddressData(endPoint: string, input: any): Promise; } export declare function customerProxy(customer: CustomerService): { acceptEmailMarketing: boolean; email: string; firstName: string; id: number; lastName: string; phone: string; type: CustomerType; isLogged: boolean; countries: () => Promise; createBillingAddress: (input: Omit) => Promise; createShippingAddress: (input: Omit) => Promise; deleteShippingAddress: (id: number) => Promise; deleteBillingAddress: (id: number) => Promise; login: (email: string, password: string) => Promise<{ status: number; token?: string; customer?: CustomerData; }>; logout: () => Promise<{ status: number; }>; myAccount: () => Promise; order: (id: number) => Promise; orders: (filter?: Partial) => Promise; price: (productId: number) => Promise; states: (countryId: number) => Promise; subscribe: (cb: (customer: CustomerService) => void) => () => void; updateMyAccount: (input: InputUpdateAccount) => Promise; updatePassword: (oldPassword: string, newPassword: string) => Promise; updateBillingAddress: (input: BillingAddress) => Promise; updateShippingAddress: (input: ShippingAddress) => Promise; }; export {};