import { Optional, Resource } from "../../common";
import { APINote, StoreNote } from "./interfaces";
export declare class Note extends Resource {
    userId: string;
    profileId: string;
    title: string;
    text: string;
    createdAt: string;
    updatedAt: string;
    constructor(userId: string, profileId: string, title: string, text: string, createdAt: string, updatedAt: string);
    /**
     * The name of the Note resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the Note resource.
     */
    static get serviceName(): string;
    /**
     * Convert the Note into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APINote, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The Note data from the API server.
     */
    deserializeAPI(data: APINote): void;
    /**
     * Serialize the Note into a format for storing in the Redux store.
     */
    serializeRedux(): StoreNote;
    /**
     * Create a Note from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The Note object.
     */
    static apiFactory(data: APINote): Note;
    /**
     * Create a Note from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The Note object.
     */
    static reduxFactory(data: StoreNote): Note;
}
