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

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

/**
 * Describes the file config.proto.
 */
export declare const file_config: GenFile;

/**
 * Configuration CRUD Messages
 *
 * @generated from message config.GetConfigurationRequest
 */
export declare type GetConfigurationRequest = Message<"config.GetConfigurationRequest"> & {
  /**
   * @generated from field: optional string category = 1;
   */
  category?: string;

  /**
   * @generated from field: optional string key = 2;
   */
  key?: string;

  /**
   * @generated from field: optional string environment = 3;
   */
  environment?: string;
};

/**
 * Describes the message config.GetConfigurationRequest.
 * Use `create(GetConfigurationRequestSchema)` to create a new message.
 */
export declare const GetConfigurationRequestSchema: GenMessage<GetConfigurationRequest>;

/**
 * @generated from message config.GetConfigurationResponse
 */
export declare type GetConfigurationResponse = Message<"config.GetConfigurationResponse"> & {
  /**
   * @generated from field: repeated config.ConfigurationSetting settings = 1;
   */
  settings: ConfigurationSetting[];
};

/**
 * Describes the message config.GetConfigurationResponse.
 * Use `create(GetConfigurationResponseSchema)` to create a new message.
 */
export declare const GetConfigurationResponseSchema: GenMessage<GetConfigurationResponse>;

/**
 * @generated from message config.UpdateConfigurationRequest
 */
export declare type UpdateConfigurationRequest = Message<"config.UpdateConfigurationRequest"> & {
  /**
   * @generated from field: string category = 1;
   */
  category: string;

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

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

  /**
   * @generated from field: string changed_by = 4;
   */
  changedBy: string;

  /**
   * @generated from field: optional string change_reason = 5;
   */
  changeReason?: string;

  /**
   * @generated from field: optional string environment = 6;
   */
  environment?: string;
};

/**
 * Describes the message config.UpdateConfigurationRequest.
 * Use `create(UpdateConfigurationRequestSchema)` to create a new message.
 */
export declare const UpdateConfigurationRequestSchema: GenMessage<UpdateConfigurationRequest>;

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

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

  /**
   * @generated from field: optional config.ValidationResult validation_result = 3;
   */
  validationResult?: ValidationResult;

  /**
   * @generated from field: int64 timestamp = 4;
   */
  timestamp: bigint;
};

/**
 * Describes the message config.UpdateConfigurationResponse.
 * Use `create(UpdateConfigurationResponseSchema)` to create a new message.
 */
export declare const UpdateConfigurationResponseSchema: GenMessage<UpdateConfigurationResponse>;

/**
 * @generated from message config.DeleteConfigurationRequest
 */
export declare type DeleteConfigurationRequest = Message<"config.DeleteConfigurationRequest"> & {
  /**
   * @generated from field: string category = 1;
   */
  category: string;

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

  /**
   * @generated from field: string deleted_by = 3;
   */
  deletedBy: string;

  /**
   * @generated from field: optional string delete_reason = 4;
   */
  deleteReason?: string;
};

/**
 * Describes the message config.DeleteConfigurationRequest.
 * Use `create(DeleteConfigurationRequestSchema)` to create a new message.
 */
export declare const DeleteConfigurationRequestSchema: GenMessage<DeleteConfigurationRequest>;

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

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

  /**
   * @generated from field: int64 timestamp = 3;
   */
  timestamp: bigint;
};

/**
 * Describes the message config.DeleteConfigurationResponse.
 * Use `create(DeleteConfigurationResponseSchema)` to create a new message.
 */
export declare const DeleteConfigurationResponseSchema: GenMessage<DeleteConfigurationResponse>;

/**
 * @generated from message config.ListCategoriesRequest
 */
export declare type ListCategoriesRequest = Message<"config.ListCategoriesRequest"> & {
  /**
   * @generated from field: optional string parent_category = 1;
   */
  parentCategory?: string;
};

/**
 * Describes the message config.ListCategoriesRequest.
 * Use `create(ListCategoriesRequestSchema)` to create a new message.
 */
export declare const ListCategoriesRequestSchema: GenMessage<ListCategoriesRequest>;

/**
 * @generated from message config.ListCategoriesResponse
 */
export declare type ListCategoriesResponse = Message<"config.ListCategoriesResponse"> & {
  /**
   * @generated from field: repeated config.ConfigurationCategory categories = 1;
   */
  categories: ConfigurationCategory[];
};

/**
 * Describes the message config.ListCategoriesResponse.
 * Use `create(ListCategoriesResponseSchema)` to create a new message.
 */
export declare const ListCategoriesResponseSchema: GenMessage<ListCategoriesResponse>;

/**
 * Streaming Messages
 *
 * @generated from message config.StreamConfigChangesRequest
 */
export declare type StreamConfigChangesRequest = Message<"config.StreamConfigChangesRequest"> & {
  /**
   * @generated from field: repeated string categories = 1;
   */
  categories: string[];

  /**
   * @generated from field: repeated string keys = 2;
   */
  keys: string[];
};

/**
 * Describes the message config.StreamConfigChangesRequest.
 * Use `create(StreamConfigChangesRequestSchema)` to create a new message.
 */
export declare const StreamConfigChangesRequestSchema: GenMessage<StreamConfigChangesRequest>;

/**
 * Validation Messages
 *
 * @generated from message config.ValidateConfigurationRequest
 */
export declare type ValidateConfigurationRequest = Message<"config.ValidateConfigurationRequest"> & {
  /**
   * @generated from field: string category = 1;
   */
  category: string;

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

  /**
   * @generated from field: string value = 3;
   */
  value: string;
};

/**
 * Describes the message config.ValidateConfigurationRequest.
 * Use `create(ValidateConfigurationRequestSchema)` to create a new message.
 */
export declare const ValidateConfigurationRequestSchema: GenMessage<ValidateConfigurationRequest>;

/**
 * @generated from message config.ValidateConfigurationResponse
 */
export declare type ValidateConfigurationResponse = Message<"config.ValidateConfigurationResponse"> & {
  /**
   * @generated from field: bool is_valid = 1;
   */
  isValid: boolean;

  /**
   * @generated from field: config.ValidationResult validation_result = 2;
   */
  validationResult?: ValidationResult;
};

/**
 * Describes the message config.ValidateConfigurationResponse.
 * Use `create(ValidateConfigurationResponseSchema)` to create a new message.
 */
export declare const ValidateConfigurationResponseSchema: GenMessage<ValidateConfigurationResponse>;

/**
 * History Messages
 *
 * @generated from message config.GetConfigurationHistoryRequest
 */
export declare type GetConfigurationHistoryRequest = Message<"config.GetConfigurationHistoryRequest"> & {
  /**
   * @generated from field: optional string category = 1;
   */
  category?: string;

  /**
   * @generated from field: optional string key = 2;
   */
  key?: string;

  /**
   * @generated from field: optional int64 start_time = 3;
   */
  startTime?: bigint;

  /**
   * @generated from field: optional int64 end_time = 4;
   */
  endTime?: bigint;

  /**
   * @generated from field: optional int32 limit = 5;
   */
  limit?: number;
};

/**
 * Describes the message config.GetConfigurationHistoryRequest.
 * Use `create(GetConfigurationHistoryRequestSchema)` to create a new message.
 */
export declare const GetConfigurationHistoryRequestSchema: GenMessage<GetConfigurationHistoryRequest>;

/**
 * @generated from message config.GetConfigurationHistoryResponse
 */
export declare type GetConfigurationHistoryResponse = Message<"config.GetConfigurationHistoryResponse"> & {
  /**
   * @generated from field: repeated config.ConfigurationHistoryEntry history = 1;
   */
  history: ConfigurationHistoryEntry[];
};

/**
 * Describes the message config.GetConfigurationHistoryResponse.
 * Use `create(GetConfigurationHistoryResponseSchema)` to create a new message.
 */
export declare const GetConfigurationHistoryResponseSchema: GenMessage<GetConfigurationHistoryResponse>;

/**
 * @generated from message config.RollbackConfigurationRequest
 */
export declare type RollbackConfigurationRequest = Message<"config.RollbackConfigurationRequest"> & {
  /**
   * @generated from field: string category = 1;
   */
  category: string;

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

  /**
   * @generated from field: int64 rollback_to_timestamp = 3;
   */
  rollbackToTimestamp: bigint;

  /**
   * @generated from field: string rolled_back_by = 4;
   */
  rolledBackBy: string;

  /**
   * @generated from field: optional string rollback_reason = 5;
   */
  rollbackReason?: string;
};

/**
 * Describes the message config.RollbackConfigurationRequest.
 * Use `create(RollbackConfigurationRequestSchema)` to create a new message.
 */
export declare const RollbackConfigurationRequestSchema: GenMessage<RollbackConfigurationRequest>;

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

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

  /**
   * @generated from field: config.ConfigurationSetting restored_setting = 3;
   */
  restoredSetting?: ConfigurationSetting;

  /**
   * @generated from field: int64 timestamp = 4;
   */
  timestamp: bigint;
};

/**
 * Describes the message config.RollbackConfigurationResponse.
 * Use `create(RollbackConfigurationResponseSchema)` to create a new message.
 */
export declare const RollbackConfigurationResponseSchema: GenMessage<RollbackConfigurationResponse>;

/**
 * Import/Export Messages
 *
 * @generated from message config.ExportConfigurationRequest
 */
export declare type ExportConfigurationRequest = Message<"config.ExportConfigurationRequest"> & {
  /**
   * @generated from field: repeated string categories = 1;
   */
  categories: string[];

  /**
   * @generated from field: optional string environment = 2;
   */
  environment?: string;

  /**
   * @generated from field: config.ExportFormat format = 3;
   */
  format: ExportFormat;
};

/**
 * Describes the message config.ExportConfigurationRequest.
 * Use `create(ExportConfigurationRequestSchema)` to create a new message.
 */
export declare const ExportConfigurationRequestSchema: GenMessage<ExportConfigurationRequest>;

/**
 * @generated from message config.ExportConfigurationResponse
 */
export declare type ExportConfigurationResponse = Message<"config.ExportConfigurationResponse"> & {
  /**
   * @generated from field: string exported_data = 1;
   */
  exportedData: string;

  /**
   * @generated from field: config.ExportFormat format = 2;
   */
  format: ExportFormat;

  /**
   * @generated from field: int32 settings_count = 3;
   */
  settingsCount: number;

  /**
   * @generated from field: int64 exported_at = 4;
   */
  exportedAt: bigint;
};

/**
 * Describes the message config.ExportConfigurationResponse.
 * Use `create(ExportConfigurationResponseSchema)` to create a new message.
 */
export declare const ExportConfigurationResponseSchema: GenMessage<ExportConfigurationResponse>;

/**
 * @generated from message config.ImportConfigurationRequest
 */
export declare type ImportConfigurationRequest = Message<"config.ImportConfigurationRequest"> & {
  /**
   * @generated from field: string imported_data = 1;
   */
  importedData: string;

  /**
   * @generated from field: config.ExportFormat format = 2;
   */
  format: ExportFormat;

  /**
   * @generated from field: string imported_by = 3;
   */
  importedBy: string;

  /**
   * @generated from field: bool dry_run = 4;
   */
  dryRun: boolean;

  /**
   * @generated from field: bool overwrite_existing = 5;
   */
  overwriteExisting: boolean;
};

/**
 * Describes the message config.ImportConfigurationRequest.
 * Use `create(ImportConfigurationRequestSchema)` to create a new message.
 */
export declare const ImportConfigurationRequestSchema: GenMessage<ImportConfigurationRequest>;

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

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

  /**
   * @generated from field: repeated config.ImportResult import_results = 3;
   */
  importResults: ImportResult[];

  /**
   * @generated from field: int32 imported_count = 4;
   */
  importedCount: number;

  /**
   * @generated from field: int32 skipped_count = 5;
   */
  skippedCount: number;

  /**
   * @generated from field: int32 error_count = 6;
   */
  errorCount: number;
};

/**
 * Describes the message config.ImportConfigurationResponse.
 * Use `create(ImportConfigurationResponseSchema)` to create a new message.
 */
export declare const ImportConfigurationResponseSchema: GenMessage<ImportConfigurationResponse>;

/**
 * Schema Messages
 *
 * @generated from message config.GetConfigSchemaRequest
 */
export declare type GetConfigSchemaRequest = Message<"config.GetConfigSchemaRequest"> & {
  /**
   * @generated from field: optional string category = 1;
   */
  category?: string;
};

/**
 * Describes the message config.GetConfigSchemaRequest.
 * Use `create(GetConfigSchemaRequestSchema)` to create a new message.
 */
export declare const GetConfigSchemaRequestSchema: GenMessage<GetConfigSchemaRequest>;

/**
 * @generated from message config.GetConfigSchemaResponse
 */
export declare type GetConfigSchemaResponse = Message<"config.GetConfigSchemaResponse"> & {
  /**
   * @generated from field: repeated config.ConfigurationSchema schemas = 1;
   */
  schemas: ConfigurationSchema[];
};

/**
 * Describes the message config.GetConfigSchemaResponse.
 * Use `create(GetConfigSchemaResponseSchema)` to create a new message.
 */
export declare const GetConfigSchemaResponseSchema: GenMessage<GetConfigSchemaResponse>;

/**
 * @generated from message config.UpdateConfigSchemaRequest
 */
export declare type UpdateConfigSchemaRequest = Message<"config.UpdateConfigSchemaRequest"> & {
  /**
   * @generated from field: string schema_name = 1;
   */
  schemaName: string;

  /**
   * @generated from field: string schema_definition = 2;
   */
  schemaDefinition: string;

  /**
   * @generated from field: string updated_by = 3;
   */
  updatedBy: string;
};

/**
 * Describes the message config.UpdateConfigSchemaRequest.
 * Use `create(UpdateConfigSchemaRequestSchema)` to create a new message.
 */
export declare const UpdateConfigSchemaRequestSchema: GenMessage<UpdateConfigSchemaRequest>;

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

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

  /**
   * @generated from field: int64 timestamp = 3;
   */
  timestamp: bigint;
};

/**
 * Describes the message config.UpdateConfigSchemaResponse.
 * Use `create(UpdateConfigSchemaResponseSchema)` to create a new message.
 */
export declare const UpdateConfigSchemaResponseSchema: GenMessage<UpdateConfigSchemaResponse>;

/**
 * Complete configuration setting with metadata and validation rules
 *
 * @generated from message config.ConfigurationSetting
 */
export declare type ConfigurationSetting = Message<"config.ConfigurationSetting"> & {
  /**
   * Unique setting identifier
   *
   * @generated from field: int64 id = 1;
   */
  id: bigint;

  /**
   * Configuration category (e.g., "trading.limits")
   *
   * @generated from field: string category = 2;
   */
  category: string;

  /**
   * Configuration key (e.g., "max_position_size")
   *
   * @generated from field: string key = 3;
   */
  key: string;

  /**
   * Current configuration value
   *
   * @generated from field: string value = 4;
   */
  value: string;

  /**
   * Data type (string, number, boolean, etc.)
   *
   * @generated from field: config.ConfigDataType data_type = 5;
   */
  dataType: ConfigDataType;

  /**
   * Whether changes trigger hot-reload
   *
   * @generated from field: bool hot_reload = 6;
   */
  hotReload: boolean;

  /**
   * Human-readable description
   *
   * @generated from field: string description = 7;
   */
  description: string;

  /**
   * Default value if not set
   *
   * @generated from field: optional string default_value = 8;
   */
  defaultValue?: string;

  /**
   * Whether this setting is required
   *
   * @generated from field: bool required = 9;
   */
  required: boolean;

  /**
   * Whether value contains sensitive data
   *
   * @generated from field: bool sensitive = 10;
   */
  sensitive: boolean;

  /**
   * Validation rule expression
   *
   * @generated from field: optional string validation_rule = 11;
   */
  validationRule?: string;

  /**
   * Environment-specific override
   *
   * @generated from field: optional string environment_override = 12;
   */
  environmentOverride?: string;

  /**
   * Minimum numeric value
   *
   * @generated from field: optional double min_value = 13;
   */
  minValue?: number;

  /**
   * Maximum numeric value
   *
   * @generated from field: optional double max_value = 14;
   */
  maxValue?: number;

  /**
   * Allowed enum values (comma-separated)
   *
   * @generated from field: optional string enum_values = 15;
   */
  enumValues?: string;

  /**
   * Dependencies on other settings
   *
   * @generated from field: repeated string depends_on = 16;
   */
  dependsOn: string[];

  /**
   * Tags for categorization
   *
   * @generated from field: repeated string tags = 17;
   */
  tags: string[];

  /**
   * Display order in UI
   *
   * @generated from field: int32 display_order = 18;
   */
  displayOrder: number;

  /**
   * Creation timestamp
   *
   * @generated from field: int64 created_at = 19;
   */
  createdAt: bigint;

  /**
   * Last modification timestamp
   *
   * @generated from field: int64 modified_at = 20;
   */
  modifiedAt: bigint;
};

/**
 * Describes the message config.ConfigurationSetting.
 * Use `create(ConfigurationSettingSchema)` to create a new message.
 */
export declare const ConfigurationSettingSchema: GenMessage<ConfigurationSetting>;

/**
 * @generated from message config.ConfigurationCategory
 */
export declare type ConfigurationCategory = Message<"config.ConfigurationCategory"> & {
  /**
   * @generated from field: int64 id = 1;
   */
  id: bigint;

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

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

  /**
   * @generated from field: optional int64 parent_id = 4;
   */
  parentId?: bigint;

  /**
   * @generated from field: int32 display_order = 5;
   */
  displayOrder: number;

  /**
   * @generated from field: optional string icon = 6;
   */
  icon?: string;

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

  /**
   * @generated from field: repeated config.ConfigurationCategory children = 8;
   */
  children: ConfigurationCategory[];
};

/**
 * Describes the message config.ConfigurationCategory.
 * Use `create(ConfigurationCategorySchema)` to create a new message.
 */
export declare const ConfigurationCategorySchema: GenMessage<ConfigurationCategory>;

/**
 * @generated from message config.ConfigurationHistoryEntry
 */
export declare type ConfigurationHistoryEntry = Message<"config.ConfigurationHistoryEntry"> & {
  /**
   * @generated from field: int64 id = 1;
   */
  id: bigint;

  /**
   * @generated from field: int64 setting_id = 2;
   */
  settingId: bigint;

  /**
   * @generated from field: optional string old_value = 3;
   */
  oldValue?: string;

  /**
   * @generated from field: string new_value = 4;
   */
  newValue: string;

  /**
   * @generated from field: optional string change_reason = 5;
   */
  changeReason?: string;

  /**
   * @generated from field: string changed_by = 6;
   */
  changedBy: string;

  /**
   * @generated from field: int64 changed_at = 7;
   */
  changedAt: bigint;

  /**
   * @generated from field: string change_source = 8;
   */
  changeSource: string;

  /**
   * @generated from field: optional config.ValidationResult validation_result = 9;
   */
  validationResult?: ValidationResult;

  /**
   * @generated from field: optional int64 rollback_id = 10;
   */
  rollbackId?: bigint;
};

/**
 * Describes the message config.ConfigurationHistoryEntry.
 * Use `create(ConfigurationHistoryEntrySchema)` to create a new message.
 */
export declare const ConfigurationHistoryEntrySchema: GenMessage<ConfigurationHistoryEntry>;

/**
 * @generated from message config.ConfigurationSchema
 */
export declare type ConfigurationSchema = Message<"config.ConfigurationSchema"> & {
  /**
   * @generated from field: int64 id = 1;
   */
  id: bigint;

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

  /**
   * @generated from field: string schema_definition = 3;
   */
  schemaDefinition: string;

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

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

/**
 * Describes the message config.ConfigurationSchema.
 * Use `create(ConfigurationSchemaSchema)` to create a new message.
 */
export declare const ConfigurationSchemaSchema: GenMessage<ConfigurationSchema>;

/**
 * @generated from message config.ValidationResult
 */
export declare type ValidationResult = Message<"config.ValidationResult"> & {
  /**
   * @generated from field: bool is_valid = 1;
   */
  isValid: boolean;

  /**
   * @generated from field: repeated config.ValidationError errors = 2;
   */
  errors: ValidationError[];

  /**
   * @generated from field: repeated config.ValidationWarning warnings = 3;
   */
  warnings: ValidationWarning[];
};

/**
 * Describes the message config.ValidationResult.
 * Use `create(ValidationResultSchema)` to create a new message.
 */
export declare const ValidationResultSchema: GenMessage<ValidationResult>;

/**
 * @generated from message config.ValidationError
 */
export declare type ValidationError = Message<"config.ValidationError"> & {
  /**
   * @generated from field: string field = 1;
   */
  field: string;

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

  /**
   * @generated from field: string error_code = 3;
   */
  errorCode: string;
};

/**
 * Describes the message config.ValidationError.
 * Use `create(ValidationErrorSchema)` to create a new message.
 */
export declare const ValidationErrorSchema: GenMessage<ValidationError>;

/**
 * @generated from message config.ValidationWarning
 */
export declare type ValidationWarning = Message<"config.ValidationWarning"> & {
  /**
   * @generated from field: string field = 1;
   */
  field: string;

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

  /**
   * @generated from field: string warning_code = 3;
   */
  warningCode: string;
};

/**
 * Describes the message config.ValidationWarning.
 * Use `create(ValidationWarningSchema)` to create a new message.
 */
export declare const ValidationWarningSchema: GenMessage<ValidationWarning>;

/**
 * @generated from message config.ImportResult
 */
export declare type ImportResult = Message<"config.ImportResult"> & {
  /**
   * @generated from field: string category = 1;
   */
  category: string;

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

  /**
   * @generated from field: config.ImportStatus status = 3;
   */
  status: ImportStatus;

  /**
   * @generated from field: optional string error_message = 4;
   */
  errorMessage?: string;
};

/**
 * Describes the message config.ImportResult.
 * Use `create(ImportResultSchema)` to create a new message.
 */
export declare const ImportResultSchema: GenMessage<ImportResult>;

/**
 * Event Messages
 *
 * @generated from message config.ConfigChangeEvent
 */
export declare type ConfigChangeEvent = Message<"config.ConfigChangeEvent"> & {
  /**
   * @generated from field: int64 setting_id = 1;
   */
  settingId: bigint;

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

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

  /**
   * @generated from field: string old_value = 4;
   */
  oldValue: string;

  /**
   * @generated from field: string new_value = 5;
   */
  newValue: string;

  /**
   * @generated from field: string changed_by = 6;
   */
  changedBy: string;

  /**
   * @generated from field: int64 timestamp = 7;
   */
  timestamp: bigint;

  /**
   * @generated from field: config.ConfigChangeType change_type = 8;
   */
  changeType: ConfigChangeType;

  /**
   * @generated from field: bool hot_reload = 9;
   */
  hotReload: boolean;
};

/**
 * Describes the message config.ConfigChangeEvent.
 * Use `create(ConfigChangeEventSchema)` to create a new message.
 */
export declare const ConfigChangeEventSchema: GenMessage<ConfigChangeEvent>;

/**
 * Data types for configuration values
 *
 * @generated from enum config.ConfigDataType
 */
export enum ConfigDataType {
  /**
   * Default/unknown type
   *
   * @generated from enum value: CONFIG_DATA_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Text string value
   *
   * @generated from enum value: CONFIG_DATA_TYPE_STRING = 1;
   */
  STRING = 1,

  /**
   * Numeric value (int or float)
   *
   * @generated from enum value: CONFIG_DATA_TYPE_NUMBER = 2;
   */
  NUMBER = 2,

  /**
   * Boolean true/false value
   *
   * @generated from enum value: CONFIG_DATA_TYPE_BOOLEAN = 3;
   */
  BOOLEAN = 3,

  /**
   * JSON object or array
   *
   * @generated from enum value: CONFIG_DATA_TYPE_JSON = 4;
   */
  JSON = 4,

  /**
   * Encrypted sensitive value
   *
   * @generated from enum value: CONFIG_DATA_TYPE_ENCRYPTED = 5;
   */
  ENCRYPTED = 5,
}

/**
 * Describes the enum config.ConfigDataType.
 */
export declare const ConfigDataTypeSchema: GenEnum<ConfigDataType>;

/**
 * @generated from enum config.ExportFormat
 */
export enum ExportFormat {
  /**
   * @generated from enum value: EXPORT_FORMAT_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: EXPORT_FORMAT_JSON = 1;
   */
  JSON = 1,

  /**
   * @generated from enum value: EXPORT_FORMAT_YAML = 2;
   */
  YAML = 2,

  /**
   * @generated from enum value: EXPORT_FORMAT_TOML = 3;
   */
  TOML = 3,

  /**
   * @generated from enum value: EXPORT_FORMAT_ENV = 4;
   */
  ENV = 4,
}

/**
 * Describes the enum config.ExportFormat.
 */
export declare const ExportFormatSchema: GenEnum<ExportFormat>;

/**
 * @generated from enum config.ImportStatus
 */
export enum ImportStatus {
  /**
   * @generated from enum value: IMPORT_STATUS_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: IMPORT_STATUS_SUCCESS = 1;
   */
  SUCCESS = 1,

  /**
   * @generated from enum value: IMPORT_STATUS_SKIPPED = 2;
   */
  SKIPPED = 2,

  /**
   * @generated from enum value: IMPORT_STATUS_ERROR = 3;
   */
  ERROR = 3,

  /**
   * @generated from enum value: IMPORT_STATUS_VALIDATION_FAILED = 4;
   */
  VALIDATION_FAILED = 4,
}

/**
 * Describes the enum config.ImportStatus.
 */
export declare const ImportStatusSchema: GenEnum<ImportStatus>;

/**
 * @generated from enum config.ConfigChangeType
 */
export enum ConfigChangeType {
  /**
   * @generated from enum value: CONFIG_CHANGE_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: CONFIG_CHANGE_TYPE_CREATED = 1;
   */
  CREATED = 1,

  /**
   * @generated from enum value: CONFIG_CHANGE_TYPE_UPDATED = 2;
   */
  UPDATED = 2,

  /**
   * @generated from enum value: CONFIG_CHANGE_TYPE_DELETED = 3;
   */
  DELETED = 3,

  /**
   * @generated from enum value: CONFIG_CHANGE_TYPE_ROLLBACK = 4;
   */
  ROLLBACK = 4,
}

/**
 * Describes the enum config.ConfigChangeType.
 */
export declare const ConfigChangeTypeSchema: GenEnum<ConfigChangeType>;

/**
 * Configuration Service provides centralized, PostgreSQL-based configuration management with hot-reload capabilities.
 * This service supports real-time configuration updates, validation, history tracking, and import/export functionality
 * for all trading system components with comprehensive audit trails and rollback capabilities.
 *
 * @generated from service config.ConfigService
 */
export declare const ConfigService: GenService<{
  /**
   * Configuration CRUD Operations
   * Get configuration settings by category, key, or environment
   *
   * @generated from rpc config.ConfigService.GetConfiguration
   */
  getConfiguration: {
    methodKind: "unary";
    input: typeof GetConfigurationRequestSchema;
    output: typeof GetConfigurationResponseSchema;
  },
  /**
   * Update configuration value with validation and audit logging
   *
   * @generated from rpc config.ConfigService.UpdateConfiguration
   */
  updateConfiguration: {
    methodKind: "unary";
    input: typeof UpdateConfigurationRequestSchema;
    output: typeof UpdateConfigurationResponseSchema;
  },
  /**
   * Delete configuration setting with audit trail
   *
   * @generated from rpc config.ConfigService.DeleteConfiguration
   */
  deleteConfiguration: {
    methodKind: "unary";
    input: typeof DeleteConfigurationRequestSchema;
    output: typeof DeleteConfigurationResponseSchema;
  },
  /**
   * List available configuration categories
   *
   * @generated from rpc config.ConfigService.ListCategories
   */
  listCategories: {
    methodKind: "unary";
    input: typeof ListCategoriesRequestSchema;
    output: typeof ListCategoriesResponseSchema;
  },
  /**
   * Real-time Configuration Streaming
   * Stream real-time configuration changes with hot-reload support
   *
   * @generated from rpc config.ConfigService.StreamConfigChanges
   */
  streamConfigChanges: {
    methodKind: "server_streaming";
    input: typeof StreamConfigChangesRequestSchema;
    output: typeof ConfigChangeEventSchema;
  },
  /**
   * Configuration Management Operations
   * Validate configuration value against schema and rules
   *
   * @generated from rpc config.ConfigService.ValidateConfiguration
   */
  validateConfiguration: {
    methodKind: "unary";
    input: typeof ValidateConfigurationRequestSchema;
    output: typeof ValidateConfigurationResponseSchema;
  },
  /**
   * Get configuration change history with audit details
   *
   * @generated from rpc config.ConfigService.GetConfigurationHistory
   */
  getConfigurationHistory: {
    methodKind: "unary";
    input: typeof GetConfigurationHistoryRequestSchema;
    output: typeof GetConfigurationHistoryResponseSchema;
  },
  /**
   * Rollback configuration to previous value
   *
   * @generated from rpc config.ConfigService.RollbackConfiguration
   */
  rollbackConfiguration: {
    methodKind: "unary";
    input: typeof RollbackConfigurationRequestSchema;
    output: typeof RollbackConfigurationResponseSchema;
  },
  /**
   * Export configuration data in various formats
   *
   * @generated from rpc config.ConfigService.ExportConfiguration
   */
  exportConfiguration: {
    methodKind: "unary";
    input: typeof ExportConfigurationRequestSchema;
    output: typeof ExportConfigurationResponseSchema;
  },
  /**
   * Import configuration data with validation
   *
   * @generated from rpc config.ConfigService.ImportConfiguration
   */
  importConfiguration: {
    methodKind: "unary";
    input: typeof ImportConfigurationRequestSchema;
    output: typeof ImportConfigurationResponseSchema;
  },
  /**
   * Schema Management Operations
   * Get configuration schema definitions
   *
   * @generated from rpc config.ConfigService.GetConfigSchema
   */
  getConfigSchema: {
    methodKind: "unary";
    input: typeof GetConfigSchemaRequestSchema;
    output: typeof GetConfigSchemaResponseSchema;
  },
  /**
   * Update configuration schema with validation rules
   *
   * @generated from rpc config.ConfigService.UpdateConfigSchema
   */
  updateConfigSchema: {
    methodKind: "unary";
    input: typeof UpdateConfigSchemaRequestSchema;
    output: typeof UpdateConfigSchemaResponseSchema;
  },
}>;

