Select Git revision
example.env
parameters.ts 1.61 KiB
export type AnyParameter = Parameter | ParameterNode | Scale
export interface Parameter extends ParameterBase {
class: ParameterClass.Parameter
values: ParameterAtInstant[]
}
export interface ParameterAtInstant {
instant: string
name: string
source?: string
unit?: Unit
value: number | string | string[]
}
export interface ParameterBase {
class: ParameterClass
description?: string
documentation?: string
id: string // Generated attribute (last part of name)
name: string
parent?: ParameterNode // Generated attribute
reference?: string | string[] | { [instant: string]: string | string[] }
referring_variables?: string[]
source?: string
title: string // Generated attribute constructed using description or name
titles: string // Generated attribute aggregating the titles of every ancestors
unit?: Unit
}
export enum ParameterClass {
Node = "Node",
Parameter = "Parameter",
Scale = "Scale",
}
export interface ParameterNode extends ParameterBase {
children: { [id: string]: AnyParameter }
class: ParameterClass.Node
}
export interface Scale extends ParameterBase {
brackets: { [instant: string]: { [threshold: string]: number | null } | null }
class: ParameterClass.Scale
rate_unit?: Unit.Rate
threshold_unit?: Unit.Currency
type: ScaleType
}
export enum ScaleType {
MarginalRate = "marginal_rate",
SingleAmount = "single_amount",
}
export enum Unit {
CodesDepartements = "codes départements",
CountryCode = "ISO 3166-1 alpha-2", // Two-letters code of a country
Currency = "currency",
Month = "month",
Rate = "/1", // Number between 0 and 1
Year = "year",
}