public static extern void c4query_setParameters(C4Query *query, FLSlice encodedParameters);
public static extern C4Document *c4doc_create(C4Database *db, FLSlice docID, FLSlice body, C4RevisionFlags revisionFlags, C4Error *error);
public static extern bool FLSlice_Equal(FLSlice a, FLSlice b);
public static extern bool c4doc_resolveConflict(C4Document *doc, FLSlice winningRevID, FLSlice losingRevID, FLSlice mergedBody, C4RevisionFlags mergedFlags, C4Error *error);
public static extern bool c4doc_setExpiration(C4Database *db, FLSlice docID, long timestamp, C4Error *outError);
public static extern bool c4doc_selectRevision(C4Document *doc, FLSlice revID, [MarshalAs(UnmanagedType.U1)] bool withBody, C4Error *outError);
public static extern uint c4rev_getGeneration(FLSlice revID);
public static extern C4Query *c4query_new(C4Database *db, FLSlice str, C4Error *outError);
public static extern C4QueryEnumerator *c4query_run(C4Query *query, C4QueryOptions *options, FLSlice encodedParameters, C4Error *outError);
public static extern bool c4blob_create(C4BlobStore *store, FLSlice contents, C4BlobKey *expectedKey, C4BlobKey *outKey, C4Error *error);
public static extern C4Query *c4query_new2(C4Database *database, C4QueryLanguage language, FLSlice expression, int *outErrorPos, C4Error *error);
public static extern C4BlobKey c4blob_computeKey(FLSlice contents);
public static extern C4BlobStore *c4blob_openStore(FLSlice dirPath, C4DatabaseFlags flags, C4EncryptionKey *encryptionKey, C4Error *outError);
public static extern bool c4blob_keyFromString(FLSlice str, C4BlobKey *x);
public static void Free(C4Slice slice) { FLSlice.Free((FLSlice)slice); slice.buf = null; slice.size = 0; }
public static extern bool c4db_createIndex(C4Database *database, FLSlice name, FLSlice expressionsJSON, C4IndexType indexType, C4IndexOptions *indexOptions, C4Error *outError);
public static extern C4Document *c4db_getDoc(C4Database *database, FLSlice docID, [MarshalAs(UnmanagedType.U1)] bool mustExist, C4DocContentLevel content, C4Error *outError);
public static extern bool c4db_deleteIndex(C4Database *database, FLSlice name, C4Error *outError);
public static extern bool c4doc_selectCommonAncestorRevision(C4Document *doc, FLSlice rev1ID, FLSlice rev2ID);
public static extern bool c4doc_selectNextPossibleAncestorOf(C4Document *doc, FLSlice revID);
public static extern int c4doc_purgeRevision(C4Document *doc, FLSlice revID, C4Error *outError);
public static extern uint c4db_getRemoteDBID(C4Database *db, FLSlice remoteAddress, [MarshalAs(UnmanagedType.U1)] bool canCreate, C4Error *outError);
public static extern bool c4db_purgeDoc(C4Database *database, FLSlice docID, C4Error *outError);
public static extern ulong c4doc_getExpiration(C4Database *db, FLSlice docId);
public static extern long c4doc_getExpiration(C4Database *db, FLSlice docID, C4Error *outError);
public static C4Slice Constant(string input) { return((C4Slice)FLSlice.Constant(input)); }
public static extern C4Document *c4doc_update(C4Document *doc, FLSlice revisionBody, C4RevisionFlags revisionFlags, C4Error *error);
public static C4Slice Allocate(string input) { return((C4Slice)FLSlice.Allocate(input)); }
public static extern int FLSlice_Compare(FLSlice left, FLSlice right);
public static extern bool c4listener_shareDB(C4Listener *listener, FLSlice name, C4Database *db, C4Error *outError);