/**
 * 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 { DeleteMethod, ForecastInstance, ForecastSpec } from '../models';
export interface DeleteForecastInstanceWithNameRequest {
    name: string;
    forecastDate: string;
    issueDate: string;
    office: string;
    designator?: string;
}
export interface DeleteForecastSpecWithNameRequest {
    name: string;
    office: string;
    designator?: string;
    method?: DeleteMethod;
}
export interface GetForecastInstanceRequest {
    office?: string;
    name?: string;
    designator?: string;
}
export interface GetForecastInstanceWithNameRequest {
    name: string;
    forecastDate: string;
    issueDate: string;
    office: string;
    designator?: string;
}
export interface GetForecastInstanceWithNameFileDataRequest {
    name: string;
    forecastDate: string;
    issueDate: string;
    office: string;
    designator?: string;
}
export interface GetForecastSpecRequest {
    office?: string;
    idMask?: string;
    designatorMask?: string;
    sourceEntity?: string;
}
export interface GetForecastSpecWithNameRequest {
    name: string;
    office: string;
    designator?: string;
}
export interface PatchForecastInstanceWithNameRequest {
    name: string;
    forecastInstance: ForecastInstance;
}
export interface PatchForecastSpecWithNameRequest {
    name: string;
    forecastSpec: ForecastSpec;
}
export interface PostForecastInstanceRequest {
    forecastInstance: ForecastInstance;
}
export interface PostForecastSpecRequest {
    forecastSpec: ForecastSpec;
}
/**
 *
 */
export declare class ForecastApi extends runtime.BaseAPI {
    /**
     * Used to delete forecast instance data based on unique fields
     * Delete forecastInstance with name
     */
    deleteForecastInstanceWithNameRaw(requestParameters: DeleteForecastInstanceWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Used to delete forecast instance data based on unique fields
     * Delete forecastInstance with name
     */
    deleteForecastInstanceWithName(requestParameters: DeleteForecastInstanceWithNameRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Used to delete forecast spec data based on unique fields
     * Delete forecastSpec with name
     */
    deleteForecastSpecWithNameRaw(requestParameters: DeleteForecastSpecWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Used to delete forecast spec data based on unique fields
     * Delete forecastSpec with name
     */
    deleteForecastSpecWithName(requestParameters: DeleteForecastSpecWithNameRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Used to get all forecast instances for a given forecast spec
     * Get forecastInstance
     */
    getForecastInstanceRaw(requestParameters: GetForecastInstanceRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<ForecastInstance>>;
    /**
     * Used to get all forecast instances for a given forecast spec
     * Get forecastInstance
     */
    getForecastInstance(requestParameters?: GetForecastInstanceRequest, initOverrides?: RequestInit): Promise<ForecastInstance>;
    /**
     * Used to get all forecast instances for a given forecast spec
     * Get forecastInstance with name
     */
    getForecastInstanceWithNameRaw(requestParameters: GetForecastInstanceWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<ForecastInstance>>;
    /**
     * Used to get all forecast instances for a given forecast spec
     * Get forecastInstance with name
     */
    getForecastInstanceWithName(requestParameters: GetForecastInstanceWithNameRequest, initOverrides?: RequestInit): Promise<ForecastInstance>;
    /**
     * Used to download forecast file for the given parameters
     * Get forecastInstance with name fileData
     */
    getForecastInstanceWithNameFileDataRaw(requestParameters: GetForecastInstanceWithNameFileDataRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Blob>>;
    /**
     * Used to download forecast file for the given parameters
     * Get forecastInstance with name fileData
     */
    getForecastInstanceWithNameFileData(requestParameters: GetForecastInstanceWithNameFileDataRequest, initOverrides?: RequestInit): Promise<Blob>;
    /**
     * Used to query multiple forecast specs
     * Get forecastSpec
     */
    getForecastSpecRaw(requestParameters: GetForecastSpecRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<ForecastSpec>>;
    /**
     * Used to query multiple forecast specs
     * Get forecastSpec
     */
    getForecastSpec(requestParameters?: GetForecastSpecRequest, initOverrides?: RequestInit): Promise<ForecastSpec>;
    /**
     * Used to query a single forecast spec record
     * Get forecastSpec with name
     */
    getForecastSpecWithNameRaw(requestParameters: GetForecastSpecWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<ForecastSpec>>;
    /**
     * Used to query a single forecast spec record
     * Get forecastSpec with name
     */
    getForecastSpecWithName(requestParameters: GetForecastSpecWithNameRequest, initOverrides?: RequestInit): Promise<ForecastSpec>;
    /**
     * Update a forecast instance with new max age, notes, forecast fileand forecast info key/value pairs.
     * Patch forecastInstance with name
     */
    patchForecastInstanceWithNameRaw(requestParameters: PatchForecastInstanceWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Update a forecast instance with new max age, notes, forecast fileand forecast info key/value pairs.
     * Patch forecastInstance with name
     */
    patchForecastInstanceWithName(requestParameters: PatchForecastInstanceWithNameRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Update a forecast spec with provided values
     * Patch forecastSpec with name
     */
    patchForecastSpecWithNameRaw(requestParameters: PatchForecastSpecWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Update a forecast spec with provided values
     * Patch forecastSpec with name
     */
    patchForecastSpecWithName(requestParameters: PatchForecastSpecWithNameRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Used to create and save a forecast instance
     * Post forecastInstance
     */
    postForecastInstanceRaw(requestParameters: PostForecastInstanceRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Used to create and save a forecast instance
     * Post forecastInstance
     */
    postForecastInstance(requestParameters: PostForecastInstanceRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Used to create and save forecast spec data
     * Post forecastSpec
     */
    postForecastSpecRaw(requestParameters: PostForecastSpecRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Used to create and save forecast spec data
     * Post forecastSpec
     */
    postForecastSpec(requestParameters: PostForecastSpecRequest, initOverrides?: RequestInit): Promise<void>;
}
