// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct OpenCollectionRequest {
    #[prost(string, tag = "1")]
    pub collection_path: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub media_folder_path: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub media_db_path: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct CloseCollectionRequest {
    #[prost(bool, tag = "1")]
    pub downgrade_to_schema11: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct CheckDatabaseResponse {
    #[prost(string, repeated, tag = "1")]
    pub problems: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct OpChanges {
    #[prost(bool, tag = "1")]
    pub card: bool,
    #[prost(bool, tag = "2")]
    pub note: bool,
    #[prost(bool, tag = "3")]
    pub deck: bool,
    #[prost(bool, tag = "4")]
    pub tag: bool,
    #[prost(bool, tag = "5")]
    pub notetype: bool,
    #[prost(bool, tag = "6")]
    pub config: bool,
    #[prost(bool, tag = "11")]
    pub deck_config: bool,
    #[prost(bool, tag = "12")]
    pub mtime: bool,
    #[prost(bool, tag = "7")]
    pub browser_table: bool,
    #[prost(bool, tag = "8")]
    pub browser_sidebar: bool,
    /// editor and displayed card in review screen
    #[prost(bool, tag = "9")]
    pub note_text: bool,
    /// whether to call .reset() and getCard()
    #[prost(bool, tag = "10")]
    pub study_queues: bool,
}
/// Allows frontend code to extract changes from other messages like
/// ImportResponse without decoding other potentially large fields.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct OpChangesOnly {
    #[prost(message, optional, tag = "1")]
    pub changes: ::core::option::Option<OpChanges>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct NestedOpChanges {
    #[prost(message, optional, tag = "1")]
    pub changes: ::core::option::Option<OpChangesOnly>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct OpChangesWithCount {
    #[prost(message, optional, tag = "1")]
    pub changes: ::core::option::Option<OpChanges>,
    #[prost(uint32, tag = "2")]
    pub count: u32,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct OpChangesWithId {
    #[prost(message, optional, tag = "1")]
    pub changes: ::core::option::Option<OpChanges>,
    #[prost(int64, tag = "2")]
    pub id: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct UndoStatus {
    #[prost(string, tag = "1")]
    pub undo: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub redo: ::prost::alloc::string::String,
    #[prost(uint32, tag = "3")]
    pub last_step: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct OpChangesAfterUndo {
    #[prost(message, optional, tag = "1")]
    pub changes: ::core::option::Option<OpChanges>,
    #[prost(string, tag = "2")]
    pub operation: ::prost::alloc::string::String,
    #[prost(int64, tag = "3")]
    pub reverted_to_timestamp: i64,
    #[prost(message, optional, tag = "4")]
    pub new_status: ::core::option::Option<UndoStatus>,
    #[prost(uint32, tag = "5")]
    pub counter: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct Progress {
    #[prost(oneof = "progress::Value", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12")]
    pub value: ::core::option::Option<progress::Value>,
}
/// Nested message and enum types in `Progress`.
pub mod progress {
    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    #[must_use]
pub struct FullSync {
        #[prost(uint32, tag = "1")]
        pub transferred: u32,
        #[prost(uint32, tag = "2")]
        pub total: u32,
    }
    #[derive(Clone, PartialEq, ::prost::Message)]
    #[must_use]
pub struct NormalSync {
        #[prost(string, tag = "1")]
        pub stage: ::prost::alloc::string::String,
        #[prost(string, tag = "2")]
        pub added: ::prost::alloc::string::String,
        #[prost(string, tag = "3")]
        pub removed: ::prost::alloc::string::String,
    }
    #[derive(Clone, PartialEq, ::prost::Message)]
    #[must_use]
pub struct DatabaseCheck {
        #[prost(string, tag = "1")]
        pub stage: ::prost::alloc::string::String,
        #[prost(uint32, tag = "2")]
        pub stage_total: u32,
        #[prost(uint32, tag = "3")]
        pub stage_current: u32,
    }
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    #[must_use]
pub enum Value {
        #[prost(message, tag = "1")]
        None(super::super::generic::Empty),
        #[prost(message, tag = "2")]
        MediaSync(super::super::sync::MediaSyncProgress),
        #[prost(string, tag = "3")]
        MediaCheck(::prost::alloc::string::String),
        #[prost(message, tag = "4")]
        FullSync(FullSync),
        #[prost(message, tag = "5")]
        NormalSync(NormalSync),
        #[prost(message, tag = "6")]
        DatabaseCheck(DatabaseCheck),
        #[prost(string, tag = "7")]
        Importing(::prost::alloc::string::String),
        #[prost(string, tag = "8")]
        Exporting(::prost::alloc::string::String),
        #[prost(message, tag = "9")]
        ComputeParams(super::ComputeParamsProgress),
        #[prost(message, tag = "10")]
        ComputeRetention(super::ComputeRetentionProgress),
        #[prost(message, tag = "11")]
        ComputeMemory(super::ComputeMemoryProgress),
        #[prost(message, tag = "12")]
        DownloadUpdate(super::DownloadUpdateProgress),
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct ComputeParamsProgress {
    /// Current iteration
    #[prost(uint32, tag = "1")]
    pub current: u32,
    /// Total iterations
    #[prost(uint32, tag = "2")]
    pub total: u32,
    #[prost(uint32, tag = "3")]
    pub reviews: u32,
    /// Only used in 'compute all params' case
    #[prost(uint32, tag = "4")]
    pub current_preset: u32,
    /// Only used in 'compute all params' case
    #[prost(uint32, tag = "5")]
    pub total_presets: u32,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct ComputeRetentionProgress {
    #[prost(uint32, tag = "1")]
    pub current: u32,
    #[prost(uint32, tag = "2")]
    pub total: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct ComputeMemoryProgress {
    #[prost(uint32, tag = "1")]
    pub current_cards: u32,
    #[prost(uint32, tag = "2")]
    pub total_cards: u32,
    #[prost(string, tag = "3")]
    pub label: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct CreateBackupRequest {
    #[prost(string, tag = "1")]
    pub backup_folder: ::prost::alloc::string::String,
    /// Create a backup even if the configured interval hasn't elapsed yet.
    #[prost(bool, tag = "2")]
    pub force: bool,
    #[prost(bool, tag = "3")]
    pub wait_for_completion: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct GetCustomColoursResponse {
    #[prost(string, repeated, tag = "1")]
    pub colours: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct DownloadUpdateProgress {
    #[prost(uint32, tag = "1")]
    pub downloaded_bytes: u32,
    #[prost(uint32, tag = "2")]
    pub total_bytes: u32,
}
