/**
 * 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, GateChange, Outlet, UnitSystem, VirtualOutlet } from '../models';
export interface DeleteProjectsOutletsWithNameRequest {
    name: string;
    office: string;
    method?: DeleteMethod;
}
export interface DeleteProjectsWithOfficeWithProjectIdGateChangesRequest {
    office: string;
    projectId: string;
    begin: string;
    end: string;
    overrideProtection?: boolean;
}
export interface DeleteProjectsWithOfficeWithProjectIdVirtualOutletsWithNameRequest {
    office: string;
    projectId: string;
    name: string;
    method?: DeleteMethod;
}
export interface GetProjectsOutletsRequest {
    office: string;
    projectId: string;
}
export interface GetProjectsOutletsWithNameRequest {
    name: string;
    office: string;
}
export interface GetProjectsWithOfficeWithProjectIdGateChangesRequest {
    office: string;
    projectId: string;
    begin: string;
    end: string;
    startTimeInclusive?: boolean;
    endTimeInclusive?: boolean;
    unitSystem?: UnitSystem;
    pageSize?: number;
}
export interface GetProjectsWithOfficeWithProjectIdVirtualOutletsRequest {
    office: string;
    projectId: string;
}
export interface GetProjectsWithOfficeWithProjectIdVirtualOutletsWithNameRequest {
    office: string;
    projectId: string;
    name: string;
}
export interface PatchProjectsOutletsWithNameRequest {
    name: string;
    name2: string;
    office: string;
}
export interface PostProjectsGateChangesRequest {
    gateChange: Array<GateChange>;
    failIfExists?: boolean;
}
export interface PostProjectsOutletsRequest {
    outlet: Outlet;
    failIfExists?: boolean;
}
export interface PostProjectsVirtualOutletsRequest {
    virtualOutlet: VirtualOutlet;
    failIfExists?: boolean;
}
/**
 *
 */
export declare class OutletsApi extends runtime.BaseAPI {
    /**
     * Delete CWMS Outlet
     * Delete projects outlets with name
     */
    deleteProjectsOutletsWithNameRaw(requestParameters: DeleteProjectsOutletsWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Delete CWMS Outlet
     * Delete projects outlets with name
     */
    deleteProjectsOutletsWithName(requestParameters: DeleteProjectsOutletsWithNameRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Deletes matching CWMS gate change data for a Reservoir Project.
     * Delete projects with office with projectId gateChanges
     */
    deleteProjectsWithOfficeWithProjectIdGateChangesRaw(requestParameters: DeleteProjectsWithOfficeWithProjectIdGateChangesRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Deletes matching CWMS gate change data for a Reservoir Project.
     * Delete projects with office with projectId gateChanges
     */
    deleteProjectsWithOfficeWithProjectIdGateChanges(requestParameters: DeleteProjectsWithOfficeWithProjectIdGateChangesRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Delete CWMS Virtual Outlet
     * Delete projects with office with projectId virtualOutlets with name
     */
    deleteProjectsWithOfficeWithProjectIdVirtualOutletsWithNameRaw(requestParameters: DeleteProjectsWithOfficeWithProjectIdVirtualOutletsWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Delete CWMS Virtual Outlet
     * Delete projects with office with projectId virtualOutlets with name
     */
    deleteProjectsWithOfficeWithProjectIdVirtualOutletsWithName(requestParameters: DeleteProjectsWithOfficeWithProjectIdVirtualOutletsWithNameRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Returns matching CWMS Outlet Data for a Reservoir Project.
     * Get projects outlets
     */
    getProjectsOutletsRaw(requestParameters: GetProjectsOutletsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<Outlet>>>;
    /**
     * Returns matching CWMS Outlet Data for a Reservoir Project.
     * Get projects outlets
     */
    getProjectsOutlets(requestParameters: GetProjectsOutletsRequest, initOverrides?: RequestInit): Promise<Array<Outlet>>;
    /**
     * Returns CWMS Outlet Data
     * Get projects outlets with name
     */
    getProjectsOutletsWithNameRaw(requestParameters: GetProjectsOutletsWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Outlet>>;
    /**
     * Returns CWMS Outlet Data
     * Get projects outlets with name
     */
    getProjectsOutletsWithName(requestParameters: GetProjectsOutletsWithNameRequest, initOverrides?: RequestInit): Promise<Outlet>;
    /**
     * Returns matching CWMS gate change data for a Reservoir Project.
     * Get projects with office with projectId gateChanges
     */
    getProjectsWithOfficeWithProjectIdGateChangesRaw(requestParameters: GetProjectsWithOfficeWithProjectIdGateChangesRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<GateChange>>>;
    /**
     * Returns matching CWMS gate change data for a Reservoir Project.
     * Get projects with office with projectId gateChanges
     */
    getProjectsWithOfficeWithProjectIdGateChanges(requestParameters: GetProjectsWithOfficeWithProjectIdGateChangesRequest, initOverrides?: RequestInit): Promise<Array<GateChange>>;
    /**
     * Returns matching CWMS Virtual Outlet Data for a Reservoir Project.
     * Get projects with office with projectId virtualOutlets
     */
    getProjectsWithOfficeWithProjectIdVirtualOutletsRaw(requestParameters: GetProjectsWithOfficeWithProjectIdVirtualOutletsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<VirtualOutlet>>>;
    /**
     * Returns matching CWMS Virtual Outlet Data for a Reservoir Project.
     * Get projects with office with projectId virtualOutlets
     */
    getProjectsWithOfficeWithProjectIdVirtualOutlets(requestParameters: GetProjectsWithOfficeWithProjectIdVirtualOutletsRequest, initOverrides?: RequestInit): Promise<Array<VirtualOutlet>>;
    /**
     * Returns CWMS Virtual Outlet Data
     * Get projects with office with projectId virtualOutlets with name
     */
    getProjectsWithOfficeWithProjectIdVirtualOutletsWithNameRaw(requestParameters: GetProjectsWithOfficeWithProjectIdVirtualOutletsWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<VirtualOutlet>>;
    /**
     * Returns CWMS Virtual Outlet Data
     * Get projects with office with projectId virtualOutlets with name
     */
    getProjectsWithOfficeWithProjectIdVirtualOutletsWithName(requestParameters: GetProjectsWithOfficeWithProjectIdVirtualOutletsWithNameRequest, initOverrides?: RequestInit): Promise<VirtualOutlet>;
    /**
     * Rename CWMS Outlet
     * Patch projects outlets with name
     */
    patchProjectsOutletsWithNameRaw(requestParameters: PatchProjectsOutletsWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Rename CWMS Outlet
     * Patch projects outlets with name
     */
    patchProjectsOutletsWithName(requestParameters: PatchProjectsOutletsWithNameRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Create CWMS Gate Changes
     * Post projects gateChanges
     */
    postProjectsGateChangesRaw(requestParameters: PostProjectsGateChangesRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Create CWMS Gate Changes
     * Post projects gateChanges
     */
    postProjectsGateChanges(requestParameters: PostProjectsGateChangesRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Create CWMS Outlet
     * Post projects outlets
     */
    postProjectsOutletsRaw(requestParameters: PostProjectsOutletsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Create CWMS Outlet
     * Post projects outlets
     */
    postProjectsOutlets(requestParameters: PostProjectsOutletsRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Create CWMS Virtual Outlet
     * Post projects virtualOutlets
     */
    postProjectsVirtualOutletsRaw(requestParameters: PostProjectsVirtualOutletsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Create CWMS Virtual Outlet
     * Post projects virtualOutlets
     */
    postProjectsVirtualOutlets(requestParameters: PostProjectsVirtualOutletsRequest, initOverrides?: RequestInit): Promise<void>;
}
