/**
 * CWMS Data API
 * CWMS REST API for Data Retrieval
 *
 * The version of the OpenAPI document: 2.3.2-2025.03.19
 *
 *
 * 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 type { ProjectLock, ProjectLockId } from '../models/index';
export interface DeleteProjectLocksWithNameRequest {
    name: string;
    office: string;
    revokeTimeout?: number;
}
export interface GetProjectLocksRequest {
    officeMask: string;
    projectMask?: string;
    applicationMask?: string;
}
export interface GetProjectLocksWithNameRequest {
    name: string;
    office: string;
    applicationId: string;
}
export interface PostProjectLocksRequest {
    projectLock: ProjectLock;
    revokeExisting?: boolean;
    revokeTimeout?: number;
}
export interface PostProjectLocksDenyRequest {
    lockId: string;
}
export interface PostProjectLocksReleaseRequest {
    office: string;
    lockId: string;
}
/**
 *
 */
export declare class ProjectLocksApi extends runtime.BaseAPI {
    /**
     * Revokes a project lock, if successful the lock is deleted
     * Delete cwmsData projectLocks with name
     */
    deleteProjectLocksWithNameRaw(requestParameters: DeleteProjectLocksWithNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Revokes a project lock, if successful the lock is deleted
     * Delete cwmsData projectLocks with name
     */
    deleteProjectLocksWithName(requestParameters: DeleteProjectLocksWithNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
    /**
     * Get a list of project locks
     * Get cwmsData projectLocks
     */
    getProjectLocksRaw(requestParameters: GetProjectLocksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ProjectLock>>;
    /**
     * Get a list of project locks
     * Get cwmsData projectLocks
     */
    getProjectLocks(requestParameters: GetProjectLocksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ProjectLock>;
    /**
     * Return a lock if the specified project is locked. Otherwise 404
     * Get cwmsData projectLocks with name
     */
    getProjectLocksWithNameRaw(requestParameters: GetProjectLocksWithNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ProjectLock>>;
    /**
     * Return a lock if the specified project is locked. Otherwise 404
     * Get cwmsData projectLocks with name
     */
    getProjectLocksWithName(requestParameters: GetProjectLocksWithNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ProjectLock>;
    /**
     * Requests the creation of a new Reservoir Project Lock
     * Post cwmsData projectLocks
     */
    postProjectLocksRaw(requestParameters: PostProjectLocksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ProjectLockId>>;
    /**
     * Requests the creation of a new Reservoir Project Lock
     * Post cwmsData projectLocks
     */
    postProjectLocks(requestParameters: PostProjectLocksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ProjectLockId>;
    /**
     * Deny a Lock revoke request.
     * Post cwmsData projectLocks deny
     */
    postProjectLocksDenyRaw(requestParameters: PostProjectLocksDenyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Deny a Lock revoke request.
     * Post cwmsData projectLocks deny
     */
    postProjectLocksDeny(requestParameters: PostProjectLocksDenyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
    /**
     * Releases a project lock
     * Post cwmsData projectLocks release
     */
    postProjectLocksReleaseRaw(requestParameters: PostProjectLocksReleaseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Releases a project lock
     * Post cwmsData projectLocks release
     */
    postProjectLocksRelease(requestParameters: PostProjectLocksReleaseRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
}
