import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import type { AllocateQuotaResponse } from "./quota_controller";
import type { AllocateQuotaRequest } from "./quota_controller";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * [Google Quota Control API](/service-control/overview)
 *
 * Allows clients to allocate and release quota against a [managed
 * service](https://cloud.google.com/service-management/reference/rpc/google.api/servicemanagement.v1#google.api.servicemanagement.v1.ManagedService).
 *
 * @generated from protobuf service google.api.servicecontrol.v1.QuotaController
 */
export interface IQuotaControllerClient {
    /**
     * Attempts to allocate quota for the specified consumer. It should be called
     * before the operation is executed.
     *
     * This method requires the `servicemanagement.services.quota`
     * permission on the specified service. For more information, see
     * [Cloud IAM](https://cloud.google.com/iam).
     *
     * **NOTE:** The client **must** fail-open on server errors `INTERNAL`,
     * `UNKNOWN`, `DEADLINE_EXCEEDED`, and `UNAVAILABLE`. To ensure system
     * reliability, the server may inject these errors to prohibit any hard
     * dependency on the quota functionality.
     *
     * @generated from protobuf rpc: AllocateQuota(google.api.servicecontrol.v1.AllocateQuotaRequest) returns (google.api.servicecontrol.v1.AllocateQuotaResponse);
     */
    allocateQuota(input: AllocateQuotaRequest, options?: RpcOptions): UnaryCall<AllocateQuotaRequest, AllocateQuotaResponse>;
}
/**
 * [Google Quota Control API](/service-control/overview)
 *
 * Allows clients to allocate and release quota against a [managed
 * service](https://cloud.google.com/service-management/reference/rpc/google.api/servicemanagement.v1#google.api.servicemanagement.v1.ManagedService).
 *
 * @generated from protobuf service google.api.servicecontrol.v1.QuotaController
 */
export declare class QuotaControllerClient implements IQuotaControllerClient, ServiceInfo {
    private readonly _transport;
    typeName: string;
    methods: import("@protobuf-ts/runtime-rpc").MethodInfo<any, any>[];
    options: {
        [extensionName: string]: import("@protobuf-ts/runtime").JsonValue;
    };
    constructor(_transport: RpcTransport);
    /**
     * Attempts to allocate quota for the specified consumer. It should be called
     * before the operation is executed.
     *
     * This method requires the `servicemanagement.services.quota`
     * permission on the specified service. For more information, see
     * [Cloud IAM](https://cloud.google.com/iam).
     *
     * **NOTE:** The client **must** fail-open on server errors `INTERNAL`,
     * `UNKNOWN`, `DEADLINE_EXCEEDED`, and `UNAVAILABLE`. To ensure system
     * reliability, the server may inject these errors to prohibit any hard
     * dependency on the quota functionality.
     *
     * @generated from protobuf rpc: AllocateQuota(google.api.servicecontrol.v1.AllocateQuotaRequest) returns (google.api.servicecontrol.v1.AllocateQuotaResponse);
     */
    allocateQuota(input: AllocateQuotaRequest, options?: RpcOptions): UnaryCall<AllocateQuotaRequest, AllocateQuotaResponse>;
}
