import { Concept } from "../Concept";
export interface Value extends Concept {
/** The ValueType of this value concept */
readonly valueType: Concept.ValueType;
/** Retrieves the value which this value concept holds. */
readonly value: boolean | string | number | Date;
/**
* Returns True if the value which this value concept holds is of type boolean. Otherwise, returns False.
*
* ### Examples
*
* ```ts
* value.isBoolean()
* ```
*/
isBoolean(): boolean;
/**
* Returns True if the value which this value concept holds is of type long. Otherwise, returns False.
*
* ### Examples
*
* ```ts
* value.isLong()
* ```
*/
isLong(): boolean;
/**
* Returns True if the value which this value concept holds is of type double.
* Otherwise, returns False.
*
* ### Examples
*
* ```ts
* value.isDouble()
* ```
*/
isDouble(): boolean;
/**
* Returns True if the value which this value concept holds is of type string. Otherwise, returns False.
*
* ### Examples
*
* ```ts
* value.isString()
* ```
*/
isString(): boolean;
/**
* Returns True if the value which this value concept holds is of type datetime. Otherwise, returns False.
*
* ### Examples
*
* ```ts
* value.isDatetime()
* ```
*/
isDateTime(): boolean;
/**
* Returns a boolean value of this value concept. If the value has another type, raises an exception.
*
* ### Examples
*
* ```ts
* value.asBoolean()
* ```
*/
asBoolean(): boolean;
/**
* Returns a number value of this value concept. If the value has another type, raises an exception.
*
* ### Examples
*
* ```ts
* value.asLong()
* ```
*/
asLong(): number;
/**
* Returns a number value of this value concept. If the value has another type, raises an exception.
*
* ### Examples
*
* ```ts
* value.asDouble()
* ```
*/
asDouble(): number;
/**
* Returns a string value of this value concept. If the value has another type, raises an exception.
*
* ### Examples
*
* ```ts
* value.asString()
* ```
*/
asString(): string;
/**
* Returns a datetime value of this value concept. If the value has another type, raises an exception.
*
* ### Examples
*
* ```ts
* value.asDatetime()
* ```
*/
asDateTime(): Date;
}
export declare namespace Value {
function proto(value: Value): import("typedb-protocol/proto/concept").Value;
}