import { ServiceType } from "@protobuf-ts/runtime-rpc";
import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
import type { IBinaryWriter } from "@protobuf-ts/runtime";
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
import type { IBinaryReader } from "@protobuf-ts/runtime";
import type { PartialMessage } from "@protobuf-ts/runtime";
import { MessageType } from "@protobuf-ts/runtime";
import { Service } from "./resources";
/**
 * Request message for the `EnableService` method.
 *
 * @generated from protobuf message google.api.serviceusage.v1.EnableServiceRequest
 */
export interface EnableServiceRequest {
    /**
     * Name of the consumer and service to enable the service on.
     *
     * The `EnableService` and `DisableService` methods currently only support
     * projects.
     *
     * Enabling a service requires that the service is public or is shared with
     * the user enabling the service.
     *
     * An example name would be:
     * `projects/123/services/serviceusage.googleapis.com` where `123` is the
     * project number.
     *
     * @generated from protobuf field: string name = 1;
     */
    name: string;
}
/**
 * Response message for the `EnableService` method.
 * This response message is assigned to the `response` field of the returned
 * Operation when that operation is done.
 *
 * @generated from protobuf message google.api.serviceusage.v1.EnableServiceResponse
 */
export interface EnableServiceResponse {
    /**
     * The new state of the service after enabling.
     *
     * @generated from protobuf field: google.api.serviceusage.v1.Service service = 1;
     */
    service?: Service;
}
/**
 * Request message for the `DisableService` method.
 *
 * @generated from protobuf message google.api.serviceusage.v1.DisableServiceRequest
 */
export interface DisableServiceRequest {
    /**
     * Name of the consumer and service to disable the service on.
     *
     * The enable and disable methods currently only support projects.
     *
     * An example name would be:
     * `projects/123/services/serviceusage.googleapis.com` where `123` is the
     * project number.
     *
     * @generated from protobuf field: string name = 1;
     */
    name: string;
    /**
     * Indicates if services that are enabled and which depend on this service
     * should also be disabled. If not set, an error will be generated if any
     * enabled services depend on the service to be disabled. When set, the
     * service, and any enabled services that depend on it, will be disabled
     * together.
     *
     * @generated from protobuf field: bool disable_dependent_services = 2;
     */
    disableDependentServices: boolean;
    /**
     * Defines the behavior for checking service usage when disabling a service.
     *
     * @generated from protobuf field: google.api.serviceusage.v1.DisableServiceRequest.CheckIfServiceHasUsage check_if_service_has_usage = 3;
     */
    checkIfServiceHasUsage: DisableServiceRequest_CheckIfServiceHasUsage;
}
/**
 * Enum to determine if service usage should be checked when disabling a
 * service.
 *
 * @generated from protobuf enum google.api.serviceusage.v1.DisableServiceRequest.CheckIfServiceHasUsage
 */
export declare enum DisableServiceRequest_CheckIfServiceHasUsage {
    /**
     * When unset, the default behavior is used, which is SKIP.
     *
     * @generated from protobuf enum value: CHECK_IF_SERVICE_HAS_USAGE_UNSPECIFIED = 0;
     */
    CHECK_IF_SERVICE_HAS_USAGE_UNSPECIFIED = 0,
    /**
     * If set, skip checking service usage when disabling a service.
     *
     * @generated from protobuf enum value: SKIP = 1;
     */
    SKIP = 1,
    /**
     * If set, service usage is checked when disabling the service. If a
     * service, or its dependents, has usage in the last 30 days, the request
     * returns a FAILED_PRECONDITION error.
     *
     * @generated from protobuf enum value: CHECK = 2;
     */
    CHECK = 2
}
/**
 * Response message for the `DisableService` method.
 * This response message is assigned to the `response` field of the returned
 * Operation when that operation is done.
 *
 * @generated from protobuf message google.api.serviceusage.v1.DisableServiceResponse
 */
export interface DisableServiceResponse {
    /**
     * The new state of the service after disabling.
     *
     * @generated from protobuf field: google.api.serviceusage.v1.Service service = 1;
     */
    service?: Service;
}
/**
 * Request message for the `GetService` method.
 *
 * @generated from protobuf message google.api.serviceusage.v1.GetServiceRequest
 */
export interface GetServiceRequest {
    /**
     * Name of the consumer and service to get the `ConsumerState` for.
     *
     * An example name would be:
     * `projects/123/services/serviceusage.googleapis.com` where `123` is the
     * project number.
     *
     * @generated from protobuf field: string name = 1;
     */
    name: string;
}
/**
 * Request message for the `ListServices` method.
 *
 * @generated from protobuf message google.api.serviceusage.v1.ListServicesRequest
 */
export interface ListServicesRequest {
    /**
     * Parent to search for services on.
     *
     * An example name would be:
     * `projects/123` where `123` is the project number.
     *
     * @generated from protobuf field: string parent = 1;
     */
    parent: string;
    /**
     * Requested size of the next page of data.
     * Requested page size cannot exceed 200.
     * If not set, the default page size is 50.
     *
     * @generated from protobuf field: int32 page_size = 2;
     */
    pageSize: number;
    /**
     * Token identifying which result to start with, which is returned by a
     * previous list call.
     *
     * @generated from protobuf field: string page_token = 3;
     */
    pageToken: string;
    /**
     * Only list services that conform to the given filter.
     * The allowed filter strings are `state:ENABLED` and `state:DISABLED`.
     *
     * @generated from protobuf field: string filter = 4;
     */
    filter: string;
}
/**
 * Response message for the `ListServices` method.
 *
 * @generated from protobuf message google.api.serviceusage.v1.ListServicesResponse
 */
export interface ListServicesResponse {
    /**
     * The available services for the requested project.
     *
     * @generated from protobuf field: repeated google.api.serviceusage.v1.Service services = 1;
     */
    services: Service[];
    /**
     * Token that can be passed to `ListServices` to resume a paginated
     * query.
     *
     * @generated from protobuf field: string next_page_token = 2;
     */
    nextPageToken: string;
}
/**
 * Request message for the `BatchEnableServices` method.
 *
 * @generated from protobuf message google.api.serviceusage.v1.BatchEnableServicesRequest
 */
export interface BatchEnableServicesRequest {
    /**
     * Parent to enable services on.
     *
     * An example name would be:
     * `projects/123` where `123` is the project number.
     *
     * The `BatchEnableServices` method currently only supports projects.
     *
     * @generated from protobuf field: string parent = 1;
     */
    parent: string;
    /**
     * The identifiers of the services to enable on the project.
     *
     * A valid identifier would be:
     * serviceusage.googleapis.com
     *
     * Enabling services requires that each service is public or is shared with
     * the user enabling the service.
     *
     * A single request can enable a maximum of 20 services at a time. If more
     * than 20 services are specified, the request will fail, and no state changes
     * will occur.
     *
     * @generated from protobuf field: repeated string service_ids = 2;
     */
    serviceIds: string[];
}
/**
 * Response message for the `BatchEnableServices` method.
 * This response message is assigned to the `response` field of the returned
 * Operation when that operation is done.
 *
 * @generated from protobuf message google.api.serviceusage.v1.BatchEnableServicesResponse
 */
export interface BatchEnableServicesResponse {
    /**
     * The new state of the services after enabling.
     *
     * @generated from protobuf field: repeated google.api.serviceusage.v1.Service services = 1;
     */
    services: Service[];
    /**
     * If allow_partial_success is true, and one or more services could not be
     * enabled, this field contains the details about each failure.
     *
     * @generated from protobuf field: repeated google.api.serviceusage.v1.BatchEnableServicesResponse.EnableFailure failures = 2;
     */
    failures: BatchEnableServicesResponse_EnableFailure[];
}
/**
 * Provides error messages for the failing services.
 *
 * @generated from protobuf message google.api.serviceusage.v1.BatchEnableServicesResponse.EnableFailure
 */
export interface BatchEnableServicesResponse_EnableFailure {
    /**
     * The service id of a service that could not be enabled.
     *
     * @generated from protobuf field: string service_id = 1;
     */
    serviceId: string;
    /**
     * An error message describing why the service could not be enabled.
     *
     * @generated from protobuf field: string error_message = 2;
     */
    errorMessage: string;
}
/**
 * Request message for the `BatchGetServices` method.
 *
 * @generated from protobuf message google.api.serviceusage.v1.BatchGetServicesRequest
 */
export interface BatchGetServicesRequest {
    /**
     * Parent to retrieve services from.
     * If this is set, the parent of all of the services specified in `names` must
     * match this field. An example name would be: `projects/123` where `123` is
     * the project number. The `BatchGetServices` method currently only supports
     * projects.
     *
     * @generated from protobuf field: string parent = 1;
     */
    parent: string;
    /**
     * Names of the services to retrieve.
     *
     * An example name would be:
     * `projects/123/services/serviceusage.googleapis.com` where `123` is the
     * project number.
     * A single request can get a maximum of 30 services at a time.
     *
     * @generated from protobuf field: repeated string names = 2;
     */
    names: string[];
}
/**
 * Response message for the `BatchGetServices` method.
 *
 * @generated from protobuf message google.api.serviceusage.v1.BatchGetServicesResponse
 */
export interface BatchGetServicesResponse {
    /**
     * The requested Service states.
     *
     * @generated from protobuf field: repeated google.api.serviceusage.v1.Service services = 1;
     */
    services: Service[];
}
declare class EnableServiceRequest$Type extends MessageType<EnableServiceRequest> {
    constructor();
    create(value?: PartialMessage<EnableServiceRequest>): EnableServiceRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EnableServiceRequest): EnableServiceRequest;
    internalBinaryWrite(message: EnableServiceRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.EnableServiceRequest
 */
export declare const EnableServiceRequest: EnableServiceRequest$Type;
declare class EnableServiceResponse$Type extends MessageType<EnableServiceResponse> {
    constructor();
    create(value?: PartialMessage<EnableServiceResponse>): EnableServiceResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EnableServiceResponse): EnableServiceResponse;
    internalBinaryWrite(message: EnableServiceResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.EnableServiceResponse
 */
export declare const EnableServiceResponse: EnableServiceResponse$Type;
declare class DisableServiceRequest$Type extends MessageType<DisableServiceRequest> {
    constructor();
    create(value?: PartialMessage<DisableServiceRequest>): DisableServiceRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DisableServiceRequest): DisableServiceRequest;
    internalBinaryWrite(message: DisableServiceRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.DisableServiceRequest
 */
export declare const DisableServiceRequest: DisableServiceRequest$Type;
declare class DisableServiceResponse$Type extends MessageType<DisableServiceResponse> {
    constructor();
    create(value?: PartialMessage<DisableServiceResponse>): DisableServiceResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DisableServiceResponse): DisableServiceResponse;
    internalBinaryWrite(message: DisableServiceResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.DisableServiceResponse
 */
export declare const DisableServiceResponse: DisableServiceResponse$Type;
declare class GetServiceRequest$Type extends MessageType<GetServiceRequest> {
    constructor();
    create(value?: PartialMessage<GetServiceRequest>): GetServiceRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetServiceRequest): GetServiceRequest;
    internalBinaryWrite(message: GetServiceRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.GetServiceRequest
 */
export declare const GetServiceRequest: GetServiceRequest$Type;
declare class ListServicesRequest$Type extends MessageType<ListServicesRequest> {
    constructor();
    create(value?: PartialMessage<ListServicesRequest>): ListServicesRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListServicesRequest): ListServicesRequest;
    internalBinaryWrite(message: ListServicesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.ListServicesRequest
 */
export declare const ListServicesRequest: ListServicesRequest$Type;
declare class ListServicesResponse$Type extends MessageType<ListServicesResponse> {
    constructor();
    create(value?: PartialMessage<ListServicesResponse>): ListServicesResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListServicesResponse): ListServicesResponse;
    internalBinaryWrite(message: ListServicesResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.ListServicesResponse
 */
export declare const ListServicesResponse: ListServicesResponse$Type;
declare class BatchEnableServicesRequest$Type extends MessageType<BatchEnableServicesRequest> {
    constructor();
    create(value?: PartialMessage<BatchEnableServicesRequest>): BatchEnableServicesRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BatchEnableServicesRequest): BatchEnableServicesRequest;
    internalBinaryWrite(message: BatchEnableServicesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.BatchEnableServicesRequest
 */
export declare const BatchEnableServicesRequest: BatchEnableServicesRequest$Type;
declare class BatchEnableServicesResponse$Type extends MessageType<BatchEnableServicesResponse> {
    constructor();
    create(value?: PartialMessage<BatchEnableServicesResponse>): BatchEnableServicesResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BatchEnableServicesResponse): BatchEnableServicesResponse;
    internalBinaryWrite(message: BatchEnableServicesResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.BatchEnableServicesResponse
 */
export declare const BatchEnableServicesResponse: BatchEnableServicesResponse$Type;
declare class BatchEnableServicesResponse_EnableFailure$Type extends MessageType<BatchEnableServicesResponse_EnableFailure> {
    constructor();
    create(value?: PartialMessage<BatchEnableServicesResponse_EnableFailure>): BatchEnableServicesResponse_EnableFailure;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BatchEnableServicesResponse_EnableFailure): BatchEnableServicesResponse_EnableFailure;
    internalBinaryWrite(message: BatchEnableServicesResponse_EnableFailure, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.BatchEnableServicesResponse.EnableFailure
 */
export declare const BatchEnableServicesResponse_EnableFailure: BatchEnableServicesResponse_EnableFailure$Type;
declare class BatchGetServicesRequest$Type extends MessageType<BatchGetServicesRequest> {
    constructor();
    create(value?: PartialMessage<BatchGetServicesRequest>): BatchGetServicesRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BatchGetServicesRequest): BatchGetServicesRequest;
    internalBinaryWrite(message: BatchGetServicesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.BatchGetServicesRequest
 */
export declare const BatchGetServicesRequest: BatchGetServicesRequest$Type;
declare class BatchGetServicesResponse$Type extends MessageType<BatchGetServicesResponse> {
    constructor();
    create(value?: PartialMessage<BatchGetServicesResponse>): BatchGetServicesResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BatchGetServicesResponse): BatchGetServicesResponse;
    internalBinaryWrite(message: BatchGetServicesResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.api.serviceusage.v1.BatchGetServicesResponse
 */
export declare const BatchGetServicesResponse: BatchGetServicesResponse$Type;
/**
 * @generated ServiceType for protobuf service google.api.serviceusage.v1.ServiceUsage
 */
export declare const ServiceUsage: ServiceType;
export {};
