import { Customer as RESTCustomer } from '../../types/ShopifyAdminREST';
import { ShopifyObjectModel } from './ShopifyObject';
export declare const OmittedCustomerKeys: readonly ["accepts_marketing", "accepts_marketing_updated_at", "default_address", "email_marketing_consent", "marketing_opt_in_level", "metafield", "sms_marketing_consent", "addresses", "id", "admin_graphql_api_id"];
export declare type OmittedCustomerKey = typeof OmittedCustomerKeys[number];
declare type RemainingCustomerKey = Exclude<keyof RESTCustomer, OmittedCustomerKey>;
declare type CustomerProps = Omit<RESTCustomer, OmittedCustomerKey> & {
    'id': RESTCustomer['admin_graphql_api_id'];
    'addresses_json': RESTCustomer['addresses'];
    'average_order_value': RESTCustomer['total_spent'];
    'default_address.address1': RESTCustomer['default_address']['address1'];
    'default_address.address2': RESTCustomer['default_address']['address2'];
    'default_address.city': RESTCustomer['default_address']['city'];
    'default_address.company': RESTCustomer['default_address']['company'];
    'default_address.country': RESTCustomer['default_address']['country'];
    'default_address.country_code': RESTCustomer['default_address']['country_code'];
    'default_address.first_name': RESTCustomer['default_address']['first_name'];
    'default_address.id': RESTCustomer['default_address']['id'];
    'default_address.last_name': RESTCustomer['default_address']['last_name'];
    'default_address.phone': RESTCustomer['default_address']['phone'];
    'default_address.province': RESTCustomer['default_address']['province'];
    'default_address.province_code': RESTCustomer['default_address']['province_code'];
    'default_address.zip': RESTCustomer['default_address']['zip'];
    'email_marketing_consent.opt_in_level': RESTCustomer['email_marketing_consent']['opt_in_level'] | null;
    'email_marketing_consent.state': RESTCustomer['email_marketing_consent']['state'] | null;
    'email_marketing_consent.updated_at': RESTCustomer['email_marketing_consent']['consent_updated_at'] | null;
    'sms_marketing_consent.collected_from': RESTCustomer['sms_marketing_consent']['consent_collected_from'] | null;
    'sms_marketing_consent.opt_in_level': RESTCustomer['sms_marketing_consent']['opt_in_level'] | null;
    'sms_marketing_consent.state': RESTCustomer['sms_marketing_consent']['state'] | null;
    'sms_marketing_consent.updated_at': RESTCustomer['sms_marketing_consent']['consent_updated_at'] | null;
};
export declare const CustomerKeys: readonly [...RemainingCustomerKey[], "id", "addresses_json", "average_order_value", "default_address.address1", "default_address.address2", "default_address.city", "default_address.company", "default_address.country", "default_address.country_code", "default_address.first_name", "default_address.id", "default_address.last_name", "default_address.phone", "default_address.province", "default_address.province_code", "default_address.zip", "email_marketing_consent.opt_in_level", "email_marketing_consent.state", "email_marketing_consent.updated_at", "sms_marketing_consent.collected_from", "sms_marketing_consent.opt_in_level", "sms_marketing_consent.state", "sms_marketing_consent.updated_at"];
export declare type CustomerKey = (typeof CustomerKeys)[number];
export declare const CustomerTypeName = "customers";
export declare type CustomerTypeName = typeof CustomerTypeName;
export interface Customer extends ShopifyObjectModel {
    type: CustomerTypeName;
    props: CustomerProps;
}
export {};
