/**
 * 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 * as runtime from '../runtime';
import { LocationLevel, SpecifiedLevel, TimeSeries } from '../models';
export interface DeleteLevelsWithLevelIdRequest {
    levelId: string;
    cascadeDelete?: boolean;
    office?: string;
    effectiveDate?: string;
    timezone?: string;
}
export interface DeleteSpecifiedLevelsWithSpecifiedLevelIdRequest {
    specifiedLevelId: string;
    office: string;
}
export interface GetLevelsRequest {
    levelIdMask?: string;
    office?: string;
    unit?: string;
    datum?: string;
    begin?: string;
    end?: string;
    timezone?: string;
    format?: string;
    includeAliases?: boolean;
    page?: string;
    pageSize?: number;
}
export interface GetLevelsWithLevelIdRequest {
    levelId: string;
    office: string;
    effectiveDate: string;
    useExactEffectiveDate?: boolean;
    timezone?: string;
    unit?: string;
}
export interface GetLevelsWithLevelIdTimeSeriesRequest {
    levelId: string;
    office: string;
    unit: string;
    interval?: string;
    begin?: string;
    end?: string;
    timezone?: string;
}
export interface GetSpecifiedLevelsRequest {
    office?: string;
    templateIdMask?: string;
}
export interface PatchLevelsWithLevelIdRequest {
    levelId: string;
    locationLevel: LocationLevel;
    effectiveDate?: string;
}
export interface PatchSpecifiedLevelsWithSpecifiedLevelIdRequest {
    specifiedLevelId: string;
    specifiedLevelId2: string;
    office: string;
}
export interface PostLevelsRequest {
    locationLevel: LocationLevel;
}
export interface PostSpecifiedLevelsRequest {
    specifiedLevel: SpecifiedLevel;
    failIfExists?: boolean;
}
/**
 *
 */
export declare class LevelsApi extends runtime.BaseAPI {
    /**
     * Delete CWMS Location Level
     * Delete levels with levelId
     */
    deleteLevelsWithLevelIdRaw(requestParameters: DeleteLevelsWithLevelIdRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Delete CWMS Location Level
     * Delete levels with levelId
     */
    deleteLevelsWithLevelId(requestParameters: DeleteLevelsWithLevelIdRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Deletes requested specified level id
     * Delete specifiedLevels with specifiedLevelId
     */
    deleteSpecifiedLevelsWithSpecifiedLevelIdRaw(requestParameters: DeleteSpecifiedLevelsWithSpecifiedLevelIdRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Deletes requested specified level id
     * Delete specifiedLevels with specifiedLevelId
     */
    deleteSpecifiedLevelsWithSpecifiedLevelId(requestParameters: DeleteSpecifiedLevelsWithSpecifiedLevelIdRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Get levels
     */
    getLevelsRaw(requestParameters: GetLevelsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<object>>;
    /**
     * Get levels
     */
    getLevels(requestParameters?: GetLevelsRequest, initOverrides?: RequestInit): Promise<object>;
    /**
     * Retrieves requested Location Level
     * Get levels with levelId
     */
    getLevelsWithLevelIdRaw(requestParameters: GetLevelsWithLevelIdRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<LocationLevel>>;
    /**
     * Retrieves requested Location Level
     * Get levels with levelId
     */
    getLevelsWithLevelId(requestParameters: GetLevelsWithLevelIdRequest, initOverrides?: RequestInit): Promise<LocationLevel>;
    /**
     * Retrieves requested Location Level
     * Get levels with levelId timeseries
     */
    getLevelsWithLevelIdTimeSeriesRaw(requestParameters: GetLevelsWithLevelIdTimeSeriesRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<TimeSeries>>;
    /**
     * Retrieves requested Location Level
     * Get levels with levelId timeseries
     */
    getLevelsWithLevelIdTimeSeries(requestParameters: GetLevelsWithLevelIdTimeSeriesRequest, initOverrides?: RequestInit): Promise<TimeSeries>;
    /**
     * Get specifiedLevels
     */
    getSpecifiedLevelsRaw(requestParameters: GetSpecifiedLevelsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<SpecifiedLevel>>;
    /**
     * Get specifiedLevels
     */
    getSpecifiedLevels(requestParameters?: GetSpecifiedLevelsRequest, initOverrides?: RequestInit): Promise<SpecifiedLevel>;
    /**
     * Update CWMS Location Level
     * Patch levels with levelId
     */
    patchLevelsWithLevelIdRaw(requestParameters: PatchLevelsWithLevelIdRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Update CWMS Location Level
     * Patch levels with levelId
     */
    patchLevelsWithLevelId(requestParameters: PatchLevelsWithLevelIdRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Renames the requested specified level id
     * Patch specifiedLevels with specifiedLevelId
     */
    patchSpecifiedLevelsWithSpecifiedLevelIdRaw(requestParameters: PatchSpecifiedLevelsWithSpecifiedLevelIdRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Renames the requested specified level id
     * Patch specifiedLevels with specifiedLevelId
     */
    patchSpecifiedLevelsWithSpecifiedLevelId(requestParameters: PatchSpecifiedLevelsWithSpecifiedLevelIdRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Create new CWMS Location Level
     * Post levels
     */
    postLevelsRaw(requestParameters: PostLevelsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Create new CWMS Location Level
     * Post levels
     */
    postLevels(requestParameters: PostLevelsRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Create new SpecifiedLevel
     * Post specifiedLevels
     */
    postSpecifiedLevelsRaw(requestParameters: PostSpecifiedLevelsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Create new SpecifiedLevel
     * Post specifiedLevels
     */
    postSpecifiedLevels(requestParameters: PostSpecifiedLevelsRequest, initOverrides?: RequestInit): Promise<void>;
}
