internal static extern Status ToBsonWithNonces( CiphertextBallotHandle handle, out uint *data, out UIntPtr size);
internal static extern Status FromBson( uint *data, ulong length, CiphertextBallotHandle handle);
internal static extern Status ToJson( CiphertextBallotHandle handle, out IntPtr data, out UIntPtr size);
internal static extern bool IsValidEncryption( CiphertextBallotHandle handle, ElementModQ.ElementModQHandle manifest_hash, ElementModP.ElementModPHandle public_key, ElementModQ.ElementModQHandle crypto_extended_base_hash);
internal static extern Status FromJson( [MarshalAs(UnmanagedType.LPStr)] string data, out CiphertextBallotHandle handle);
internal static extern Status GetNonce( CiphertextBallotHandle handle, out ElementModQ.ElementModQHandle nonce_ref);
internal static extern Status GetCryptoHash( CiphertextBallotHandle handle, out ElementModQ.ElementModQHandle hash_ref);
internal static extern Status GetContestAtIndex( CiphertextBallotHandle handle, ulong index, out CiphertextBallotContest.CiphertextBallotContestHandle contest_ref);
internal static extern Status GetBallotCode( CiphertextBallotHandle handle, out ElementModQ.ElementModQHandle ballot_code_ref);
internal static extern ulong GetContestsSize(CiphertextBallotHandle handle);
internal static extern Status GetManifestHash( CiphertextBallotHandle handle, out ElementModQ.ElementModQHandle manifest_hash_ref);
internal static extern Status GetStyleId( CiphertextBallotHandle handle, out IntPtr style_id);
internal static extern Status GetObjectId( CiphertextBallotHandle handle, out IntPtr object_id);
internal static extern Status Free(CiphertextBallotHandle handle);