import { Optional, Resource } from "../../common";
import { GaugeColoring, GaugeDirection, GaugeDivision, GaugeLabel, GaugeRangeType, GaugeType } from "../trait";
import { TraitScoreText } from "../trait-score-text";
import { APITraitSummary, StoreTraitSummary } from "./interfaces";
export declare class TraitSummary extends Resource {
    reportId: string;
    gaugeLabels: GaugeLabel[];
    gaugeType: GaugeType;
    gaugeRangeType: GaugeRangeType | null;
    gaugeColoring: GaugeColoring | null;
    gaugeDirection: GaugeDirection | null;
    gaugeNumOfDivisions: GaugeDivision | null;
    scoreTexts: TraitScoreText[];
    constructor(reportId: string, gaugeLabels: GaugeLabel[], gaugeType: GaugeType, gaugeRangeType: GaugeRangeType | null, gaugeColoring: GaugeColoring | null, gaugeDirection: GaugeDirection | null, gaugeNumOfDivisions: GaugeDivision | null, scoreTexts: TraitScoreText[]);
    /**
     * The name of the trait-summary resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the trait-summary resource.
     */
    static get serviceName(): string;
    /**
     * Convert the trait-summary into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APITraitSummary, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The trait-summary data from the API server.
     */
    deserializeAPI(data: APITraitSummary): void;
    /**
     * Serialize the trait-summary into a format for storing in the Redux store.
     */
    serializeRedux(): StoreTraitSummary;
    /**
     * Create a trait-summary from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The trait-summary object.
     */
    static apiFactory(data: APITraitSummary): TraitSummary;
    /**
     * Create a trait-summary from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The trait-summary object.
     */
    static reduxFactory(data: StoreTraitSummary): TraitSummary;
}
