/**
 * 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 type { CwmsId } from './CwmsId';
import type { LookupType } from './LookupType';
import type { WaterSupplyPump } from './WaterSupplyPump';
import type { WaterUser } from './WaterUser';
/**
 *
 * @export
 * @interface WaterUserContract
 */
export interface WaterUserContract {
    /**
     * Owning office of object.
     * @type {string}
     * @memberof WaterUserContract
     */
    officeId: string;
    /**
     *
     * @type {WaterUser}
     * @memberof WaterUserContract
     */
    waterUser: WaterUser;
    /**
     *
     * @type {CwmsId}
     * @memberof WaterUserContract
     */
    contractId: CwmsId;
    /**
     *
     * @type {LookupType}
     * @memberof WaterUserContract
     */
    contractType: LookupType;
    /**
     *
     * @type {Date}
     * @memberof WaterUserContract
     */
    contractEffectiveDate: Date;
    /**
     *
     * @type {Date}
     * @memberof WaterUserContract
     */
    contractExpirationDate: Date;
    /**
     *
     * @type {number}
     * @memberof WaterUserContract
     */
    contractedStorage: number;
    /**
     *
     * @type {number}
     * @memberof WaterUserContract
     */
    initialUseAllocation: number;
    /**
     *
     * @type {number}
     * @memberof WaterUserContract
     */
    futureUseAllocation: number;
    /**
     *
     * @type {string}
     * @memberof WaterUserContract
     */
    storageUnitsId: string;
    /**
     *
     * @type {number}
     * @memberof WaterUserContract
     */
    futureUsePercentActivated: number;
    /**
     *
     * @type {number}
     * @memberof WaterUserContract
     */
    totalAllocPercentActivated: number;
    /**
     *
     * @type {WaterSupplyPump}
     * @memberof WaterUserContract
     */
    pumpOutLocation?: WaterSupplyPump;
    /**
     *
     * @type {WaterSupplyPump}
     * @memberof WaterUserContract
     */
    pumpOutBelowLocation?: WaterSupplyPump;
    /**
     *
     * @type {WaterSupplyPump}
     * @memberof WaterUserContract
     */
    pumpInLocation?: WaterSupplyPump;
}
/**
 * Check if a given object implements the WaterUserContract interface.
 */
export declare function instanceOfWaterUserContract(value: object): boolean;
export declare function WaterUserContractFromJSON(json: any): WaterUserContract;
export declare function WaterUserContractFromJSONTyped(json: any, ignoreDiscriminator: boolean): WaterUserContract;
export declare function WaterUserContractToJSON(value?: WaterUserContract | null): any;
