import { AnonymousSignInResult, Customer, CustomerSignupDraft, TokenizedSignInResult, PaginatedCustomerResult } from '@cxcloud/ct-types/customers';
import { UpdateAction, QueryOptions } from '@cxcloud/ct-types/common';
export declare function findCustomerById(customerId: string): Promise<Customer>;
export declare namespace Customers {
    function login(email: string, password: string, token?: string): Promise<TokenizedSignInResult>;
    function register(customerData: CustomerSignupDraft, token?: string): Promise<TokenizedSignInResult>;
    function loginAnonymously(): Promise<AnonymousSignInResult>;
    function fetchAll(token: string, options?: QueryOptions): Promise<PaginatedCustomerResult>;
    function findById(customerId: string, token: string): Promise<Customer>;
    function update(customerId: string, customerVersion: number, actions: UpdateAction[], token: string): Promise<Customer>;
    function remove(customerId: string, customerVersion: number, token: string): Promise<Customer>;
}
