import { Type, TypedValue } from "./types"; export declare class OptionType extends Type { static ClassName: string; constructor(typeParameter: Type); getClassName(): string; isAssignableFrom(type: Type): boolean; } export declare class ListType extends Type { static ClassName: string; constructor(typeParameter: Type); getClassName(): string; } export declare class OptionValue extends TypedValue { static ClassName: string; private readonly value; constructor(type: OptionType, value?: TypedValue | null); getClassName(): string; /** * Creates an OptionValue, as a missing option argument. */ static newMissing(): OptionValue; static newMissingTyped(type: Type): OptionValue; /** * Creates an OptionValue, as a provided option argument. */ static newProvided(typedValue: TypedValue): OptionValue; isSet(): boolean; getTypedValue(): TypedValue; valueOf(): any; equals(other: OptionValue): boolean; } export declare class List extends TypedValue { static ClassName: string; private readonly backingCollection; /** * * @param type the type of this TypedValue (an instance of ListType), not the type parameter of the ListType * @param items the items, having the type type.getFirstTypeParameter() */ constructor(type: ListType, items: TypedValue[]); getClassName(): string; static fromItems(items: TypedValue[]): List; getLength(): number; getItems(): ReadonlyArray; valueOf(): any[]; equals(other: List): boolean; }