import { Optional, Resource } from "../../common";
import { APIMarkerUnit, StoreMarkerUnit } from "./interfaces";
export declare class MarkerUnit extends Resource {
    /**
     * The associated marker
     */
    markerId: string;
    /**
     * The associated marker
     */
    unitId: string;
    /**
     * The multiplier used for unit conversion
     */
    multiplier: number;
    constructor(markerId: string, unitId: string, multiplier: number);
    /**
     * The name of the marker unit resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the marker unit resource.
     */
    static get serviceName(): string;
    /**
     * Convert the marker unit into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APIMarkerUnit, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The marker unit data from the API server.
     */
    deserializeAPI(data: APIMarkerUnit): void;
    /**
     * Serialize the marker unit into a format for storing in the Redux store.
     */
    serializeRedux(): StoreMarkerUnit;
    /**
     * Create a marker unit from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The marker unit object.
     */
    static apiFactory(data: APIMarkerUnit): MarkerUnit;
    /**
     * Create a marker unit from the Redux store data.
     *
     * @param data Data from the store.
     *
     * @returns The marker unit object.
     */
    static reduxFactory(data: StoreMarkerUnit): MarkerUnit;
}
