// This file is @generated by prost-build.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct NoteId {
    #[prost(int64, tag = "1")]
    pub nid: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct NoteIds {
    #[prost(int64, repeated, tag = "1")]
    pub note_ids: ::prost::alloc::vec::Vec<i64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct Note {
    #[prost(int64, tag = "1")]
    pub id: i64,
    #[prost(string, tag = "2")]
    pub guid: ::prost::alloc::string::String,
    #[prost(int64, tag = "3")]
    pub notetype_id: i64,
    #[prost(uint32, tag = "4")]
    pub mtime_secs: u32,
    #[prost(int32, tag = "5")]
    pub usn: i32,
    #[prost(string, repeated, tag = "6")]
    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "7")]
    pub fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct AddNoteRequest {
    #[prost(message, optional, tag = "1")]
    pub note: ::core::option::Option<Note>,
    #[prost(int64, tag = "2")]
    pub deck_id: i64,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct AddNoteResponse {
    #[prost(message, optional, tag = "1")]
    pub changes: ::core::option::Option<super::collection::OpChangesWithCount>,
    #[prost(int64, tag = "2")]
    pub note_id: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct AddNotesRequest {
    #[prost(message, repeated, tag = "1")]
    pub requests: ::prost::alloc::vec::Vec<AddNoteRequest>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct AddNotesResponse {
    #[prost(message, optional, tag = "1")]
    pub changes: ::core::option::Option<super::collection::OpChanges>,
    #[prost(int64, repeated, tag = "2")]
    pub nids: ::prost::alloc::vec::Vec<i64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct UpdateNotesRequest {
    #[prost(message, repeated, tag = "1")]
    pub notes: ::prost::alloc::vec::Vec<Note>,
    #[prost(bool, tag = "2")]
    pub skip_undo_entry: bool,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct DefaultsForAddingRequest {
    #[prost(int64, tag = "1")]
    pub home_deck_of_current_review_card: i64,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct DeckAndNotetype {
    #[prost(int64, tag = "1")]
    pub deck_id: i64,
    #[prost(int64, tag = "2")]
    pub notetype_id: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct RemoveNotesRequest {
    #[prost(int64, repeated, tag = "1")]
    pub note_ids: ::prost::alloc::vec::Vec<i64>,
    #[prost(int64, repeated, tag = "2")]
    pub card_ids: ::prost::alloc::vec::Vec<i64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct ClozeNumbersInNoteResponse {
    #[prost(uint32, repeated, tag = "1")]
    pub numbers: ::prost::alloc::vec::Vec<u32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct AfterNoteUpdatesRequest {
    #[prost(int64, repeated, tag = "1")]
    pub nids: ::prost::alloc::vec::Vec<i64>,
    #[prost(bool, tag = "2")]
    pub mark_notes_modified: bool,
    #[prost(bool, tag = "3")]
    pub generate_cards: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct FieldNamesForNotesRequest {
    #[prost(int64, repeated, tag = "1")]
    pub nids: ::prost::alloc::vec::Vec<i64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct FieldNamesForNotesResponse {
    #[prost(string, repeated, tag = "1")]
    pub fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct NoteFieldsCheckResponse {
    #[prost(enumeration = "note_fields_check_response::State", tag = "1")]
    pub state: i32,
}
/// Nested message and enum types in `NoteFieldsCheckResponse`.
pub mod note_fields_check_response {
    #[derive(
        Clone,
        Copy,
        Debug,
        PartialEq,
        Eq,
        Hash,
        PartialOrd,
        Ord,
        ::prost::Enumeration
    )]
    #[repr(i32)]
    #[must_use]
pub enum State {
        Normal = 0,
        Empty = 1,
        Duplicate = 2,
        MissingCloze = 3,
        NotetypeNotCloze = 4,
        FieldNotCloze = 5,
    }
    impl State {
        /// String value of the enum field names used in the ProtoBuf definition.
        ///
        /// The values are not transformed in any way and thus are considered stable
        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
        pub fn as_str_name(&self) -> &'static str {
            match self {
                Self::Normal => "NORMAL",
                Self::Empty => "EMPTY",
                Self::Duplicate => "DUPLICATE",
                Self::MissingCloze => "MISSING_CLOZE",
                Self::NotetypeNotCloze => "NOTETYPE_NOT_CLOZE",
                Self::FieldNotCloze => "FIELD_NOT_CLOZE",
            }
        }
        /// Creates an enum from field names used in the ProtoBuf definition.
        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
            match value {
                "NORMAL" => Some(Self::Normal),
                "EMPTY" => Some(Self::Empty),
                "DUPLICATE" => Some(Self::Duplicate),
                "MISSING_CLOZE" => Some(Self::MissingCloze),
                "NOTETYPE_NOT_CLOZE" => Some(Self::NotetypeNotCloze),
                "FIELD_NOT_CLOZE" => Some(Self::FieldNotCloze),
                _ => None,
            }
        }
    }
}
