import * as Options from '../options';
import { BaseService } from '../infrastructure';
import { Customer, CustomerInvite } from '../interfaces';
export declare class Customers extends BaseService {
    constructor(shopDomain: string, accessToken: string);
    /**
     * Get a count of all customers
     */
    count(): Promise<number>;
    /**
     * Get a list of all customers
     * @param options Options for filtering the results.
     */
    list(options?: Options.DateOptions & Options.FieldOptions & Options.ListOptions): Promise<Customer[]>;
    /**
     * Searches for customers that match a supplied query.
     * @param options Options for searching customers
     */
    search(options?: Options.CustomerSearchOptions & Options.FieldOptions & Options.BasicListOptions): Promise<Customer[]>;
    /**
     * Get a single customer
     * @param id The customer's id.
     * @param options Options for filtering the results.
     */
    get(id: number, options?: Options.FieldOptions): Promise<Customer>;
    /**
     * Creates a customer.
     * @param customer The customer being created.
     * @param options Options for creating the customer.
     */
    create(customer: Partial<Customer>): Promise<Customer>;
    /**
     * Updates a customer with the given id.
     * @param id The customer's id.
     * @param customer The updated customer.
     */
    update(id: number, customer: Partial<Customer>): Promise<Customer>;
    /**
     * Deletes a customer with the given id.
     * @param id The customer's id.
     */
    delete(id: number): Promise<void>;
    /**
     * Generate an account activation URL for a customer whose account is not yet enabled
     * @param id The customer's ids
     */
    createActivationUrl(id: number): Promise<string>;
    /**
     * Sends an account invite to a customer.
     * @param invite Optional invitation to send
     */
    invite(invite?: CustomerInvite): Promise<CustomerInvite>;
}
export default Customers;
