{ lib, ... }: with lib; { options.mbsync = { enable = mkEnableOption "synchronization using mbsync"; flatten = mkOption { type = types.nullOr types.str; default = null; example = "."; description = '' If set, flattens the hierarchy within the maildir by substituting the canonical hierarchy delimiter / with this value. ''; }; create = mkOption { type = types.enum [ "none" "maildir" "imap" "both" ]; default = "none"; example = "maildir"; description = '' Automatically create missing mailboxes within the given mail store. ''; }; remove = mkOption { type = types.enum [ "none" "maildir" "imap" "both" ]; default = "none"; example = "imap"; description = '' Propagate mailbox deletions to the given mail store. ''; }; expunge = mkOption { type = types.enum [ "none" "maildir" "imap" "both" ]; default = "none"; example = "both"; description = '' Permanently remove messages marked for deletion from the given mail store. ''; }; patterns = mkOption { type = types.listOf types.str; default = [ "*" ]; description = '' Pattern of mailboxes to synchronize. ''; }; }; }