@openfisca/json-model
Version:
Library to handle informations extracted in JSON or YAML format from OpenFisca parameters, variables, etc
55 lines (54 loc) • 1.51 kB
TypeScript
import type { ReferencesByInstant } from "./references";
export interface Customization extends DecompositionCore {
description?: ReferencesByInstant;
input?: boolean;
linked_other_variables?: string[];
main_parameters?: string[];
reference?: ReferencesByInstant;
variables?: string[];
}
export type CustomizationByName = {
[name: string]: Customization;
};
export interface Decomposition extends DecompositionCore {
label: string;
}
export type DecompositionByName = {
[name: string]: Decomposition;
};
interface DecompositionCore {
children?: DecompositionReference[];
description?: ReferencesByInstant;
hidden?: boolean;
label?: string;
last_value_still_valid_on?: string;
obsolete?: boolean;
options?: DecompositionOptions[];
reference?: ReferencesByInstant;
short_label?: string;
virtual?: boolean;
}
export type DecompositionOptions = VariablesOptions | WaterfallOptions;
export interface DecompositionReference {
name: string;
negate?: boolean;
}
export interface VariablesCustomization {
hidden?: boolean;
}
export type VariablesOptions = {
else?: VariablesCustomization;
then?: VariablesCustomization;
} & {
[name: string]: boolean[] | string[];
};
export interface WaterfallCustomization {
children?: DecompositionReference[];
hidden?: boolean;
}
export interface WaterfallOptions {
else?: WaterfallCustomization;
then?: WaterfallCustomization;
waterfall?: string[];
}
export {};