/**
 * 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, Project, ProjectChildLocations, Projects } from '../models';
export interface DeleteProjectsWithNameRequest {
    name: string;
    office: string;
    method?: DeleteMethod;
}
export interface GetProjectsRequest {
    office?: string;
    idMask?: string;
    page?: string;
    pageSize?: number;
}
export interface GetProjectsLocationsRequest {
    office: string;
    projectLike?: string;
    locationKindLike?: string;
}
export interface GetProjectsWithNameRequest {
    name: string;
    office: string;
}
export interface PatchProjectsWithNameRequest {
    name: string;
    name2: string;
    project: Project;
    office?: string;
}
export interface PostProjectsRequest {
    project: Project;
    failIfExists?: boolean;
}
export interface PostProjectsStatusUpdateWithNameRequest {
    name: string;
    office: string;
    applicationId: string;
    sourceId?: string;
    timeseriesId?: string;
    begin?: string;
    end?: string;
}
/**
 *
 */
export declare class ProjectsApi extends runtime.BaseAPI {
    /**
     * Deletes requested reservoir project
     * Delete projects with name
     */
    deleteProjectsWithNameRaw(requestParameters: DeleteProjectsWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Deletes requested reservoir project
     * Delete projects with name
     */
    deleteProjectsWithName(requestParameters: DeleteProjectsWithNameRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Returns Projects Data
     * Get projects
     */
    getProjectsRaw(requestParameters: GetProjectsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Projects>>;
    /**
     * Returns Projects Data
     * Get projects
     */
    getProjects(requestParameters?: GetProjectsRequest, initOverrides?: RequestInit): Promise<Projects>;
    /**
     * Get a list of project child locations
     * Get projects locations
     */
    getProjectsLocationsRaw(requestParameters: GetProjectsLocationsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<ProjectChildLocations>>>;
    /**
     * Get a list of project child locations
     * Get projects locations
     */
    getProjectsLocations(requestParameters: GetProjectsLocationsRequest, initOverrides?: RequestInit): Promise<Array<ProjectChildLocations>>;
    /**
     * Retrieves requested Project
     * Get projects with name
     */
    getProjectsWithNameRaw(requestParameters: GetProjectsWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Project>>;
    /**
     * Retrieves requested Project
     * Get projects with name
     */
    getProjectsWithName(requestParameters: GetProjectsWithNameRequest, initOverrides?: RequestInit): Promise<Project>;
    /**
     * Rename a project
     * Patch projects with name
     */
    patchProjectsWithNameRaw(requestParameters: PatchProjectsWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Rename a project
     * Patch projects with name
     */
    patchProjectsWithName(requestParameters: PatchProjectsWithNameRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Create new Project
     * Post projects
     */
    postProjectsRaw(requestParameters: PostProjectsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Create new Project
     * Post projects
     */
    postProjects(requestParameters: PostProjectsRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Publishes a message on the office\'s STATUS queue that a project has been updated for a specified application
     * Post projects statusUpdate with name
     */
    postProjectsStatusUpdateWithNameRaw(requestParameters: PostProjectsStatusUpdateWithNameRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Publishes a message on the office\'s STATUS queue that a project has been updated for a specified application
     * Post projects statusUpdate with name
     */
    postProjectsStatusUpdateWithName(requestParameters: PostProjectsStatusUpdateWithNameRequest, initOverrides?: RequestInit): Promise<void>;
}
