import { Resource } from "../../common";
import { APIAddress, StoreAddress } from "./interfaces";
export declare class Address extends Resource {
    /**
     * The id of the profile to which this address belongs to
     */
    profileId: string | null;
    /**
     * First line of the address, required
     */
    address1: string;
    /**
     * Second line of the address, optional
     */
    address2: string;
    /**
     * City
     */
    city: string;
    /**
     * State
     */
    state: string;
    /**
     * Postal or Zip Code
     */
    postalCode: string;
    /**
     * Country
     */
    country: string;
    /**
     * Phone number, spaces, "(", ")", "-" and "+"
     * are the only characters allowed
     */
    phoneNumber: string;
    /**
     * Whether this is the default address of the User
     */
    isDefault: boolean;
    constructor(
    /**
     * The id of the profile to which this address belongs to
     */
    profileId: string | null, 
    /**
     * First line of the address, required
     */
    address1: string, 
    /**
     * Second line of the address, optional
     */
    address2: string, 
    /**
     * City
     */
    city: string, 
    /**
     * State
     */
    state: string, 
    /**
     * Postal or Zip Code
     */
    postalCode: string, 
    /**
     * Country
     */
    country: string, 
    /**
     * Phone number, spaces, "(", ")", "-" and "+"
     * are the only characters allowed
     */
    phoneNumber: string, 
    /**
     * Whether this is the default address of the User
     */
    isDefault?: boolean);
    /**
     * The name of the Address resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the Address resource.
     */
    static get serviceName(): string;
    /**
     * Convert the Address into a JSON serializable object for the API server.
     */
    serializeAPI(): APIAddress;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The address data from the API server.
     */
    deserializeAPI(data: APIAddress): void;
    /**
     * Serialize the address into a format for storing in the Redux store.
     */
    serializeRedux(): StoreAddress;
    /**
     * Create an address from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The Address object.
     */
    static apiFactory(data: APIAddress): Address;
    /**
     * Create an address from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The Address object.
     */
    static reduxFactory(data: StoreAddress): Address;
}
