// @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts"
// @generated from file data_acquisition.proto (package data_acquisition, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file data_acquisition.proto.
 */
export declare const file_data_acquisition: GenFile;

/**
 * @generated from message data_acquisition.StreamDownloadStatusRequest
 */
export declare type StreamDownloadStatusRequest = Message<"data_acquisition.StreamDownloadStatusRequest"> & {
  /**
   * 0 = server default (5s)
   *
   * @generated from field: uint32 interval_seconds = 1;
   */
  intervalSeconds: number;
};

/**
 * Describes the message data_acquisition.StreamDownloadStatusRequest.
 * Use `create(StreamDownloadStatusRequestSchema)` to create a new message.
 */
export declare const StreamDownloadStatusRequestSchema: GenMessage<StreamDownloadStatusRequest>;

/**
 * Request to schedule a new data download
 *
 * @generated from message data_acquisition.ScheduleDownloadRequest
 */
export declare type ScheduleDownloadRequest = Message<"data_acquisition.ScheduleDownloadRequest"> & {
  /**
   * Databento dataset (e.g., "GLBX.MDP3" for CME futures)
   *
   * @generated from field: string dataset = 1;
   */
  dataset: string;

  /**
   * List of symbols to download (e.g., ["ES.FUT", "NQ.FUT"])
   *
   * @generated from field: repeated string symbols = 2;
   */
  symbols: string[];

  /**
   * Start date in YYYY-MM-DD format
   *
   * @generated from field: string start_date = 3;
   */
  startDate: string;

  /**
   * End date in YYYY-MM-DD format
   *
   * @generated from field: string end_date = 4;
   */
  endDate: string;

  /**
   * Schema type (e.g., "ohlcv-1m", "mbp-10", "trades")
   *
   * @generated from field: string schema = 5;
   */
  schema: string;

  /**
   * Optional description for this download
   *
   * @generated from field: string description = 6;
   */
  description: string;

  /**
   * Optional tags for categorization
   *
   * @generated from field: map<string, string> tags = 7;
   */
  tags: { [key: string]: string };

  /**
   * Priority level (1=low, 5=high)
   *
   * @generated from field: uint32 priority = 8;
   */
  priority: number;
};

/**
 * Describes the message data_acquisition.ScheduleDownloadRequest.
 * Use `create(ScheduleDownloadRequestSchema)` to create a new message.
 */
export declare const ScheduleDownloadRequestSchema: GenMessage<ScheduleDownloadRequest>;

/**
 * @generated from message data_acquisition.ScheduleDownloadResponse
 */
export declare type ScheduleDownloadResponse = Message<"data_acquisition.ScheduleDownloadResponse"> & {
  /**
   * Unique job identifier
   *
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * Initial job status
   *
   * @generated from field: data_acquisition.DownloadStatus status = 2;
   */
  status: DownloadStatus;

  /**
   * Estimated cost in USD
   *
   * @generated from field: double estimated_cost_usd = 3;
   */
  estimatedCostUsd: number;

  /**
   * Human-readable message
   *
   * @generated from field: string message = 4;
   */
  message: string;
};

/**
 * Describes the message data_acquisition.ScheduleDownloadResponse.
 * Use `create(ScheduleDownloadResponseSchema)` to create a new message.
 */
export declare const ScheduleDownloadResponseSchema: GenMessage<ScheduleDownloadResponse>;

/**
 * @generated from message data_acquisition.GetDownloadStatusRequest
 */
export declare type GetDownloadStatusRequest = Message<"data_acquisition.GetDownloadStatusRequest"> & {
  /**
   * @generated from field: string job_id = 1;
   */
  jobId: string;
};

/**
 * Describes the message data_acquisition.GetDownloadStatusRequest.
 * Use `create(GetDownloadStatusRequestSchema)` to create a new message.
 */
export declare const GetDownloadStatusRequestSchema: GenMessage<GetDownloadStatusRequest>;

/**
 * @generated from message data_acquisition.GetDownloadStatusResponse
 */
export declare type GetDownloadStatusResponse = Message<"data_acquisition.GetDownloadStatusResponse"> & {
  /**
   * @generated from field: data_acquisition.DownloadJobDetails job_details = 1;
   */
  jobDetails?: DownloadJobDetails;
};

/**
 * Describes the message data_acquisition.GetDownloadStatusResponse.
 * Use `create(GetDownloadStatusResponseSchema)` to create a new message.
 */
export declare const GetDownloadStatusResponseSchema: GenMessage<GetDownloadStatusResponse>;

/**
 * @generated from message data_acquisition.CancelDownloadRequest
 */
export declare type CancelDownloadRequest = Message<"data_acquisition.CancelDownloadRequest"> & {
  /**
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * Optional cancellation reason
   *
   * @generated from field: string reason = 2;
   */
  reason: string;
};

/**
 * Describes the message data_acquisition.CancelDownloadRequest.
 * Use `create(CancelDownloadRequestSchema)` to create a new message.
 */
export declare const CancelDownloadRequestSchema: GenMessage<CancelDownloadRequest>;

/**
 * @generated from message data_acquisition.CancelDownloadResponse
 */
export declare type CancelDownloadResponse = Message<"data_acquisition.CancelDownloadResponse"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * @generated from field: string message = 2;
   */
  message: string;
};

/**
 * Describes the message data_acquisition.CancelDownloadResponse.
 * Use `create(CancelDownloadResponseSchema)` to create a new message.
 */
export declare const CancelDownloadResponseSchema: GenMessage<CancelDownloadResponse>;

/**
 * @generated from message data_acquisition.ListDownloadJobsRequest
 */
export declare type ListDownloadJobsRequest = Message<"data_acquisition.ListDownloadJobsRequest"> & {
  /**
   * @generated from field: uint32 page = 1;
   */
  page: number;

  /**
   * @generated from field: uint32 page_size = 2;
   */
  pageSize: number;

  /**
   * @generated from field: data_acquisition.DownloadStatus status_filter = 3;
   */
  statusFilter: DownloadStatus;

  /**
   * Unix timestamp
   *
   * @generated from field: int64 start_time = 4;
   */
  startTime: bigint;

  /**
   * Unix timestamp
   *
   * @generated from field: int64 end_time = 5;
   */
  endTime: bigint;
};

/**
 * Describes the message data_acquisition.ListDownloadJobsRequest.
 * Use `create(ListDownloadJobsRequestSchema)` to create a new message.
 */
export declare const ListDownloadJobsRequestSchema: GenMessage<ListDownloadJobsRequest>;

/**
 * @generated from message data_acquisition.ListDownloadJobsResponse
 */
export declare type ListDownloadJobsResponse = Message<"data_acquisition.ListDownloadJobsResponse"> & {
  /**
   * @generated from field: repeated data_acquisition.DownloadJobSummary jobs = 1;
   */
  jobs: DownloadJobSummary[];

  /**
   * @generated from field: uint32 total_count = 2;
   */
  totalCount: number;

  /**
   * @generated from field: uint32 page = 3;
   */
  page: number;

  /**
   * @generated from field: uint32 page_size = 4;
   */
  pageSize: number;
};

/**
 * Describes the message data_acquisition.ListDownloadJobsResponse.
 * Use `create(ListDownloadJobsResponseSchema)` to create a new message.
 */
export declare const ListDownloadJobsResponseSchema: GenMessage<ListDownloadJobsResponse>;

/**
 * @generated from message data_acquisition.HealthCheckRequest
 */
export declare type HealthCheckRequest = Message<"data_acquisition.HealthCheckRequest"> & {
};

/**
 * Describes the message data_acquisition.HealthCheckRequest.
 * Use `create(HealthCheckRequestSchema)` to create a new message.
 */
export declare const HealthCheckRequestSchema: GenMessage<HealthCheckRequest>;

/**
 * @generated from message data_acquisition.HealthCheckResponse
 */
export declare type HealthCheckResponse = Message<"data_acquisition.HealthCheckResponse"> & {
  /**
   * @generated from field: bool healthy = 1;
   */
  healthy: boolean;

  /**
   * @generated from field: string message = 2;
   */
  message: string;

  /**
   * @generated from field: map<string, string> details = 3;
   */
  details: { [key: string]: string };
};

/**
 * Describes the message data_acquisition.HealthCheckResponse.
 * Use `create(HealthCheckResponseSchema)` to create a new message.
 */
export declare const HealthCheckResponseSchema: GenMessage<HealthCheckResponse>;

/**
 * @generated from message data_acquisition.DownloadJobDetails
 */
export declare type DownloadJobDetails = Message<"data_acquisition.DownloadJobDetails"> & {
  /**
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * @generated from field: data_acquisition.DownloadStatus status = 2;
   */
  status: DownloadStatus;

  /**
   * @generated from field: string dataset = 3;
   */
  dataset: string;

  /**
   * @generated from field: repeated string symbols = 4;
   */
  symbols: string[];

  /**
   * @generated from field: string start_date = 5;
   */
  startDate: string;

  /**
   * @generated from field: string end_date = 6;
   */
  endDate: string;

  /**
   * @generated from field: string schema = 7;
   */
  schema: string;

  /**
   * @generated from field: string description = 8;
   */
  description: string;

  /**
   * @generated from field: map<string, string> tags = 9;
   */
  tags: { [key: string]: string };

  /**
   * @generated from field: uint32 priority = 10;
   */
  priority: number;

  /**
   * Progress tracking
   *
   * 0.0 to 100.0
   *
   * @generated from field: float progress_percentage = 11;
   */
  progressPercentage: number;

  /**
   * @generated from field: uint64 bytes_downloaded = 12;
   */
  bytesDownloaded: bigint;

  /**
   * @generated from field: uint64 total_bytes = 13;
   */
  totalBytes: bigint;

  /**
   * Cost tracking
   *
   * @generated from field: double estimated_cost_usd = 14;
   */
  estimatedCostUsd: number;

  /**
   * @generated from field: double actual_cost_usd = 15;
   */
  actualCostUsd: number;

  /**
   * Quality metrics
   *
   * @generated from field: uint64 records_count = 16;
   */
  recordsCount: bigint;

  /**
   * @generated from field: uint64 invalid_records = 17;
   */
  invalidRecords: bigint;

  /**
   * 0.0 to 1.0
   *
   * @generated from field: double data_quality_score = 18;
   */
  dataQualityScore: number;

  /**
   * Storage paths
   *
   * @generated from field: string local_path = 19;
   */
  localPath: string;

  /**
   * @generated from field: string minio_path = 20;
   */
  minioPath: string;

  /**
   * Timestamps
   *
   * Unix timestamp
   *
   * @generated from field: int64 created_at = 21;
   */
  createdAt: bigint;

  /**
   * @generated from field: int64 started_at = 22;
   */
  startedAt: bigint;

  /**
   * @generated from field: int64 completed_at = 23;
   */
  completedAt: bigint;

  /**
   * Error information
   *
   * @generated from field: string error_message = 24;
   */
  errorMessage: string;

  /**
   * @generated from field: uint32 retry_count = 25;
   */
  retryCount: number;

  /**
   * Metadata
   *
   * @generated from field: string created_by = 26;
   */
  createdBy: string;
};

/**
 * Describes the message data_acquisition.DownloadJobDetails.
 * Use `create(DownloadJobDetailsSchema)` to create a new message.
 */
export declare const DownloadJobDetailsSchema: GenMessage<DownloadJobDetails>;

/**
 * @generated from message data_acquisition.DownloadJobSummary
 */
export declare type DownloadJobSummary = Message<"data_acquisition.DownloadJobSummary"> & {
  /**
   * @generated from field: string job_id = 1;
   */
  jobId: string;

  /**
   * @generated from field: data_acquisition.DownloadStatus status = 2;
   */
  status: DownloadStatus;

  /**
   * @generated from field: string dataset = 3;
   */
  dataset: string;

  /**
   * @generated from field: repeated string symbols = 4;
   */
  symbols: string[];

  /**
   * @generated from field: string start_date = 5;
   */
  startDate: string;

  /**
   * @generated from field: string end_date = 6;
   */
  endDate: string;

  /**
   * @generated from field: float progress_percentage = 7;
   */
  progressPercentage: number;

  /**
   * @generated from field: double actual_cost_usd = 8;
   */
  actualCostUsd: number;

  /**
   * @generated from field: int64 created_at = 9;
   */
  createdAt: bigint;

  /**
   * @generated from field: int64 completed_at = 10;
   */
  completedAt: bigint;
};

/**
 * Describes the message data_acquisition.DownloadJobSummary.
 * Use `create(DownloadJobSummarySchema)` to create a new message.
 */
export declare const DownloadJobSummarySchema: GenMessage<DownloadJobSummary>;

/**
 * @generated from enum data_acquisition.DownloadStatus
 */
export enum DownloadStatus {
  /**
   * @generated from enum value: DOWNLOAD_STATUS_UNKNOWN = 0;
   */
  DOWNLOAD_STATUS_UNKNOWN = 0,

  /**
   * Queued, waiting to start
   *
   * @generated from enum value: PENDING = 1;
   */
  PENDING = 1,

  /**
   * Actively downloading from Databento
   *
   * @generated from enum value: DOWNLOADING = 2;
   */
  DOWNLOADING = 2,

  /**
   * Validating data quality
   *
   * @generated from enum value: VALIDATING = 3;
   */
  VALIDATING = 3,

  /**
   * Uploading to MinIO
   *
   * @generated from enum value: UPLOADING = 4;
   */
  UPLOADING = 4,

  /**
   * Successfully completed
   *
   * @generated from enum value: COMPLETED = 5;
   */
  COMPLETED = 5,

  /**
   * Failed with errors
   *
   * @generated from enum value: FAILED = 6;
   */
  FAILED = 6,

  /**
   * Cancelled by user
   *
   * @generated from enum value: CANCELLED = 7;
   */
  CANCELLED = 7,
}

/**
 * Describes the enum data_acquisition.DownloadStatus.
 */
export declare const DownloadStatusSchema: GenEnum<DownloadStatus>;

/**
 * Data Acquisition Service provides automated Databento data downloading and storage.
 * This service handles scheduled downloads, cost tracking, quality validation, and automatic MinIO upload.
 *
 * @generated from service data_acquisition.DataAcquisitionService
 */
export declare const DataAcquisitionService: GenService<{
  /**
   * Download Management
   * Schedule a new data download from Databento
   *
   * @generated from rpc data_acquisition.DataAcquisitionService.ScheduleDownload
   */
  scheduleDownload: {
    methodKind: "unary";
    input: typeof ScheduleDownloadRequestSchema;
    output: typeof ScheduleDownloadResponseSchema;
  },
  /**
   * Get status of a download job
   *
   * @generated from rpc data_acquisition.DataAcquisitionService.GetDownloadStatus
   */
  getDownloadStatus: {
    methodKind: "unary";
    input: typeof GetDownloadStatusRequestSchema;
    output: typeof GetDownloadStatusResponseSchema;
  },
  /**
   * Cancel a running or pending download job
   *
   * @generated from rpc data_acquisition.DataAcquisitionService.CancelDownload
   */
  cancelDownload: {
    methodKind: "unary";
    input: typeof CancelDownloadRequestSchema;
    output: typeof CancelDownloadResponseSchema;
  },
  /**
   * List all download jobs with optional filters
   *
   * @generated from rpc data_acquisition.DataAcquisitionService.ListDownloadJobs
   */
  listDownloadJobs: {
    methodKind: "unary";
    input: typeof ListDownloadJobsRequestSchema;
    output: typeof ListDownloadJobsResponseSchema;
  },
  /**
   * Service Health and Status
   * Check service health and resource availability
   *
   * @generated from rpc data_acquisition.DataAcquisitionService.HealthCheck
   */
  healthCheck: {
    methodKind: "unary";
    input: typeof HealthCheckRequestSchema;
    output: typeof HealthCheckResponseSchema;
  },
  /**
   * Server-streaming: polls ListDownloadJobs at gateway level
   *
   * @generated from rpc data_acquisition.DataAcquisitionService.StreamDownloadStatus
   */
  streamDownloadStatus: {
    methodKind: "server_streaming";
    input: typeof StreamDownloadStatusRequestSchema;
    output: typeof ListDownloadJobsResponseSchema;
  },
}>;

