import { Resource } from "../../common";
import { InvoiceDetailAPIRequest, InvoiceDetailAPIResponse, InvoiceDetailSavedStore } from "./interfaces";
export declare class InvoiceDetail extends Resource {
    name: string;
    phoneNumber: string;
    companyName: string;
    taxNumber: number | null;
    address: string;
    constructor(name: string, phoneNumber: string, companyName: string, taxNumber: number | null, address: string);
    /**
     * The name of the service containing the invoice details resource.
     */
    static get serviceName(): string;
    /**
     * The name of the invoice details resource on the API server.
     */
    static get resourceName(): string;
    /**
     * Convert the invoice details into a JSON serializable object for the API server.
     */
    serializeAPI(): InvoiceDetailAPIRequest;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The invoice details data from the API server.
     */
    deserializeAPI(data: InvoiceDetailAPIResponse): void;
    /**
     * Serialize the invoice details into a format for storing in the Redux store.
     */
    serializeRedux(): InvoiceDetailSavedStore;
    /**
     * Create an invoice details resource from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The invoice details object.
     */
    static apiFactory(data: InvoiceDetailAPIResponse): InvoiceDetail;
    /**
     * Create an invoice details resource from the redux store data.
     *
     * @param data Data from the redux store.
     *
     * @returns The invoice details object.
     */
    static reduxFactory(data: InvoiceDetailSavedStore): InvoiceDetail;
}
