/**
 * The Trait interface for the Redux store.
 */
export interface StoreTrait extends StoreGaugeConfig {
    id: string;
    name: string;
    slug: string;
    text: string;
    reportId: string;
    feedbackQuestion: string;
    textHeader: string;
    statisticType: StatisticType;
    feedbackChoices: StoreTraitFeedbackChoice[];
    modelType: TraitModelType;
    disclaimer: string;
    showPercentile: boolean;
}
/**
 * The Trait interface for the API server.
 */
export interface APITrait extends APIGaugeConfig {
    id: string;
    name: string;
    slug: string;
    text: string;
    report_id: string;
    feedback_question: string;
    text_header: string;
    statistic_type: StatisticType;
    feedback_choices: APITraitFeedbackChoice[];
    model_type: TraitModelType;
    disclaimer: string;
    show_percentile: boolean;
}
export interface StoreGaugeConfig {
    gaugeType: GaugeType;
    gaugeRangeType: GaugeRangeType | null;
    gaugeColoring: GaugeColoring | null;
    gaugeDirection: GaugeDirection | null;
    gaugeNumOfDivisions: GaugeDivision | null;
    gaugeLabels: StoreGaugeLabel[];
}
export interface APIGaugeConfig {
    gauge_type: GaugeType;
    gauge_range_type: GaugeRangeType | null;
    gauge_coloring: GaugeColoring | null;
    gauge_direction: GaugeDirection | null;
    gauge_num_of_divisions: GaugeDivision | null;
    gauge_labels: APIGaugeLabel[];
}
export declare type StatisticType = "percentage" | "percentile";
export declare type GaugeType = "emoji" | "needle";
export declare type GaugeRangeType = "segmented" | "continuous";
export declare type GaugeColoring = "block" | "gradient";
export declare type GaugeDirection = "clockwise" | "counterclockwise";
export declare type GaugeDivision = 1 | 2 | 3;
export interface StoreMatchTraitMixin {
    scoreFrom: number | null;
    scoreTo: number | null;
    scenarioId: string | null;
}
export interface APIMatchTraitMixin {
    score_from: number | null;
    score_to: number | null;
    scenario_id: string | null;
}
export declare enum GaugeColor {
    GREEN = "green",
    LIGHT_GREEN = "light green",
    YELLOW = "yellow",
    ORANGE = "orange",
    RED = "red",
    LIGHT_GREY = "light grey",
    PURPLE = "purple"
}
export interface StoreTraitFeedbackChoice extends StoreMatchTraitMixin {
    id: string;
    answerText: string;
    displayOrder: number;
}
export interface APITraitFeedbackChoice extends APIMatchTraitMixin {
    id: string;
    answer_text: string;
    display_order: number;
}
export declare type TraitFeedbackChoice = StoreTraitFeedbackChoice;
export interface StoreGaugeLabel extends StoreMatchTraitMixin {
    id: string;
    labelText: string;
    labelColor: GaugeColor;
    displayOrder: number;
}
export interface APIGaugeLabel extends APIMatchTraitMixin {
    id: string;
    label_text: string;
    label_color: GaugeColor;
    display_order: number;
}
export declare type GaugeLabel = StoreGaugeLabel;
export declare enum TraitModelType {
    NONADDITIVE = "non-additive",
    ADDITIVE = "additive"
}
