/**
 * CWMS Data API
 * CWMS REST API for Data Retrieval
 *
 * The version of the OpenAPI document: 2.4.0-2026.3.16
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { Alias } from './Alias';
import { RATING } from './RATING';
/**
 *
 * @export
 * @interface VirtualLocationLevel
 */
export interface VirtualLocationLevel {
    /**
     * Owning office of object.
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    officeId: string;
    /**
     * Name of the location level
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    locationLevelId: string;
    /**
     * TimeSeries ID (e.g. from the times series catalog) to use as the location level. Mutually exclusive with seasonalValues and siParameterUnitsConstantValue
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    specifiedLevelId?: string;
    /**
     * The expiration date of the location level.
     * @type {Date}
     * @memberof VirtualLocationLevel
     */
    expirationDate?: Date;
    /**
     * Data Type such as Stage, Elevation, or others.
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    parameterId?: string;
    /**
     * To indicate if single or aggregate value
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    parameterTypeId?: VirtualLocationLevelParameterTypeIdEnum;
    /**
     * Indicating whether or not to interpolate between seasonal values.
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    interpolateString?: VirtualLocationLevelInterpolateStringEnum;
    /**
     * Units the provided levels are in
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    levelUnitsId?: string;
    /**
     * The date/time at which this location level configuration takes effect.
     * @type {Date}
     * @memberof VirtualLocationLevel
     */
    levelDate?: Date;
    /**
     *
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    levelComment?: string;
    /**
     * 0 if parameterTypeId is Inst. Otherwise duration indicating the time window of the aggregate value.
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    durationId?: string;
    /**
     *
     * @type {number}
     * @memberof VirtualLocationLevel
     */
    attributeValue?: number;
    /**
     *
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    attributeUnitsId?: string;
    /**
     *
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    attributeParameterTypeId?: string;
    /**
     *
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    attributeParameterId?: string;
    /**
     *
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    attributeDurationId?: string;
    /**
     *
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    attributeComment?: string;
    /**
     *
     * @type {Array<Alias>}
     * @memberof VirtualLocationLevel
     */
    aliases?: Array<Alias>;
    /**
     *
     * @type {Array<RATING>}
     * @memberof VirtualLocationLevel
     */
    constituents?: Array<RATING>;
    /**
     *
     * @type {string}
     * @memberof VirtualLocationLevel
     */
    constituentConnections?: string;
}
/**
* @export
* @enum {string}
*/
export declare enum VirtualLocationLevelParameterTypeIdEnum {
    Inst = "Inst",
    Ave = "Ave",
    Min = "Min",
    Max = "Max",
    Total = "Total"
} /**
* @export
* @enum {string}
*/
export declare enum VirtualLocationLevelInterpolateStringEnum {
    T = "T",
    F = "F"
}
export declare function VirtualLocationLevelFromJSON(json: any): VirtualLocationLevel;
export declare function VirtualLocationLevelFromJSONTyped(json: any, ignoreDiscriminator: boolean): VirtualLocationLevel;
export declare function VirtualLocationLevelToJSON(value?: VirtualLocationLevel | null): any;
