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 { BatchJobStatusEnum_BatchJobStatus } from "../enums/batch_job_status";
/**
 * A list of mutates being processed asynchronously. The mutates are uploaded
 * by the user. The mutates themselves aren't readable and the results of the
 * job can only be read using BatchJobService.ListBatchJobResults.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.BatchJob
 */
export interface BatchJob {
    /**
     * Immutable. The resource name of the batch job.
     * Batch job resource names have the form:
     *
     * `customers/{customer_id}/batchJobs/{batch_job_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. ID of this batch job.
     *
     * @generated from protobuf field: optional int64 id = 7;
     */
    id?: bigint;
    /**
     * Output only. The next sequence token to use when adding operations. Only set when the
     * batch job status is PENDING.
     *
     * @generated from protobuf field: optional string next_add_sequence_token = 8;
     */
    nextAddSequenceToken?: string;
    /**
     * Output only. Contains additional information about this batch job.
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.BatchJob.BatchJobMetadata metadata = 4;
     */
    metadata?: BatchJob_BatchJobMetadata;
    /**
     * Output only. Status of this batch job.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.BatchJobStatusEnum.BatchJobStatus status = 5;
     */
    status: BatchJobStatusEnum_BatchJobStatus;
    /**
     * Output only. The resource name of the long-running operation that can be used to poll
     * for completion. Only set when the batch job status is RUNNING or DONE.
     *
     * @generated from protobuf field: optional string long_running_operation = 9;
     */
    longRunningOperation?: string;
}
/**
 * Additional information about the batch job. This message is also used as
 * metadata returned in batch job Long Running Operations.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.BatchJob.BatchJobMetadata
 */
export interface BatchJob_BatchJobMetadata {
    /**
     * Output only. The time when this batch job was created.
     * Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:00"
     *
     * @generated from protobuf field: optional string creation_date_time = 8;
     */
    creationDateTime?: string;
    /**
     * Output only. The time when this batch job started running.
     * Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:30"
     *
     * @generated from protobuf field: optional string start_date_time = 7;
     */
    startDateTime?: string;
    /**
     * Output only. The time when this batch job was completed.
     * Formatted as yyyy-MM-dd HH:mm:ss. Example: "2018-03-05 09:16:00"
     *
     * @generated from protobuf field: optional string completion_date_time = 9;
     */
    completionDateTime?: string;
    /**
     * Output only. The fraction (between 0.0 and 1.0) of mutates that have been processed.
     * This is empty if the job hasn't started running yet.
     *
     * @generated from protobuf field: optional double estimated_completion_ratio = 10;
     */
    estimatedCompletionRatio?: number;
    /**
     * Output only. The number of mutate operations in the batch job.
     *
     * @generated from protobuf field: optional int64 operation_count = 11;
     */
    operationCount?: bigint;
    /**
     * Output only. The number of mutate operations executed by the batch job.
     * Present only if the job has started running.
     *
     * @generated from protobuf field: optional int64 executed_operation_count = 12;
     */
    executedOperationCount?: bigint;
}
declare class BatchJob$Type extends MessageType<BatchJob> {
    constructor();
    create(value?: PartialMessage<BatchJob>): BatchJob;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BatchJob): BatchJob;
    internalBinaryWrite(message: BatchJob, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.BatchJob
 */
export declare const BatchJob: BatchJob$Type;
declare class BatchJob_BatchJobMetadata$Type extends MessageType<BatchJob_BatchJobMetadata> {
    constructor();
    create(value?: PartialMessage<BatchJob_BatchJobMetadata>): BatchJob_BatchJobMetadata;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BatchJob_BatchJobMetadata): BatchJob_BatchJobMetadata;
    internalBinaryWrite(message: BatchJob_BatchJobMetadata, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.BatchJob.BatchJobMetadata
 */
export declare const BatchJob_BatchJobMetadata: BatchJob_BatchJobMetadata$Type;
export {};
